MistLab: Getting Started and FAQ

Introduction

Our software automates the process of reprogramming, scheduling, and collecting data. Using MistLab usually involves three steps:

  1. Uploading TinyOS Mica2/Cricket binaries and MIG generated Java class files.
  2. Scheduling jobs (corresponding to a set of binaries and class files) to run on the testbed.
  3. Downloading the data collected.
Email Lists

All email lists are at nms.csail.mit.edu.

  • mistlab-users: active MistLab users.
  • mistlab-admin: MistLab administrators; send mail to this list for help using our testbed.
Step 1 - Uploading

Motelab requires that you upload binary forms of the sensor application and its corresponding message files

  • If you want to use the entire testbed, make sure you upload both a Mica2 binary and a Cricket binary. You can download the necessary platform files from the Cricket page.
  • You must generate message format files using MIG in order for messages sent to the uart to be logged in our database. MIG is a tool, distributed with NesC, that converts TinyOS messages into java classes.
    • Make sure AM_TYPE is defined somewhere in your header files.
    • example command line: mig java -target=mica2 -board=micasb -java-classname=cents.pkt.AdcMsg ./Expt.nc -I../../tos/lib/queue AdcMsg -o AdcMsg.java
Step 2 - Scheduling

Motelab allows you to see what other jobs are running and schedule jobs. Here are a few scheduling guidelines:

  • Be kind and don't schedule jobs to run for hours on end. If you need a large block of time, schedule to run late at night. Also, send email to mistlab-users.
  • Don't delete other peoples' jobs.
Step 3 - Downloading

After your job completes, you have two options for analyzing your data:

  1. You can download a zip-file containing a tab-delimited dump of the data collected during your job. Links to these archives should be on the main page once you log back into MistLab.
  2. You can query the database directly using a mysql client.

Other things to keep in mind:

  • Only packets that are sent to the serial port (TOS_UART_ADDR) are logged to the database.
Frequently Asked Questions

General

  • You may communicate directly with an individual mote during a job. Simply connect to mist.csail.mit.edu at port=9000+moteid.
  • Make sure you first debug your application using a few motes at your desk. Debugging a distributed application on a 60+ node testbed can be challenging.

UART Issues

  • Note that Mist runs an unmodified TinyOS, with TOSH_DATA_LENGTH == 29. If you change TOSH_DATA_LENGTH, make sure that your debugging messages that are sent to TOS_UART_ADDR fit in the unmodified TOSH_DATA_LENGTH.
  • when compiling for the cricket platform, make sure to move CC1000Const.h and HPLUART0M.nc out of the way (for example, by renaming them to .old). The Mist testbed assumes different baud rates and frequencies than what the standard cricket include files from CVS will give you.

mig Issues

  • -target=mica2 or -target=cricket, appropriately, otherwise the generated DEFAULT_MESSAGE_SIZE may be wrong.
  • -java-classname=SomePackage.SomeClass, only a class name is not enough.
  • make sure the AM_TYPE in the generated .java file is not -1.

Web Interface

  • make sure to click the "Run ... on all motes with matching hardware" radio button

Java issues

  • If you are using Java 1.5, compile with -source 1.4 so that you generate Java 1.4-compatible code.

Miscalleny

  • for logging and debugging purposes, make sure to give different names to the executables for crickets and mica2's.
Last Updated: Dec 19, 2005