SHIMMER Getting Started Guide
Konrad Lorincz |
Disclaimers
| Introduction |
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.
| Installing the SHIMMER Platform |
This section was outdated and removed!
| Running Blink |
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".
Build Blink
- Compile and install Blink. For example:
$ cd $TOSROOT/apps/Blink
$ make shimmer
$ make shimmer reinstall bsl,XAt this point you should see Blink running on your SHIMMER.
| Running TestSamplingStorageRadio |
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" application [download]
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
$ 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,XAfter 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> <accZ> 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!
| Migrating from TelosB/TMote Sky to SHIMMER |
This section describes the major similarities and differences between TelosB/TMote Sky and SHIMMER.
Major Similarities
- Same processor, MSP430 (version F1611)
- Same radio chip, CC2420
Major Differences
- 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 output.
- 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 in "$TOSROOT/tos/platform/shimmer/UARTFramedPacket.nc". A programming board with dual port FTDI USB chip is in development by Intel Research Seattle and will be available soon.
| Support |
References
- SHIMMER Hardware Guide
- MMA7260Q Datasheet (accelerometers)
- IDG300 Datasheet (gyroscopes - on daughterboard)
- Antenova Rufa Datasheet (antenna)
- MSP430: datasheet | user's guide
- TMote Sky Datasheet
Mailing Lists
- Shimmer-Users (requires subscription)
- TinyOS