Running Experiments on ISI Wireless Sensor Network Testbed


We have tried to simplify the procedure of setting up an experiment using the PC-104 nodes. Using the tools we developed, multiple users can be assigned different nodes and have different applications (binaries) in each of their nodes, without having to worry about manually transfer them to each node, or checking if the right set of binaries is in place. In addition, updating binaries is very simple and can be done en masse for all the nodes.

In the following sections you will find step by step directions that will help you to use the testbed. Enjoy it :)

General Description

The machine is our main host for anything related with the testbed. It runs the rsync and (optionally) syslog-ng daemons for remote software synchronization and reliable logging of experiments. In addition, it keeps the central repository of all the PC-104 software images of every user. .


The following is a sequential list of steps you should follow in order to get ready to run an experiment.

0)      Get an ISI or SCADDS account. You need have an account at to access the testbed

1)      Assign node(s) to you. You need some nodes to run an experiment, don't you?

2)      Get your local repository of PC-104 code. You may need to add your own software.

3)      Create your own distribution and commit your changes back to the rsync host. You want your changes to get propagated to the nodes.

4)      Turn on your PC-104 nodes ... and voila! You are ready to go.

Addtionally, we also have accumulated a FAQ section at the end of the page.

Get an ISI or SCADDS account

You need to have an account on to access the nodes in our testbed. Please contact Jerry Zhao or other SCADDS member if you need any help.

Assigning nodes

Step 1.
Logging in

Step 2.
Edit with your favorite editor the file /etc/rsync-pc104.conf. There should be one line per user and you should use the following syntax to assign a node to you:
user  node_id  node_id-node_id

For example, suppose the file looks like:
cerpa 11-25 28 32
sbien 1 3 5-10 27 34
jelson 22 24 26

In this case, nodes 11 to 25 (inclusive), 28, and 32 are assigned to user cerpa; nodes 1, 3, 5 to 10 (inclusive), 27, and 34 are assigned to user sbien; and nodes 22, 24, and 26 are assigned to user jelson. Add your username to the list (if you are not already there) and assign you the nodes you need using the above syntax. If you accidentally assigned the same node to more than one user, step 3 will fail.

Step 3.
Run the following command:

This command modifies the /etc/rsyncd.conf rsync configuration file for you based on the info provided by /etc/rsync-pc104.conf file you edited on step 2. The command will fail if you assigned the same nodes to more than one user. It will also automatically create an rsync default image in /scratch/.rsync/your_username if you don't have one already.

Getting your own local version of the PC-104 repository

Step 1.
Logging in any ISI machine as you.

Step 2.
Get the rsync-pc104 script here. I would recommend to install it in your home directory under ~/bin and include ~/bin to your Unix path. In this way, you will always find it independently of the machine you are using.

Step 3.
Create a directory where you will put your PC-104 distribution. For example, if you choose ~/projects/pc104, you could do
>$ mkdir projects
>$ cd projects
>$ mkdir pc104
>$ cd pc104

Step 4.
From the directory you created in step 3, run the following:
>$ rsync-pc104 co
If this is the first time you are checking out, it will prompt you with a message to check if you are sure you want to proceed. You should respond "yes".

Despite the instructions in step 1, if you "accidentally" run this command as root AND you where in the root partition ("/") of the machine you are logged on, then the command will fail to avoid you screwing up your host machine by copying the PC-104 distribution in the root directory.

After you completed these steps, you should have an image of the default PC-104 file system that looks like:
~/projects/pc104/{bin, boot, etc, lib, sbin, usr}

Creating your own distribution and committing your changes

After you get your own local repository (and may be optionally modified the syslog-ng config files), you are ready to add your own binaries to tailored your own personalized distribution. Although it is possible to delete some of the binaries that come with the default distribution, we strongly advise you be very careful against such practice. The default distribution comes with a minimum set of binaries necessary to operate correctly, and if you start deleting some of them you may end up screwing up things :-)

You could compile your applications in any lab's desktop, since all the machines have Linux kernel 2.4.x (as of May 2001). Nevertheless, if we start updating desktops distributions in the near future, you should compile on cockatoo that will always (presumably) remain in sync with whatever kernel is running in the PC-104 nodes.

If you want to have your own personalized version of diffusion or have your own particular filter, then you should copy your binaries to bin/diffusion or bin/diffusion/apps. These directories are included in the Unix path by default when the node initializes. Otherwise, you could just copy your binaries in the bin/ directory.

Step 1.
Go to your local repository. Following the previous example:
>$ cd ~/projects/pc104

Step 2.
Copy all your binaries to the appropriate places in the distribution. For example, if you have your own personalized diffusion agent in ~/my_diff_agent, you could do:
>$ cp ~/my_diff_agent ~/projects/pc104/bin/diffusion/apps

Step 3.
Once you copy all the binaries you want, you commit your personalized distribution by doing:
>$ cd ~/projects/pc104         # cd into the root of your distribution
>$ rsync-pc104 ci
This will commit all the changes of your distribution into your repository located in

Turn on your PC-104 nodes

You are almost there. Turn on your nodes and see what happens. If everything was done correctly, the nodes should have updated their distribution to match yours and will be ready to run your experiment. All nodes can be accessed by telnet or rsh from You may like to write several scripts to start and stop your applications. Alernatively, you can also start your applications from /usr/sbin/, which will be executed as soon as the system boots up.


Frequently Asked Questions (Coming Soon)


Created for UCLA/LECS by Alberto Cerpa. Last modified by Jerry Zhao: 1/2/2002