Capsule logo

An Energy-Optimized Object Storage System for Memory-Constrained Sensor Devices


Recent gains in energy-efficiency of new-generation NAND flash storage have strengthened the case for in-network storage by data-centric sensor network applications. We argue that a simple file system abstraction is inadequate for realizing the full benefits of high-capacity low-power NAND flash storage in data-centric applications. Instead we advocate a rich object storage abstraction to support flexible use of the storage system for a variety of application needs and one that is specifically optimized for memory and energy-constrained sensor platforms. We propose Capsule, an energy-optimized log-structured object storage system for flash memories that enables sensor applications to exploit storage resources in amultitude of ways.

Capsule features:
  1. Capsule provides the abstraction of typed storage objects to applications; supported object types include streams, indexes, stacks and queues. A novel aspect of Capsule is that it also allows composition of objects for instance, a stream and index object can be composed to archive sensed data. The objects expose a data structure-like interface, allowing applications to easily manipulate data.
  2. Capsule seamlessly supports storage on a multitude of platforms (both NAND and NOR flashes) with the help of a hardware abstraction layer; the same application can be used on any supported platform. Currently we support storage on the following platforms: Mica2, MicaZ, Mica2 Dot, Telos and our custom NAND flash board. However, the use of an abstraction layer allows supporting a new platform a breeze. 
  3. Capsule supports checkpointing and rollback of storage objects, allowing the application to tolerate software faults and device failures. The application state is automatically restored when the device restarts.
  4. We provide our own file system implementation on Capsule that allows applications using Matchbox and ELF to be ported to Capsule.
  5. Flash offers a finite storage medium; once it fills up, free space needs to be created before any further data can be stored on it. Basic Capsule objects perform memory reclamation by supporting compaction.
The Capsule architecture is shown here:

Capsule Architecture

Our research also looked at providing an ultra-low power storage substrate specific to sensor devices. We found NAND flash to provide an extremely low-power high-capacity alternative to current storage solutions and we built custom adapters to allow us to work with NAND flash memories.


Capsule has been written using nesC on TinyOS. The Turtle project of the PRISMS group at UMass-Amherst is using Capsule for the sensor application being deployed on the turtles so the code has already undergone a rigorous round of testing.

Capsule v0.9: It is now available as part of the tinyos-1.x distribution on sourceforge ( in tinyos-1.x/contrib/umass

Documentation and Support: Capsule is work in progress -- preliminary documentation has been provided in the README along with some sample applications. For support queries, send email to


Gaurav Mathur, Peter Desnoyers, Deepak Ganesan and Prashant Shenoy, Capsule: An Energy-Optimized Object Storage System for Memory-Constrained Sensor Devices, Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys), Boulder CO, November 1-3, 2006.

Gaurav Mathur, Paul Chukiu, Peter Desnoyers, Deepak Ganesan and Prashant Shenoy, A Storage-centric Camera Sensor Network, Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems - Demonstrations (SenSys), Boulder CO, November 1-3, 2006.



This work is supported by a grant from the Engineering Research Centers program of the National Science Foundation under cooperative agreement EEC-0313747, CNS-0626873, CNS-0546177, CNS-052072, CNS-0325868, and EIA-0080119.