Boomerang Serial Forwarder Tips
Contents
Tips
MOTECOM environment variable
Instead of starting SerialForwarder every time you want to connect to your Tmote wireless network, the MOTECOM environment variable simplifies connecting to the network on a per-application basis.
The SerialForwarder method of readings from the network works as follows:
java net.tinyos.sf.SerialForwarder -comm serial@COMXX:tmote & java net.tinyos.tools.Listen
Instead, with the MOTECOM variable, you can combine the two statements into one line:
MOTECOM=serial@COMXX:tmote java net.tinyos.tools.Listen
Protocol
Gilman Tolle has written an article about the SerialForwarder packet format for TinyOS 1.1.x. The same SerialForwarder 1.1.x protocol is used in Moteiv's Boomerang distribution.
Mote-side Packetizer (FramerM) Protocol
The Packetizer (FramerM) protocol is responsible for packing messages into a frame and transmitting those messages from a mote to the SerialForwarder application running on a PC.
TinyWiki: FramerM/Packetizer connection to SerialForwarder 1.1.x
IP Socket Connections
The protocol described in the document below is the information transmitted over a socket when connecting to SerialForwarder from another PC.
TinyWiki: SerialForwarder Protocol 1.1.x
Troubleshooting
TOS_Msg length is invalid: header_length
Problem:
I executed SerialForwarder with parameters -comm serial@COM5:57600 and I get a stream of data, which goes like this:
"Received message:1A 01 08...... TOS_Msg length is invalid: header_length=260, real length=36... modifying msg to fit"
Solution:
Run SerialForwarder by entering the following command on a single line:
java net.tinyos.sf.SerialForwarder -comm serial@COM4:tmote
SerialForwarder needs to know which platform is connected. By specifying "tmote" instead of "57600", SerialForwarder understands the incoming packets and correctly parses them.
For more startup information, please see Moteiv's Tmote Sky Quick Start Guide.
Could not find a platform specific version of TOSMsg
The Telos java classes for parsing packets over the UART/USB has not been compiled. Compile the classes for Telos by going into your TinyOS directory and making the java classes in net.tinyos.message.telos by executing the following commands in a cygwin window:
cd /opt/tinyos-1.x cd tools/java/net/tinyos/message/telos make cd ../../../../ java net.tinyos.sf.SerialForwarder -comm serial@COMx:tmote
SerialForwarder should now run properly without the error message.