Tutorial Mods
Modifications to the Tutorial
Unlike the tutorial, we are using the Telos motes. Therefore, the procedures for programming the motes are different. See the Basic Commands page for the instructions for programming the motes. Also, the yellow LED on the Mica motes correspond to the blue LED on the Telos motes.
We are also using the Trio motes, which is a combination of a Telos mote and a Trio sensor board. The Trio sensor board has 4 PIR (passive infrared) sensors which serve as motion detectors, a 2-axis magnetometer, a microphone, and a buzzer. We will use the Trio motes for the PIR sensors. Note that the basic Telos motes that we have for our tutorial do not have any sensors.
- To delete an image on the Trio (so as to save battery power and not drain the rechargeable batteries), run the command
msp430-bsl --telosb -c 4 -r -e -I -p D:/cygwin/opt/tinyos-1.x/tos/lib/Deluge/TOSBoot/build/telosb/main.ihex
for a mote onCOM5(4 = 5-1, in the command above)- This command is taken from the line in the output from running
make telosb reinstall,2 bsl,4. Below is an example of such output:
- This command is taken from the line in the output from running
/opt/tinyos-1.x/tools/make/msp/set-mote-id --objcopy msp430-objcopy --objdump msp430-objdump --target ihex build/telosb/main.ihex build/telosb/main.ihex.out-2 2
Could not find symbol TOS_LOCAL_ADDRESS in build/telosb/main.exe, ignoring symbol.
installing telosb bootloader using bsl
msp430-bsl --telosb -c 4 -r -e -I -p D:/cygwin/opt/tinyos-1.x/tos/lib/Deluge/TOSBoot/build/telosb/main.ihex
MSP430 Bootstrap Loader Version: 1.39-telos-7
Mass Erase...
more output
Lesson 2
- Replacement for Running the Sense Application: Instead of using the photo sensor, we will be using the PIR sensors on the Trio motes.
- Download Attach:TrioSense.zip
- unzip the TrioSense folder to the
tinyos-1.x/appsfolder - The TrioSense application is a replacement for the Sense application. Look at the difference between the files
TrioSense.ncandSense.nc, and the difference between the filesTrioSenseM.ncandSenseM.nc. Note that the PIR sensors must wait for a period of time (like 0.5 seconds) before being turned on by the NesC commandPIR.PIROn()for the PIR sensor to work (the rest of the application will work but the PIR sensor will not produce a signal when you install on the mote). This is the reason for using theInitTimerinTrioSenseM.nc.
Lesson 6
- For the telos motes (both Telos A and Telos B),
MOTECOM=serial@COM4:telosfor a mote connected to comm port 4.- A similar argument would be passed to SerialForwarder
java net.tinyos.sf.SerialForwarder -comm serial@COM4:telos &
- A similar argument would be passed to SerialForwarder
- : Combine the code from the TrioSense application with the Oscilloscope and OscilloscopeRF application (put these new applications in folders called TrioOscope and TrioOscopeRF in your
tinyos-1.x/appsdirectory) so that you can send PIR sensor readings to the oscilloscope.
Bugs in the Tutorial
Lesson 6
- The link to
MIG (Message Interface Generator)is broken. It should point tofile:///path to your tinyos-1.x installation/tinyos-1.x/doc/nesc/mig.html - The link to
NCG (nesC Constant Generator)is broken. It should point tofile:///path to your tinyos-1.x installation/tinyos-1.x/doc/nesc/ncg.html
Lesson 7
- We need to modify the SimpleCmd application before compilation so that it works with the Telos motes. The Telos motes use a different interface to increase and decrease the radio signal strength than the mica or mica2 motes.
- If you do not make modifications, you will get compilation errors complaining about
PotCandHPLPotC. Pot stands for potentiometer, and its output is used to tune the radio signal strength. - Comment out all the lines in
SimpleCmd.ncandSimpleCmdM.ncthat refer to Pot. This will disable theradio_louderandradio_quietercommands.
- If you do not make modifications, you will get compilation errors complaining about
- The instructions to run
java net.tinyos.tools.BcastInject <group_id> <command>has the order of the arguments <group_id> and <command> backwards. It should bejava net.tinyos.tools.BcastInject <command> <group_id>