Test programs for YARM CM3

How to test the YARM module on the CM3-Home board.

Flash a YARM_DEV L21 processor with one of the following programs:

You can use Atmel Studio or this article to do it under Linux (EDBG): Atmel SAML21 ASF compiling and FLASH programming on Linux

Flash the YARM_DEV EEPROM of the ATA8510 with the following configuration:

You can use this article for it: ATA8510 EEPROM programming

Flash the YARM D21 processor onboard the CM3-Home with the following program:

Flash the YARM EEPROM of the ATA8510 onboard the CM3-Home with the following configuration:

At startup the YARM onboard the CM3-Home will display a greeting message with the available commands:

Test CM3-TEST - Ver 0.9                                                                                                             
YARM CM3 01 2018 Jan  3 2018 09:57:23                                                                                               
Sensor Data Packet Length = 28                                                                                                      
cpuhx = 8000000                                                                                                                     
                                                                                                                                    
YARM CM3 help                                                                                                                       
c = toggle ConsoleOn                                                                                                                
y = toggle YARM_Verbose                                                                                                             
1..0 = Period Node Tx 1=2s; 2=4s; .. 0=20s                                                                                          
a = toggle Y_SDA and read ADCs                                                                                                      
b = toggle Y_SCL and read ADCs                                                                                                      
h = print this help menu                                                                                                            

The commands 'a' and 'b' will toggle respectively the two pins of the Grove header connected to the YARM and will read the two ADC lines on the ADC connector of the CM3-Home.
Toggle Y-SDA = 0; ADC_0 4095; ADC_1 4095
Toggle Y-SCL = 0; ADC_0 4095; ADC_1 4095

  • Y-SCL is pin C of the Grove 2 connector
  • Y-SDA is pin D of the Grove 2 connector
  • ADC_0 is pin 1 of the ADC connector
  • ADC_1 is pin 3 of the ADC connector

    If a YARM_DEV is switched on with the above program running, the YARM on the CM3-HOME will receive the messages from the YARM_DEV and will transmit a command as an answer:
Rx: EA188AC04D4D4D512020204C142715FF 75010000 24070000 00008CC2 92                                                                  
Tx: 35D570454E4E4D512D0C0AFF00000000 FFFFFFFF B80B0000 000086C2 BE                                                                  

To have a descritpion of the messages exchanged you can activate the Console On option with the command 'c'

ConsoleOn = 1                                                                                                                       
                                                                                                                                    
                                                                                                                                    
---- RX from YARM Node ------------------                                                                                           
Received 29 bytes on service 0 channel 0                                                                                            
Data Received  [29]                                                                                                                 
Rx: EA188AC04D4D4D512020204C142715FF BA020000 7A070000 000087C2 FB                                                                  
Harvest1 ID: 0xC08A18EA514D4D4D4C202020FF152714                                                                                     
Num Message Received = 698 (0x000002ba)                                                                                             
Node Voltage on PA03: 0x077a (1914)                                                                                                 
RSSI Received from Node: -67.50 dBm                                                                                                 
RSSI: -64.50 dBm                                                                                                                    
RxError: 0                                                                                                                          
checksum received = 0xFB                                                                                                            
checksum calculated = 0xFB                                                                                                          
---- RX from YARM Harvest1 ------------------                                                                                       
                                                                                                                                    
                                                                                                                                    
---- Tx to YARM Node ------------------                                                                                             
Send to Node: Command = 2000 (7d0); RSSI received from Node = -64.50                                                                
Data to Send [29]                                                                                                                   
Tx: 35D570454E4E4D512D0C0AFF00000000 BA020000 D0070000 000081C2 EF                                                                  
---- Tx to YARM Node ------------------                                                                                             

Here is the description of the fields of the message received from the YARM_DEV Node:

  • Unique serial number of the YARM_DEV (16 bytes)
  • Progressive Message Number from the Start (4 bytes)
  • Voltage measured on the PA03 pin of the YARM_DEV (integer 4 bytes)
  • RSSI in dBm received on the last message coming from the CM3-HOME (float 4 bytes)

Here is the description of the fields of the message transmitted to the YARM_DEV Node:

  • Serial number of the YARM onboard the CM3-Home (16 bytes)
  • Progressive Message Number from the Start (4 bytes)
  • Command with the wanted transmission period for the YARM_DEV Node (integer 4 bytes)
  • RSSI in dBm received on the last message coming from the YARM_DEV_Node (float 4 bytes)

With the commands 0..9 it is possible to instruct the YARM_DEV Node to send messages with different periods of time from 2s (1) to 20s (0).

You can activate a more verbose description of the underlying YARM radio activities with the 'y' command:

YARM_Verbose = 1                                                                                                                    
YARM_Libs: Data Received [32]                                                                                                       
 0xEA,  0x18,  0x8A,  0xC0,  0x4D,  0x4D,  0x4D,  0x51,  0x20,  0x20,  0x20,  0                                                     
Done YARM_SetIdleMode [0x0 0x0]                                                                                                     
Rx: EA188AC04D4D4D512020204C142715FF E7030000 2C070000 000086C2 1C                                                                  
Tx: 35D570454E4E4D512D0C0AFF00000000 E4030000 B80B0000 000078C2 E1                                                                  
Done YARM_SetIdleMode [0x0 0x0]                                                                                                     
Reg. GETEVENTBYTES: 0x0, 0x0, 0x0, 0x40,                                                                                            
Done YARM_SetSystemMode TXMode [0x0 0x0]                                                                                            
Error at YARM_WriteTxPreamble, ErrorCode: 21                                                                                        
Error at YARM_WriteTxFifo, ErrorCode: 21                                                                                            
TXLoop Started                                                                                                                      
TXLoop Ended at cycle : 1 [3 ms]                                                                                                    
TX Ended on service: 0 channel: 0                                                                                                   
Reg. GETEVENTBYTES: 0x0, 0x0, 0x0, 0x40,                                                                                            
Done YARM_SetIdleMode [0x0 0x0]