ESSense - Energy-efficient Storage for SENSors


The field of sensor networks has seen tremendous growth in recent years. Sensor platforms are typically untethered and equipped with a finite energy source; thus significant research is focused on optimizing the energy consumption of node resources such as computation, communication and storage.

Each new generation of sensor platforms has tracked technology trends in computation and communication components, but the storage subsystem on these platforms has undergone little change. All generations of the Mica motes provide limited storage of a less than a megabyte, at an energy cost equivalent to or greater than that of communication. The high energy cost of storage has raised questions about the rationale for using in-network storage-based data management techniques for sensor networks, though a lot of current research assumes the presence of such an energy efficient storage subsystem.

The ESSense project aims at filling this gap and aims to:
  1. Find the most energy-efficient storage platform for sensor networks and to ascertain the implications of an ultra-low power storage subsystem on sensor network design.
  2. Design a storage frame-work that allows sensor network researchers/developers to use ultra-low power storage in an efficient and useful manner.

Ultra-Low Power Storage

Existing storage solutions are both low-capacity and energy-inefficient. Two boards developed aim to provide substantial storage capacity at a low energy cost. The first generation board developed provides a parallel interface to NAND Flash memory, while the second provides a serial interface to similar memory.

Parallel Storage Board

We performed an exhaustive empirical characterization of the active and sleep mode energy consumption of flash-based storage options to determine the most energy-efficient storage device for sensor networks. Our results show that parallel NAND flash technology offers a 100-times more energy-efficient storage option compared to other flash memories and the communication (using the CC2420 radio on the MicaZ). This changes conventional wisdom that considers the energy cost of storage to be equivalent or greater than that of communication.

Flash Page size Read/byte Time (page) Write/byte Time (page) Erase size (in pages) Erase/byte Time (block)
Toshiba 16MB (TC58DVM72A1) 512+16b 0.004uJ - 0.009uJ - 32 0.004 -
Toshiba 128MB (TC58DVG02A1FT00) 512+16b 0.0192uJ 0.744ms 0.0436uJ 0.996ms 32 0.00403uJ 1.1ms
Toshiba 128MB (TC58NVG0S3AFT05) 2048+64b 0.0195uJ 5.84ms 0.0234uJ 6.4ms 64 0.000252uJ 1.28ms
Toshiba 256MB (TC58NVG1S3BFT00) 2048+64b 0.0440uJ 5.84ms 0.0503uJ 6.4ms 64 0.000427uJ 1.710ms
Toshiba 256MB (TC58NVG1S3BFT10) 2048+64b 0.0405uJ 5.84ms 0.0464uJ 6.4ms 64 0.000412uJ 1.67ms
ST 128MB (NAND01GW3B2AN6) 2048+64b 0.0444uJ 5.80ms 0.0566uJ 6.52ms 64 0.000557uJ 1.97ms
Micron 512MB (MT29F4G08BAB) 2048+64b 0.0279uJ 5.84ms 0.0347uJ 6.40ms 64 0.000518uJ 1.84ms
ST NOR - TelosB (STM25P80) 256b 0.0564uJ 7.48 ms 0.127uJ 7.88ms 256 0.185uJ 1.07s
Atmel NOR - Mica2 (AT45DB041B) 256b 0.26uJ - 4.3uJ - 1 2.36 -
Hitachi MMC 512b 0.06uJ - 0.575uJ - 1/16 0.47/0.0033 -

Table showing summary of measurements with various flash memories.

Some of the flash memories evaluated

Some of the flash memories evaluated. The board on the left was fabricated at UMass to test parallel NAND memories, the centre picture is that of a MicaZ mote showing the flash chip and the picture on the right is that of an adapter board fabricated to test MMCs.

We also evaluated the impact of high-capacity, ultra-low power storage on sensor network design. We measure the impact of flash memory trends on three services: communication, in-network data aggregation, and localization. Our measurements show a 50-fold reduction in energy consumption for communication, up-to 10-fold reduction for data aggregation, and a 2.5-fold increase in localization accuracy at low additional energy cost.

UMass Parallel Storage Board

Parallel 128MB NAND Flash based Storage board for Mica series motes


Our source code is written in nesC and is based on the TinyOS 1.1.x platform.
Drivers: contrib-UMN-0.1.tgz

Storage subsystem: <coming soon>
Hardware (schematics and board layout): eaglecad and gerber files, schematic (gif), board (gif)

Serial Storage Board


Many sensor platforms do not have the luxury of many general purpose I/O pins. This motivated the development of a serial interface to reduce the number of signals required to facilitate communication between the flash based storage board and target sensor platform. Our current implementation uses an MSP430 ultra-low power microcontroller to translate a series of serial commands to the parallel signals needed to drive the NAND Flash IC. This new communication scheme requires more power and has a lower communication speed than it's parallel equivalent. This tradeoff is required to interface with platforms (e.g. Skymote) that do not have large amounts of available I/O.

Hardware Design

The hardware design of the serial NAND Flash based storage board features an MSP430F1612 microcontroller with 5kB onboard SRAM. This provides enough storage space to retrieve an entire page of data from the Flash before using the serial link. The flash device used is the Micron 512MB (MT29F4G08BAB). Characterization data, as well as page/block size for the device, can be found in the table above. UART0 provides both SPI and I2C serial protocols.

SPI0 pins, as well as VCC and GND, are brought out to a 10-pin header to interface with a target platform. It is important to note that this header is not currently pin compatible with the 10-pin expansion header found on the Telos series of motes. A JTAG-header pin compatible with the MSP-FET430UIF tool from Texas Instruments is available to program and update the firmware on the MSP430. A simple RC circuit allows the debugger to take control of the reset signal during programming and debugging.

Pads for an external resistor for the internal oscillator on the MSP430 are available to increase the maximum clock frequency. Without the external resistor populated, the MSP430 is limited to a maximum clock frequency of ~5MHz.

Serial Storage Board

Serial 512MB NAND Flash based storage board

Software Design

A first revision of firmware for the MSP430 was developed using the IAR Embedded Workbench from Texas Instruments. This implementation features a simple byte-based serial protocol over SPI that emulates the parallel interface provided by the NAND Flash IC. Flash commands supported include:

1) Read device ID
2) Read status byte
3) Page write
4) Random page write
5) Page read
6) Random page read
7) Program page
8) Erase block
9) Reset

Board specific commands include:

1) Send idle byte
2) Force MSp430 sleep
3) Read Firmware revision ID

We are aware the Telos sensor platform does not support SPI. A new codebase using I2C is under development; I2C pins are common to SPI on USART0, so no hardware changes will be required. Current implementation of firmware was tested using an MSP430F169 as a SPI slave. A full characterization of maximum transfer rate, energy consumption, and timing is still needed.

A full description of the serial protocol is available in a readme document in the firmware archive. In the future, drivers will be ported to TinyOS to allow for databasing support, thus providing a complete storage solution.


Source code is written in C and was compiled and downloaded with TI's IAR Embedded Workbench.

Storage subsystem: <coming soon>
Hardware (schematics and board layout): eaglecad and gerber files, schematic (gif), board (gif)

Storage Framework for Sensors: Capsule


Gaurav Mathur, Peter Desnoyers, Deepak Ganesan and Prashant Shenoy, Ultra-Low Power Data Storage for Sensor Networks, Information Processing in Sensor Networks (IPSN) Track on Sensor Platform, Tools and Design Methods for Networked Embedded Systems (IPSN-SPOTS), Nashville TN, April 2006. (Poster: pdf, ppt)

Gaurav Mathur, Peter Desnoyers, Deepak Ganesan and Prashant Shenoy, Ultra-Low Power Storage for Sensor Networks, Poster at TinyOS Technology eXchange (TTX), Stanford CA, Jan 2006.



This work is supported by a grant from the Engineering Research Centers program of the National Science Foundation under cooperative agreement EEC-0313747 and NSF CAREER Award CNS-0546177.

©2006 Sensors Group, Computer Science Department, University of Massachusetts Amherst