@title blip documentation @author Stephen Dawson-Haggerty stevedh@eecs.berkeley.edu @release public --------------------------------------------------------------------- 1. Installation - This is only going to work on linux. - The recommended version of TinyOS is a recent CVS checkout. This is necessary for appropriate radio stack support. - Make sure the c serial tools are built in $TOSROOT/support/sdk/c/sf. You may need to run ./bootstrap, ./configure, and make in that folder to generate libmote.a. 2. Building - Build a test app: * cd to $TOSROOT/apps/UDPEcho/ and try typing `make blip` - Build the Ieee802.15.4 bridge to your computer * cd to $TOSROOT/apps/IPBaseStation/ and `make blip` - Build the driver * cd to $TOSROOT/support/sdk/c/blip * run ./bootstrap * run ./configure * run make 3. Running - Install IPBaseStation on a mote. This will be your computer's interface to the world of low-power radio. Setting the node id and channel is not important-- these settings will be overwritten. - Start the driver (once you've built it) * cd $TOSROOT/support/sdk/c/blip * edit the config file $TOSROOT/support/sdk/c/blip/serial_tun.conf * set 'addr' you would like your computer's interface to use on the PAN * leave 'proxy' set to 'lo' * sudo driver/ip-driver /dev/ttyUSB0 telosb (replace the device and baud with whatever you're using) The config file is assumed to be in the CWD when ip-driver starts; if this is not the case it may be specified using '-c ' - The driver registers itself on the fec0::/64 subnet (or whatever you have specified in the config file). - If you program a few motes with UDPEcho, their addresses are formed with octets 15 and 16 of the IPv6 address comming from the 802.15.4 short address you programmed them with. Octets 9-14 are zero, so the address formed is: +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | network prefix | zero | id | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ICMPv6 DAD is not performed. - For instance, if you program a mote with ID 101 (0x65), you can try ping6 fec0::65 tracert6 fec0::65 nc6 -u fec0::65 7 nc6 -u fec0::65 2000 UDPEcho runs an echo service on port 7, and a simple shell on port 2000; type 'help' for a list of commands. - The motes can also report back statistics every 15 seconds over UDP. They will send these reports to an address specified in the application make file; however these reports are disabled by default. You can observe these statistics using the Listener.py script in $TOSROOT/apps/UDPEcho/: `python Listener.py`. - The driver provides a simple console when running, which allows you to inspect and manipulates routes, and view statistics. The console runs as a telnet service on port 6106. - A good way of understanding what is happening is to start wireshark on tun0; you should be able to observe the neighbor discovery process as motes boot. You may also notice messages sent to ff05::1; these are routing updates. They are sent from a binary exponential timer with a maximum period of 5 minutes to inform the router of mote's presence; however, they are suppressed by data traffic since the routing updates will be piggybacked on it. - Further reading: doc/ contains a numbers of README's related to pieces of blip such as the socket interface, the shell, and network programming support. For more technical details on IPv6, please see any reference on the subject. Many of the documents produced by the IETF ROLL and 6lowpan working groups are relevent to this design space.