Embedded Systems

SHIMMER and BioMOBIUS: A Health Research Platform

The combination of the BioMOBIUS and SHIMMER platforms lets researchers rapidly develop research tools -- and open source is the key.

SHIMMER Firmware

Firmware provides the low-level capabilities within the SHIMMER platform to control the device functions. There are a number of lightweight operating systems that can be used to run on a sensor node, namely TinyOS [53], Contiki [54], Nano-RK [55], ERIKA [56], MANTIS [57], and SOS [58]. All SHIMMER firmware is primarily developed by using TinyOS and released into the public domain via SourceForge [59]. Firmware running on the sensor platform provides local processing of the sensed data, local storage of the data if required, and communications of these data to a higher-level application for advanced signal processing, display and data persistence.

TinyOS handles task scheduling, radio communication, time, I/O processing, etc. and has a very small footprint size. TinyOS is a lightweight, event-driven operating system designed for sensor network nodes that have very limited resources.

Real-time Data Streaming to BioMOBIUS

SHIMMER data can be reliably streamed at rates up to 500HZ in real-time to a BioMOBIUS application via the Bluetooth or 802.15.4 radios. To enhance the reliable communications in addition to standard Bluetooth link reliability, a packet format that supports various types of sensor data and provides enhanced reliability to the data transmission through packet sequence numbers and a cyclic redundancy check, was developed. The SHIMMMER firmware (implemented in TinyOS version 1) uses the frame format in Figure 5 for BioMOBIUS application integration.

Figure 5: SHIMMER frame format (Source: Intel Corporation)

The content of packets is unrestricted binary data. This can lead to problems with control characters like BOF (Beginning of Frame, hex byte '0xC0') or EOF (End of Frame, hex byte '0xC1') appearing in the packet header or payload and being interpreted as control characters. To avoid this issue, a byte stuffing technique based on ISO's asynchronous high-level data link control (HDLC) protocol is utilized.

Logging Data to MicroSD Card

Many biomedical applications require subjects to have complete and unhindered mobility. To achieve this, capability support for Secure Digital (SD) card logging has been developed. The SHIMMER platform utilizes a MicroSD card slot that supports up to two GBytes of flash memory. For ambulatory ECG monitoring at 500 Hz from three channels, more than 80 days of data can be stored in uncompressed format. There are a number of firmware programs available on SourceForge that facilitate recording of data to the SHIMMER platform's MicroSD card.

Power Management

A significant difference between most sensor nodes and standard computing platforms is the heavy focus on power management and consumption. A large number of applications require battery-powered operation for extended periods of time [60]. Computational capabilities have far outstripped battery technologies. SHIMMER battery optimizations have been implemented to satisfy various project requirements. These optimizations implemented in firmware have been mostly, but not exclusively, focused on lowering the duty cycle of the 802.15.4 radio. The goal is to minimize the on-time of all hardware subsystems on the sensor hardware platform. For example, each gyroscope on the SHIMMER gyroscope daughterboard requires a supply current of 9.5mA. With two dual-axis gyroscopes on the board there is a substantial 19mA requirement that can be saved when the gyroscopes are off. Other auxiliary battery features have been implemented for integration purposes, such as a low battery indication sent by the SHIMMER platform to a BioMOBIUS software application that prevents corrupted data from the accelerometer being received. The accelerometer outputs are ratio metric which means the output offset and sensitivity will scale linearly with applied supply voltage. Therefore, useful data can only be generated if the supply voltage remains constant. The low battery indication is a SHIMMER firmware feature that halts sampling of data when the supply voltage falls below +3V.

Programming/Flashing SHIMMER

An intuitive mechanism to support the download of firmware executable programs to SHIMMER sensors was highlighted as an important capability for biomedical researchers. The SHIMMER development kit includes an easy-to-use graphical application called the "SHIMMER Windows Bootstrap Loader" to allow users who do not have a TinyOS installation on their system to program SHIMMER sensors for their application needs.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!