Getting started with ISI communication stack (v1.1) for motes
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 directly go 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.1alpha.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
Chirp/
Demonstration
of the compatibility with Berkeley's standard radio stack
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
It supports both Mica and Mica2 (with Chipcon
CC1000 radio).
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).
The Chirp application is copied from the main TinyOS application directory
(tinyos-1.x/apps/Chirp/). With virtually no modification (except including
a few header files), the chirp application can run over S-MAC. You can program
two motes with chirp, and see how they send to/receive from each other.
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.
The idea is to let each layer export tunable parameters, so that each application
can adjust them in a central place according to its needs.
Last modified by Wei Ye on
May 08, 2003.