SHIMMER

From TinyOS Wiki
Revision as of 17:26, 21 May 2008 by Konrad (talk | contribs) (Migrating from TelosB/TMote Sky to SHIMMER)
Jump to: navigation, search

SHIMMER Overview

SHIMMER - Sensing Health with Intelligence, Modularity, Mobility, and Experimental Reusability

Error creating thumbnail: File missing
SHIMMER with sensor boards broken out.
Error creating thumbnail: File missing
SHIMMER mote in case.

SHIMMER is a small wireless sensor platform designed to support wearable applications. It provides an extremely extensible platform for real-time kinematic motion and physiological sensing. It features a large storage capacity and low-power standards based wireless communication technologies which facilitate wearable or wireless sensing in both connected and disconnected modes.

SHIMMER provides an extremely compact extensible platform for long-term wearable or wireless sensing using proven system building blocks. The design is realized using conventional design and assembly technology to ensure repeatability and economy. SHIMMER will help to create an ecosystem of health-related technologies that provide a highly mobile capability which is tightly integrated with supporting infrastructure.

Links

Platform Features

  • Compact Form Factor, Light & Wearable (Weight: 15 Grams, Volume: 50mm x 25mm x 12.5mm)
  • Support for Bluetooth and 802.15.4 wireless communications (WML-C46A, CC2420)
  • Offline Data Capture - Micro SD Card Storage - 2 Gigabytes
  • Open Platform, driven by TinyOS
  • Internal and external connectors for expansion
  • Integrated TCP/IP stack for 802.15.4
  • Integrated 3-axis MEMs accelerometer with selectable range
  • Integrated Li-ion battery mgmt.

Available as add-on extension boards and accessories

  • Kinematics sensing (3 axis Gyroscope)
  • Advanced Kinematics sensing (3 axis Gyroscope + 3 axis magnetic sensing)
  • 3 Lead Micro-power electrocardiograph (ECG)
SHIMMER with ECG sensor board.
  • Breakout board to thru-holes for rapid prototyping
  • USB programming/charging dock
  • 6-SHIMMER Charger

Applications

The SHIMMER platform is being utilized for a variety of applications. These include:

  • Limb motion analysis of Parkinson's Disease and stroke patients - see CodeBlue for details
  • Gait Analysis
  • Sleep Studies
  • Cognitive Awareness
  • Activities of Daily Living Studies
  • Vital Signs Monitoring
  • Chronic Disease Management

A sample SHIMMER application for data collection can be found in the TinyOS 1.x contrib/harvard/spaulding directory.

Availability

SHIMMERs will be commercially available soon! Details will be posted here.


TinyOS Support

There is TinyOS support for both tinyos-1.x and tinyos-2.x versions. As of now (May 2008), the SHIMMER platform will be part of the core tinyos-2.x distribution. The sections below describe how to install the shimmer platform for both tinyos versions

TinyOS 2.x Support

You can obtain the platform code from the main tinyos-2.x CVS tree. (Note, shimmer was not part of the last official release 2.0.2). If you already have a tinyos-2.x CVS tree, simply go to the root and do a cvs update. Otherwise, the instructions below tell you how to check out the latest tinyos-2.x code from CVS as an anonymous user.

Type the following commands in your shell prompt. When prompted for password, just hit Enter

cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/tinyos login
cvs -z3 -d:pserver:anonymous@cvs.sf.net:/cvsroot/tinyos co tinyos-2.x

After the checkout completes, you should be able to compile and install SHIMMER applications just like with any standard platform. For example, to compile and install Blink, do the following:

cd $TOSROOT/apps/Blink
make shimmer install bsl,X

where X is your serial port (e.g. 3 on Windows, assuming it's on COM4; /dev/ttyUSB0 on Linux).

You may also want to test the radio. Do this by compiling and installing $TOSROOT/apps/RadioCountToLeds on TWO shimmers (for sending and receiving radio messages).

TinyOS 1.x Support

To make the installation simpler, I have bundled the platform specific code (some of which was written at Intel) and wrote a script to automate the installation. In most instances, running the script should be enough. If you want the latest tinyos-1.x platform code under development, you can get it from the tinyos-1.x contrib. Specifically tinyos-1.x/contrib/handhelds.

For additional TinyOS 1.x documentation, please visit SHIMMER Getting Started Guide.

Download and install the SHIMMER platform code

  • Download and decompress the SHIMMER platform code download
  • Move this directory where you want the SHIMMER platform code to reside.
  • Install it by running "makeShimmerPlatform.pl". For example:
tar -zxf shimmerPlatform.tar.gz
cd shimmerPlatform
./makeShimmerPlatform.pl
  • The script "makeShimmerPlatform.pl" performs the following changes.
    • Adds the shimmer platform in "$TOSROOT/tos/platform/"
      • Creates a symbolic link to "shimmer" platform code
    • Adds the Accelerometer and SD drivers to "$TOSROOT/tos/lib/"
      • Creates a symbolic link to "SD"
      • Creates a symbolic link to "MMA7260Q_Accel"
    • Updates the TinyOS make in "$TOSROOT/tools/make/"
      • Replaces "all.target" to include "shimmer" at the end of the line "PLATFORMS ?= mica mica2 ..."
      • Creates a symbolic link to "shimmer.target". The file also defines "MSP_BSL", which tells the tinyos make where to find the SHIMMER bootstrap loader.
      • Creates a symbolic link to the "shimmer" directory containing the SHIMMER bootstrap loader.


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

References

Documentaions

Mailing Lists