The latest version of TinyDB is always available via anonymous CVS as a part of TinyOS. This documentation refers to the version of TinyDB rooted at tinyos-1.x/ in the CVS repository. Most of the source code resides in three directories:
  1. tinyos-1.x/apps/TestTinyDB
  2. tinyos-1.x/tos/lib/TinyDB
  3. tinyos-1.x/tools/java/net/tinyos/tinydb

A stable release of TinyDB is included with the TinyOS 1.1 release, which is available from the TinyOS Website. If you follow the installation instructions there, you should be able to build and install both the Java and TinyOS components of TinyDB.


TinyDB runs on Mica motes (available from Crossbow Technologies). It requires a TinyOS distribution for the nesC compiler, which is available with the TinyOS 1.1 Release.
In addition to the mote software, TinyDB provides a PC interface written in Java. JDK 1.3 or later is required. Some features (such as integration with Postgres) require additional features. For more information, see the TinyDB documentation.


If you downloaded TinyDB from CVS or installed TinyOS 1.1, you should have all of the nesC and java files you will need to build TinyDB.

To build the TinyDB software, make sure you have a working TinyOS distribution -- because TinyDB is large and takes significant time to compile, it's best to verify that you can build other TinyOS programs first. A good starting point would be Tutorial 1, in tinyos-1.x/doc/tutorial/lesson1.html.

To build TinyDB, first compile the mote binaries. In the tinyos-1.x/apps/TinyDBApp/ directory, run make install.x to compile and install the software on a mote (just as with other TinyOS applications.)

To build the java tools:

  1. Verify that your $CLASSPATH includes the JLex.jar, cup.jar and plot.jar files in the tinyos-1.x/tools/java/jars directory. If they are not already included (if you installed using the TinyOS 1.1 Installer, your classpath has been automagically set), you can append these files to your classpath using the javapath tool; under bash, type:

    export CLASSPATH=`/path/to/tinyos/tinyos-1.x/tools/java/javapath`

    under csh:

    setenv CLASSPATH `/path/to/tinyos/tinyos-1.x/tools/java/javapath`

    where /path/to/tinyos/ is the directory containing your TinyOS source tree. The javapath tool prepends the jar files mentioned above (along with several others) to your existing classpath.

  2. cd tinyos-1.x/tools/java/net/tinyos/tinydb
  3. type 'make' (this compilation may take a long time, especially under Cygwin)