
1. Installation 

Option 1: CrossBow's installation package - Recommanded

1) Go to http://www.xbow.com/Support/manuals.htm, and download the
"Getting Started Guide" under the "Wireless" category;

2) Follow the instructions in Chapter 2 - "Installation of
TinyOS". Make sure you have the Crossbow setup CD, or a zipped copy of
the CD (uncompressed size < 200MB).

Option 2: UC Berkeley's TinyOS installation - Not recommanded

1) Go to http://www.tinyos.net/download.html, follow the downloading
and installation instructions. 

2) Make sure you download version 1.1.7 or later.


2. Getting Started

Read through CrossBow's manual "Getting Started Guide", where basic
sensor networing products and programming models are presented.  

3. Mote programming

1) Go to http://www.tinyos.net/tinyos-1.x/doc/tutorial/index.html,
study Lesson 1 through 8.  Pay attention to the sample programs and
programming model of NesC.

2) 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.

3) There are two sets of sample applications - the Crossbow version
and the UCB TinyOS version, located under cygwin's
"/opt/tinyos-1.x/contrib/xbow/apps/" and "/opt/tinyos-1.x/apps/"
respectively.  Either would work fine.  However in your program
directory (most likely your home directory), the "Makefile" you choose
should be consistent with your choice of TinyOS installation, since
Crossbow has an added set of libraries.  If you choose Crossbow's
samples, make sure you also copy the "MakeXbowlocal" file.

4) Go to http://www.tinyos.net/tinyos-1.x/doc/index.html.  Read the
"TOSSIM" tutorial for issues in controlling the simulation.

5) Optional: Go to http://www.tinyos.net/tinyos-1.x/doc/index.html,
and read the "nesC Language Reference Manual".  (Lessons 1 through 8
should suffice for the assignment.)

6) You might experience problems while using some the Java tools.
Simple hacking sometimes works.  

7) While debugging your program, make sure you use DBG_USR1 (and/or
DBG_USR2, DBG_USR3.  In your shell window, use "export DBG=usr1"
(and/or usr2, usr3) to filter out unnecessary screen output.

