--- /dev/null
+
+ @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 <platform> blip`
+ - Build the Ieee802.15.4 bridge to your computer
+ * cd to $TOSROOT/apps/IPBaseStation/ and `make <platform> 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 <config file>'
+
+ - 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.