CS6710: Wireless Networks

Spring 2010


Sensor Network Project



In this project, you will program a network of wireless sensor nodes.  The code will be developed over the TinyOS operating system and will run on a number of motes manufactured by Crossbow.   The assignment can be entirely developed and simulated on your home machine using the simulator TOSSIM, that is available with the TinyOS distribution.  Each group will get 4-6 sensor motes to work with.   For the project, you can simulate your code on your home machine using TOSSIM.  Once your code works well on the simulator, we can test it in the lab with a larger collection of motes (10-12), if needed.

Here is some warm-up work to help you prepare for your sensor programming project.


I. Installation

I realize several of you are having issues with installation of cygwin and tinyos, but this is clearly the first step we need to do before proceeding any further. Most installation problems are due to improper configuration; make sure that all paths and environment variables are properly set up. You also need to ensure that you have compilers for the appropriate architecture: for instance, msp430 compiler and libraries for Telosb motes.

II. Getting started

You should test your installation after you complete step 1. Start with installing Blink application to your motes. Blink is a very simple nesC application provided by TinyOS. You could install it by going through the following steps.

connect 1 mote to the usb interface on your machine. (As to how to install the driver, please refer the
  quick start guide of moteiv)
$cd /opt/tinyos-2.x/apps/Blink
$make telosb
$make telosb reinstall,1

(The number 1 assigns ID 1 to the mote; it is not useful for this particular application, but IDs would be useful for setting up a network of sensors.) The LED blinking very quickly indicates that program is being written to the mote. After the program is completely installed on the mote, the Blink application will be automatically executed. The LED on the mote will bink every 1 second.

The next application you can try installing is RadioCountToLeds, which has motes communicating their counts to one another, and displaying the counts received on their LEDs. This application exercises the radios of the motes, and involves compilation of Java code -- so this also ensures that your Java configuration is properly done.

III. Go through the TinyOS tutorial

  • Go to the TinyOS tutorial, study Lesson 1 through 8. Pay attention to the sample programs and programming model of NesC.
  • All the examples in the tutorial can be tried out on TOSSIM - the sensor network simulator. The command to compile a PC version of the program is "Make pc", and the program is stored under the build/pc directory in your program directory.
  • Read the TOSSIM tutorial for issues in controlling the simulation.
  • Optional: Read the nesC Language Reference Manual. (Lessons 1 through 8 of the TinyOS tutorial should suffice for the assignment.)


  • IV. Toy project using two motes

    You have the first mote do light sensing. You could use the TSR interface provided by HamamatsuC component.(For detail about how to use the components, please check the tutorial or reference) If the light level is above a certain threshold, this mote will notify the second mote via radio, so that the second mote will turn on its LED. If the light sensed by the first mote is below some threshold, it will send the notification to the second mote, and that mote will turn off the LED.

    This toy project is NOT required, thus won't be graded. However, this would definitely help you prepare for the final project, since you would know better about nesC, radio communication, multihop, sensing data collection, etc. after you are done with this toy project.


    V. Sensor Programming Project

    The goal of the sensor project is to set up a shortest-path spanning tree over the nodes reachable from a central node.  After the whole network converges to the static topology, the network should support the following features:
  • Each mote in the network displays its number of hops back to the central mote.
  • Once you manually change the motes placement, say remove a certain mote, the network should recover to static state within a short time. And related motes should update their number of hops in LED
  • Each mote is capable of sensing the TSR value. Once the value is below the threshold predefined in your program, the mote sends an alarm back to the central mote. And all motes along the route from this mote back to the central mote should turn on the LED, so that the route could be displayed.
  • You could use CC2420Control to configure the transmission power. The default transmission power is pretty high,and the transmission range could reach around 100 metres. You could set up the radio with minimum transmission power,which has range of around 0.5 meter. Hence, it's possible to show your demo in the classroom.