November 2, 2006
- Please not that this page is very dated (written in 2006) and much of the
information described here may no longer be accurate!
- The descriptions here were based upon the mainstream tinyos
codebase (specifically TinyOS 1.1.15). Note that this was different
from the one that the SHIMMER designers branched to provide their
- The official codebase support as of this writting is at sourceforge
- for tinyos-1.x - under tinyos-1.x/contrib/handhelds.
- for tinyos-2.x - in the main tinyos-2.x branch
- SHIMMER is now a commercial product. Please see
- The original SHIMMER was replaced by SHIMMER2 last year, so any
noted hardware characteristics may be different in version 2.
Table of Contents
- Installing the SHIMMER Platform
- Download and Install the SHIMMER Platform Code
- Running Blink
- Build and Run Blink
- Running TestSamplingStorageRadio
- Build and Run TOSBase
- Build and Run the Java Receive
- Build and Run TestSamplingStorageRadio
- Migrating from TelosB/TMote Sky to SHIMMER
- Major similarities
- Major differences
- Major pin differences
- Mailing lists
|This document describes how to configure TinyOS 1.1.15,
in order to compile and run standard TinyOS applications on the SHIMMER
platform. This guide assumes that you are using the standard
TinyOS 1.1.15 components (such as the radio stack from "$TOSROOT/tos/lib/CC2420Radio").
SHIMMER was designed by Benjamin Kuris at Intel Digital Health
Advanced Technology Group, Cambridge MA.
This section was outdated and removed!
At this point you should be able to compile and install standard tinyos
applications such as Blink for the shimmer platform. If you can't,
you may need to manually review the changes make by "makeShimmerPlatform.pl".
As the name suggests "TestSamlingStorageRadio", test the sampling, SD
storage, and radio on SHIMMER. The application samples the three
accelerometers on SHIMMER, saves the values in a TOS_Msg, and then
writes the TOS_Msg to the SD. It then reads the last TOS_Msg from
SD and broadcasts it over the radio. A separate mote running
TOSBase receives the messages, and forwards them to a java application
which displays the ADC values. Note: Currently the second
mote cannot be SHIMMER because it can't send forward messages over the
UART. I use a TelosB/Tmote Sky mote.
- Download and decompress the "TestSamplingStorageRadio"
Build and Run TOSBase
- Compile and install Blink on a TelosB mote. For example:
|$ cd $TOSROOT/apps/TOSBase
$ make telosb install.0 bsl,X
Build and Run the Java Receive
- Start SerialForwarder and point it to your TOSBase port. For example:
|$ java net.tinyos.sf.SerialForwarder -comm serial@COMX:telos
- Compile and run the java Receiver. For example:
|$ cd testSamplingStorageRadio/java
$ make run
Build and Run TestSamplingStorageRadio
- If you haven't already, connect SHIMMER to your PC.
- In a separate console window, type the following:
|$ cd testSamplingStorageRadio
$ make shimmer install bsl,X
After it compiles and installs, you should start seeing the
accelerometer ADC values in your java Receiver console window.
The format is as follows:
# srcAddr= 10 timeRaw= 635857 timeSec= 19.405 nbrSamples= 9
19.405 2318 2038 2037
19.605 2320 2044 2036
19.805 2323 2049 2035
# srcAddr= 10 timeRaw= 655519 timeSec= 20.005 nbrSamples= 9
20.005 2317 2046 2037
20.205 2321 2047 2041
20.405 2322 2042 2035
The line beginning with "#" indicates a new packet (this format
is very convenient for plotting with gnuplot). The samples are
displayed in subsequent lines and have the format
|<timeSec> <accX> <accY>
You can modify the sampling rate by editing the "testSamplingStorageRadio/TestSamplingStorageRadio.h".
If you edit this file, you MUST also re-make the java Receiver,
because it extracts the sampling rate from this file!
This section describes the major similarities and differences between
TelosB/TMote Sky and SHIMMER.
- Same processor, MSP430 (version F1611)
- Same radio chip, CC2420
- Smaller form factor
- Optional Bluetooth Radio
- MicroSD flash storage (currently up to 2GB available)
- Built in 3-axis accelerometer (Freescale MMA7260Q, with
selectable gain 1.5/2/4/6G)
- Extra led (orange)
- Support for expansion board via Hirose DF12 20 pin connector
- Li-Ion battery management
- Programming over USB via programming board
Major Pin Differences
- USART1 used by CC2420 and Bluetooth Radios (On TelosB USART1 is
used for USB UART/RS232 Tx/Rx)
- USART0 used by MicroSD and external expansion (On TelosB USART1
is shared by CC2420, ST Flash, IDC expansion connector)
- RADIO_SFD (timed version) is wired to port P1.2, which is also
the TimerA capture/compare 1 (CC1A) output. NOTE: This means
that you can't use the MSP430ADC12 component for sampling because it
requires explicit use of the main TimerA register and the CC1A
- Requires UART to PC bridge (using UART0 on external expansion
connector) for serial connection to PC
- The currently programming board does not support transmission over the UART to a PC.
For example, you can't send a message to TOS_LOCAL_ADDRESS via
GenericComm. This is disabled from GenericComm via the wrapper
A programming board with dual port FTDI USB chip is in development
by Intel Research Seattle and will be available soon.