Quickstart: TelosB
This page details how to install TinyOS 2.1 on Ubuntu 9.10 and it provides a tutorial on running the provided Blink and Oscilloscope applications on TelosB sensor motes, after running these you should have a greater understanding of TinyOS and TelosB motes.
Note on conventions used below:
- Anything in a box is code that is entered into a terminal.
Contents
Installing TinyOS 2.1 on Ubuntu 9.10
Install Ubuntu 9.10 and run full updates.
Add the TinyOS repository to your list of packages start by opening sources.list
sudo gedit /etc/apt/sources.list
Add the following line at the bottom of sources.list
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main deb http://hinrg.cs.jhu.edu/tinyos oneiric main
Update sources.list by typing
sudo apt-get update
Install TinyOS 2.1
sudo apt-get install tinyos-2.1.0
You should get two questions answer yes to both. During the install you will have to say OK and Yes to EULA information
Edit your ~/.bashrc file in your home directory to set up the environment for TinyOS development at login
sudo gedit ~/.bashrc
Add the following two lines:
source /opt/tinyos-2.1.0/tinyos.sh export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
(NOTE: the . at the end is intentional)
Save and exit the .bashrc file Next run the command
source ~/.bashrc
Run the following to prevent errors with java apps
sudo tos-install-jni
If you are getting any errors running make on the nesC files run the following...
sudo apt-get install g++ sudo apt-get install python2.5-dev
Edit your ~/.bashrc file in your home directory. Add the following line:
export PYTHONPATH=$TOSROOT/support/sdk/python
Save and exit the .bashrc file, run the command
source ~/.bashrc
Blink: An example Hello World program
Open a terminal
Enter the application directory
cd /opt/tinyos-2.1.0/apps/Blink
Compile the application
make telosb
Insert mote into USB
List available motes
motelist
Example of motelist output:
Reference Device Description ---------- ---------------- --------------------------------------------- XBS5H6PH /dev/ttyUSB0 XBOW Crossbow Telos Rev.B
Install application to the specified mote
make telosb reinstall bsl,/dev/ttyUSB0
Replace /dev/ttyUSB0
with what motelist displays for you
Installing Applications on TelosB mote: General Process
1) In the application directory, begin by compiling the program
make telosb
2) Next, insert the TelosB mote via USB
3) Verify the mote is recognized. Take note of the USB path under Device column, as this is used in specifying the path for the installation. In most cases, the DEVICE
path is in the format /dev/ttyUSBx
on Linux.
motelist
4) Still in the application directory, install the application on the mote that is currently connected
make telosb reinstall bsl,DEVICE
where DEVICE is the USB Device path provided from motelist command.
example: make telosb reinstall bsl,/dev/ttyUSB0
5) Thats it, if no errors occurred, the application is now running on the mote.
Oscilloscope Application: BaseStation & Sensor Testing
Oscilloscope is a good application provided that you can test mote to mote communication with a base station
Overview
- Compile & Install Oscilloscope application on one or more motes
- Compile & Install BaseStation application on a mote connected via USB
- Run the Serial Forwarder
- Execute Java based Oscilloscope application
Compile & Install Oscilloscope application on one or more motes
Enter the Oscilloscope application directory
cd /opt/tinyos-2.1.0/apps/Oscilloscope
Compile the Oscilloscope application
make telosb
Install Oscilloscope application to TelosB mote
make telosb reinstall bsl,DEVICE
DEVICE
is the path name of the USB connected mote that can be found by running the command motelist
If no errors occur, Oscilloscope is now installed on the mote. Remove the mote.
Note:
if you are going to use multiple motes to transmit data to the BaseStation you need to label them to avoid conflict
An example would be, instead of using: make telosb reinstall bsl,DEVICE
like we did above for one sensor we can use the following for the first mote
make telosb install,1
And the following for the second mote
make telosb install,2
Additional motes can be added this way as well.
Compile & Install BaseStation application on a mote connected via USB
Enter the BaseStation application directory
cd /opt/tinyos-2.1.0/apps/BaseStation
Begin by compiling the BaseStation application
make telosb
Next, connect a TelosB mote via USB connection
Install the BaseStation application to the connected telosb mote
make telosb reinstall bsl,DEVICE
DEVICE
is the path name of the USB connected mote that can be found by running the command motelist
NOTE:
Do not remove this mote, it is the BaseStation and is used to collect data from the other motes in the network that have Oscilloscope installed.
Run the Serial Forwarder
Run Serial Forwarder in a separate terminal
java net.tinyos.sf.SerialForwarder -comm serial@DEVICE:telosb
DEVICE
can be found by executing the command motelist
motelist
EXAMPLE: java net.tinyos.sf.SerialForwarder -comm serial@/dev/ttyUSB0:telosb
Execute Java based Oscilloscope application
The Java application itself is in the Oscilloscope application directory in the subdirectory java
. Begin by entering this directory
cd /opt/tinyos-2.1.0/apps/Oscilloscope/java
Next run the make
command
make
You can then run Oscilloscope Java Application with the following
./run
What's Next?
- Read more detailed tutorials on this wiki to further you knowledge on nesC programing and TinyOS
- Try to fork Oscilloscope so it reads from a different sensor then default (Temperature is a good project)