SHIMMER

From TinyOS Wiki
Revision as of 16:00, 21 May 2008 by Konrad (talk | contribs)
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.

Links:

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.

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

Software

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

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

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.