SCADDS: Scalable Coordination A rchitectures for Deeply Distributed Systems


Main      People      Presentations and Publications      Testbeds      Software     Internal

Getting started with ISI communication stack in nesC environment

If you are using TinyOS CVS repository at Sourceforge, you do not need to download and extract the tarball. Just do 'cvs update -d' to get it from there, and you can skip to Section 2.

1. Extract the tarball

Suppose you are using the TinyOS release 1.0, and you should have the following directories under the tinyos-1.x/ directory.

apps   doc   tools   tos

Make a new directory named contrib/ under tinyos-1.x/. Put your tarball into tinyos-1.x/contrib/. Extract it by

tar -xzvf isi-comm-stack-1.0.tar.gz

2. Running applications

Now you should see the new directory s-mac/. You can browse through each subdirectory for details. Followings are some examples.

In apps/
          Snooper/                                                 Listens for all packets and send them to UART
          PhyTestSender/                                    transmitter part to test the physical layer
          PhyTestReceiver/                                 Receiver part to test the physical layer
          SMACTest/                                            Application to test S-MAC

          Please read the detailed README file for each application its own directory.

In tools/
          snoop.c                                                   Running on PC to receive each packet sent by the snooper, and display its contents

The snooper is a useful tool for debugging and testing. You can see details in each packet on the PC. The test applications in the apps/ directory provides examples about how to use the stack at both physical layer and MAC layer.

The first thing you can try is to run the application to test the physical layer. Program a snooper , a PhyTestSender and a PhyTestReceiver. The sender will send 4 groups of packet, with either fixed length or variable length and different packet intervals. The receiver will blink it LEDs to show successful receptions. It also sends a packet to report its reception result at the end of each group.

Please note that the payload of each packet from the sender is NOT always zero, since the memory is not cleared for each packet. So a long packet following a short packet contains all the old bytes of the short packet. It may looks like the packet is corrupted. But it is not, and it is just having a non-zero payload.

Now you can try SMACTest/ by programming 3 motes and let them send to each other by either broadcast or unicast. Look at the README file in that directory for details. Please note that there is an initial setup time (about 12 seconds) for each node to listen for any exsiting neighbor's schedules. The nodes won't send packets before they find any neighbors. By default, each mote will send 10 broadcast messages and 10 unicast messages (each with 5 fragments).

3. Note

In each application's directory, there is a config.h file, which is used to system-wide configuration, such as the options to the physical layer, S-MAC and the application itself. In pre-nesC environment, part of the work is done in each application's Makefile.


Main      People      Presentations and Publications      Testbeds      Software     Internal

Last modified on: Feb. 10, 2003 by Wei Ye .