Hopefully attached is a pdf that will likely be further updated as we go on. The word doc is in the usual project doc dir.: [^MoteOpsHints.pdf]
METCRAXII “Mote” Hints
Contents
[Mote Setting Defaults:1|#_Toc369186696]
[How-To Command/Interact with a Specific V2.4 Soil/Rad Xbee Radio Motes:1|#_Toc369186697]
[METCRAXII: Rad/Soil Mote Commands V2.4:2|#_Toc369186698]
[METCRAXII: Serial Forwarding Mote:3|#_Toc369186699]
[METCRAXII: Power Monitor Mote:4|#_Toc369186700]
[HOW-TO: Change Mote Xbee Radio’s.5|#_Toc369186701]\\ \\
The Wisard ‘motes’ come in 3 flavors for MetcraxII: Soil/Rad-XbeeWireless data sampling; Serial-Forwarding for crater barometer/csat’s; Power Monitor. The basic command sets are shown below:\\
h2. Mote Setting Defaults:
If the ‘eeinit’ command is used, the project defaults are reprogrammed into the eeprom which controls operating parameters.
Low Battery Voltage Monitor: disabled (vm=0).
GPS: disabled on the serial forwarding motes in crater (2baro’s and 2csats)
rad/soil gps sync rate=2hours (gr=7200), timeout=1min (gto=60), failed retry rate=30min (gfr=1800)
Primary Output Port pp=radio (pp=1)
Message Output wisard mode (mp=0) messages
Local Data Storage disabled (fsr=0)
Sampling Mode Self-Timed (md=0)…Don’t change this\!
h2. How-To Command/Interact with a Specific V2.4 Soil/Rad Xbee Radio Motes:
By default all commands are sent by a base station radio to all remotes. You can address a specific mote only by one of two ways:
1) Don’t Do This\!: Reprogram the base Xbee radio (or equivalent) to only talk with your target.
2) Do This: \#xxcmd where xx=moteID, and ‘cmd’ is one of the above commands.
For example: ‘#17dr’ or ‘#2xb=pl’ or ‘#4eeupdate’
FLR: >rs 2 ids = 1,2,17 Unless they’re changed\!
NEAR: >rs 1 ids = 3,8,10
FAR: >rs 2 ids = 4,22
{color:4f81bd}* *{color}
h2. METCRAXII: Rad/Soil Mote Commands V2.4:
Note: Cmds with ‘=’ option can be reset with a new value
Note: All values are stored in eeprom and reloaded at runtime. If you change one or more and then ‘eeupdate’ they will be used both immediately and at any reboot. Exceptions are rxb,hb,st,jd and ‘on/off’
| _Sampling Rates:_ | _‘dr’ ‘dr=’_\\
_‘sp’ ‘sp=’_\\
_‘sn’ ‘sn=’_\\
_‘sx’ ‘sx=’_ | _Data Sampling rate in seconds_\\
_Power message skip count = dr*value_\\
_Serial# message skip count = dr*value_\\
_XbeeStatus message skip count_\\
_Skipcount 0=Disabled, 1=Every Message_ |
| _Operating Modes_ | _‘md’ ‘md=’_\\
_‘id’ ‘id=’_\\
_‘mp’ ‘mp=’_\\
_‘pp’ ‘pp=’_\\
_cache cache=_ | _0=Self-Timed Mode (Default)1=Xbee-Sleep_\\
_MoteID_\\
_Output: 0=Wisard, 1=DSM printable,2=Ascii_\\
_Primary Output Port: 0=rs232, 1=xbee_\\
_Show/Set{_}_ _ _message caching count_ |
| _Local File_ | _fsON/OFF_\\
_fsr{_}_ _ _fsr=_ | _ _\\
_Rate in seconds to cycle (ie flush) local storage fil._\\
_fsr=0 disables local data storage_ |
| _Batt Monitor_\\
_ _\\
_ _ | _‘vm’ ‘vm=’_\\
_‘vl’ ‘vl=’_\\
_‘vh’ ‘vh=’_\\
_‘vs’ ‘vs=’_ | _vm=1 MonitoringON,__ _ _vm=0 OFF_\\
_vl=7000{_}_ _ _Turn MoteOps off at 7vdc_\\
_vh=12300 Turn back on at 12.3vdc_\\
_when off ‘sleep seconds’ before re-testing_ |
| _EEPROM_ | _‘eecfg’_\\
_‘eeupdate’_\\
_‘eeinit’_\\
_‘eeload’_ | _report current operating settings_ \\
_write eeprom with current settings_\\
_initialize default settings_\\
_read/load existing eeprom contents_ |
| _Xbee Radio:_ | _‘xb=’_\\
_ _\\
_‘xr’ ‘xr=’ ‘hb’_\\
_‘xs’_\\
_‘rxb’_\\
_‘xbdl’,’xbch’,’xbid’’xbst’,’xbsp’_\\
_‘xv’_ | _Send specific command to xbee: such as ‘xb=pl’ for power. To reprogram a new{_}_ _ _value ex: ‘xb=pl2’ or ‘xb=dl12345678’_\\
_Xbee automatic reset rate unless ‘hb’ heart-beat rcvd_\\
_Xbee status_ \\
_Reset Xbee_\\
_dl=destination, ch=chan: values setup in eeprom_\\
_st=wake time (7D0=2sec) sp=sleep time(12C=3sec)_\\
_Do This to Confirm/Reprogram xbee with above values_ |
| _GPS / Timing:_ | _‘gpsON/OFF’_\\
_‘gr’__ _ _‘gr=’_\\
_‘gto’__ _ _‘gto=’_\\
_‘gfr’__ _ _‘gfr=’_\\
_‘gnl’ ‘gnl=’_\\
_‘st’ ‘ st=’_\\
_‘jd’__ _ _jd=’_\\
_‘bf’__ _ _bf=’_\\
_‘ba’__ _ _‘ba=’_ | _ _\\
_How often ‘gpsON’ to set Date/Time (secs)_\\
_Timeout Seconds if no lock acquired_\\
_Retry Wait time (secs) if no lock_\\
_\#of sequential valid messages to confirm lock_\\
_Show/Set time of day ‘hhmmss’_\\
_Show/Set Julian date_\\
_Special use: Bresenham Freq. (~8000000) Adjust value_ |
| _ _ | _‘?’ ‘reset’ ‘reboot’_ | _Print command list, reset cpu_ |
| _White-Button Use_ | _1_\\
_2_ | _scan for any attached{_}_ _ _I2C sensors_\\
_Toggle Output port between radio/Console_ |
| _LEDs_ | _Startup_\\
_ _\\
_ _\\
_ _\\
_Normal Ops_\\
_Command ingest_\\
_ _\\
_ _\\
_GPS_\\
_ _\\
_WhiteButton_ | _Normally 3 blinks of either: green-led=output is radio, red=output is console; then 7 quick blinks before boot (sometimes other leds come on and when xbee is the output there is a delay period before ‘boot’)_\\
_1-sec green led heart-beat, and red led blink at the ‘data-rate’_\\
_Orange led (above pic) comes on when a command is being ingested from the ‘base radio’ or the console which-ever is active, and goes out upon command <cr> termination._\\
_Yellow led (under microSD)blinks when message received and blinks several times when it syncs, then goes out._\\
_Org blinks for # of presses, then if swapping output ports the green or red will blink 3 times._ |
\\
{color:4f81bd}* *{color}
h2. METCRAXII: Serial Forwarding Mote:
Note: Cmds with ‘=’ option can be reset with a new value
Note: All values are stored in eeprom and reloaded at runtime. Thus if you change one or more and then ‘eeupdate’ they will be used both immediately and at any reboot. Exceptions are rxb,hb and ‘on/off’
NOTE: by default ALL MOTE COMMANDS ARE DISABLED and it is in ‘pass-through’ mode. Thus when you connect, you’ll be talking with the serial sensor itself. To enable these commands use the hidden escape:
‘esc-esc-esc’ to toggle the command-mode on/off.
| _Sampling Rates:_ | _‘dr’ ‘dr=’_\\
_‘sp’ ‘sp=’_\\
_‘sx’ ‘sx=’_ | _Data Sampling rate in seconds_\\
_Power message skip count = dr*value_\\
_XbeeStatus message skip count_\\
_Skipcount 0=Disabled, 1=Every Message_ |
| _Operating Modes_ | _ __‘id’ ‘id=’_\\
_‘mp’ ‘mp=’_\\
_‘pp’ ‘pp=’_\\
_‘delay’ ‘delay=’_ | _MoteID_\\
_Output: 0=Wisard, 1=DSM printable,2=Ascii_\\
_Primary Output Port: 0=rs232, 1=xbee_\\
_Seconds of delay before starting up.__ _ _This was done to allow the sensor and bluetooth radio to boot before forwarding chars begins_ |
| _Local File_ | _fsON/OFF_\\
_fsr{_}_ _ _fsr=_ | _Any questions…?_\\
_Rate in seconds to cycle (ie flush) local storage file_ |
| _EEPROM_ | _‘eecfg’_\\
_‘eeupdate’_\\
_‘eeinit’_\\
_‘eeload’_ | _report current operating settings_ \\
_write eeprom with current settings_\\
_initialize default settings_\\
_read/load existing eeprom contents_ |
| _Xbee Radio:_ | _‘xb=’_\\
_ _\\
_‘xr’ ‘xr=’_\\
_‘xs’_\\
_‘rxb’_\\
_‘btradio’_ | _Send specific command to xbee: such as ‘xb=pl’ for power. To reprogram a new xbee value ex: ‘xb=pl2’ or ‘xb=dl12345678’_\\
_Xbee automatic reset rate unless ‘hb’ rcvd_\\
_Report Xbee status_ \\
_Reset Xbee immediately_\\
_Special Use Only while using Console Port\!: passthrough directly to the radio.__ _ _You then need to do the timing, special ‘+++’ ‘atxx’ etc._ |
| _GPS / Timing:_ | _gpsON/OFF_\\
_gr{_}_ _ _gr=_\\
_gto{_}_ _ _gto=_\\
_gfr{_}_ _ _gfr=_\\
_gnl{_}_ _ _gnl=_ | _Any questions…?_\\
_How often ‘gpsON’ to set Date/Time (secs)_\\
_Timeout Seconds if no lock acquired_\\
_Retry Wait time (secs) if no lock_\\
_\#of sequential valid messages to confirm lock_ |
| _ _ | _‘?’_\\
_‘reset’ ‘reboot’_ | _Print command list_\\
_reset cpu_ |
| _White-Button Usage_ | _1_\\
_2_\\
_3_ | _scan for any attache{_}_ _ _I2C sensors (limited use for forwarder\!)_\\
_Toggle Output port between radio/Console_\\
_Tobble Fake Message Simulator On/Off (so you don’t need a sensor attached to try out the radio link)_ |
| _LEDs_ | _Startup_\\
_ _\\
_Normal Ops_\\
_ _\\
_Command ingest_\\
_ _\\
_ _\\
_GPS_ | _A long series of 1-sec blinks will last for the ‘delay’ time mentioned above.__ _ _Then ‘roughly’ 7 blinks and the_\\
_1-sec green led heart-beat, and red led blink at the ‘data-rate’ when sampling occurs (yes the forwarder is taking power readings at ‘dr’)_\\
_Orange led (above pic) comes on when a command is being ingested from the ‘base radio’ or the console which-ever is active, and goes out upon command <cr> termination._\\
_Yellow led (under microSD)_ |
\\
Because the Serial Forwarding Motes in MetcraxII are BlueTooth based radios, to talk with them individually, the command ‘#’ prefix shown above is superfluous. Instead the interaction is entirely up to the DSM virtual serial port connection. For that you must know what the friendly name of its BT-radio. With the DSM / Nidas software running, and logged into the DSM:
>rserial btspp:name This must be a known name in the config and in the radio.
h2. METCRAXII: Power Monitor Mote:
_The Power Monitor Board designed and built in 2013 was based upon a PIC18F2520, the same as used on the original Version 1 motes.__ _ _For convenience the initial implementation of the command set was similar to V1 Motes, not the V2.4 soil/rad devices._
Note: Cmds with ‘=’ option can be reset with a new value
| _Sampling Rates:_ | _‘dr’ ‘dr=’_\\
_‘sx’ ‘sx=’_ | _Data Sampling rate in seconds_\\
_XbeeStatus message skip count_\\
_If skipcount=0 Disabled_\\
_If skipcount=1 Every msg (ie no sensor data)_ |
| _Operating Modes_ | _ __‘id’ ‘id=’_\\
_‘mp’ ‘mp=’_\\
_‘pp’ ‘pp=’_\\
_‘mt’_\\
_‘mx’_ | _MoteID_\\
_Output: 0=Wisard, 1=Ascii_\\
_Primary Output Port: 0=rs232, 1=xbee_\\
_Self-Timed Mode (Default)_\\
_Xbee-Sleep Mode_\\
_BEWARE: unlike version2\+ once in xbee mode you can’t hit the button, only power cycle and/or use a properly setup xbee ‘base’_ |
| _Calibration Offset/Gain Settings_\\
_ _\\
_ _ | _‘vbg’ ‘vbg=’_\\
_‘vbo’ ‘vbo=’_\\
_‘ilg’ ‘ilg=’_\\
_‘ilo’ ‘ilo=’_\\
_‘ilt’ ‘ilt=’_\\
_‘ipvg’ ipvg=’_\\
_‘ipvo’ ‘ipvo=’_\\
_‘ipvt’ ‘ipvt=’_ | _Battery Voltage circuit{_}_ _ _Gain,_\\
_ _ _Offset_\\
_Load Current circuit{_}_ _ _Gain,_\\
_ _ _Offset,_\\
_ _ _ _{_}Temperature Coefficient Charging Current circuit Gain,_\\
_ _ _Offset,_\\
_ _ _Temperature Coefficient_ |
| _EEPROM_ | _‘ew’_\\
_‘ei’_\\
_‘er’_ | _write eeprom with current settings_\\
_initialize default settings_\\
_read eeprom contents_ |
| _Xbee Radio:_ | _‘xb=’_\\
_‘xr’ ‘xr=’_\\
_‘hb’_\\
_‘xs’_\\
_‘rxb’_ | _Send command to xbee: ‘xb=pl’ for power_\\
_Xbee automatic reset rate unless ‘hb’ rcvd_\\
_Send Xbee a ‘heart-beat’_\\
_Report Xbee status_ \\
_Reset Xbee immediately_ |
| _Timing:_ | _‘st’__ _ _‘st=’_\\
_‘jd’__ _ _‘ jd=’_\\
_‘bf’__ _ _‘bf=’ ‘ba’ ‘ba=’_ | _Show/Set time of day ‘hhmmss’_\\
_Show/Set Julian date_\\
_Special use: Bresenham Freq. (~8000000) and Adjust value_ |
| _ _ | _‘?’_\\
_‘reset’ ‘reboot’_ | _Print command list_\\
_reset cpu_ |
\\
These motes in METCRAXII were initially setup with a wired link into a DSM port and are mounted in the battery boxes. They can be swapped over to Xbee radios by removing the rs232 module and swapping in a xbee radio pre-programmed to work with the base radio it will be interacting with.
FAR: >rs 7
NEAR: >rs 17 (low) >rs 18 (up)
RIM: >rs 14 (low) >rs 16 (up)
FLR: >rs 8
\\ \\
h2. HOW-TO: Change Mote Xbee Radio’s\\
If a a radio goes bad, or more likely a mote/xbee need to be swapped in to a different BASE-Xbee receiver, then the xbee radio must be either swapped in or have its settings changed. In either case you need to know the Base Radio’s values (labeled on the box):
1) Serial number, low number: ‘sl’ in the base xbee, used in the ‘dl’ setting of the client xbee.
2) Channel number: ‘ch’
3) Node ID: ‘id’
All other parameters should be ready to go in our radios. The base broadcasts to all clients ‘dl=0000’ and the clients send messages to the base radio ‘dl=xxxxxxxx’.\\
If the radio is ok but the mote is bad: you can remove the xbee from the old mote and put it in the new one. If you do that the default eeprom ‘radio settings’ in the mote will probably be different but that is ok because the radio will already be setup correctly; just don’t use the ‘xv’ command\!
Otherwise if you putting in a new mote with new radio (ie moving it) then you need to change the xbee and mote settings. This can be awkwardly done over the air but the best is to use the mote console port:
1) Connect console cable between Mote-PC. Start serial comm program (minicom,procomm,rserial): 38400bps = Rad/Soil Motes, 9600bps=SerialForwardingMote
2) Power Up Mote You should see 3 short green blinks indicating stdio is going to the xbee port.
3) 2x White Button Toggles stdio to the console port. You should see 2 quick org. blinks indicating it saw the 2 button presses.
4) md=2 If using minicom/procomm. This puts the mote in plain text mode so you can see the output. In rserial the md=0 ‘wisard’ mode is ok/best.
5) xbdl=xxxxxxxx where ‘xxxxxxxx’ is the BaseRadio’s low serial number (hex)
6) xbid=x where ‘x’ is the BaseRadio’s id.
7) xbch=xx where ‘xx’ is the BaseRadio’s channel number (hex)
8) xv The mote will reprogram the xbee radio with the above numbers and give you a status report.
9) id=xx Do this for the DSM injest if you’re swapping in a new mote. You must know the old mote number. The alternative when swapping is to change the dsm’s ‘xml’ for the new id, and all the associated adjustments in base, etc.
9) md=0 puts the mote in wisard output mode. If you leave the md=2 (or 1) then the next command will cause it to boot in the wrong mode and cause dsm problems.
9) eeupdate This stores the above values in the mote’s eeprom.
10) reboot Or press reboot button, or cycle power to restart with the new setting
11) Check the settings/results and that the dsm is still getting data, etc.
The xbee radio settings can be adjusted or viewed also by using the command ‘xb=yyy’ including ‘over the air.’ Be careful not to change one of the 3 values above over the air or else you will lose radio contact. Some examples
1) xb=pl shows xbee’s power level
2) xb=pl2 changes xbee’s power level.
3) sx reports various xbee status values
4) xb=sl shows xbee’s serial number
5) xb=dl shows xbee’s destination serial number
6) xb=xxxxxxxx changes xbee’s destination destination serial number (you can shoot yourself in the foot if using this over the air).<!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} --> |