About

Contiki is an open-source, portable and multitasking operating systems for memory-constrained networked components. The OS is based on event-driven kernel, on top of which applications load and run. Processes use light-weight threads, or protothreads. There are two communication stacks involved: uIP and Rime, the first being the TCP/IP-based stack, and the second being a light-weight communication stack for low-power radios[3]. Also included is support for preemptive multi-threading, should the applications require it.

The OS runs on older computers, as well as on embedded microcontrollers. It has a very small code footprint (a few kilobytes), and low memory usage (tens of bytes). It can also estimate the energy consumption of the system, which could make it very useful in a real-time environment. In [2], the authors show how Rime can be used to reduce energy consumption for running a program inside Contiki, by reducing program overhead (making program loading faster) by integrating protocol implementations. Basically, Rime proposes a layered stack as a communication abstract for sensor networks.

Research papers using Contiki and related to wireless sensor networks include [1], where we find Chameleon, an adaptive communication architecture for sensor networks using the Rime protocol stack and working with packet attributes instead of packet headers. The ZigBee standard (based on IEEE 802.15.4) is also mentioned. TCP/IP is not suitable for this task, although a simplified implementation (using probably compression for low-energy devices) could help make it useful for short-range, low data rate control and sensing applications.

Tests that used Contiki for wireless network sensors [3] include the security project at SAAB Technologies (where a network of motion sensors was deployed in an office, with an alarm being sent by GSM whenever a move is detected by these sensors), a project for marine monitoring (developed at UmeaMarine Sciences Centre for monitoring water temperature and salinity), and a HVAC project (developed for Raditex AB and looking to improve the energy efficiency of a heating system).

Contiki, as a continuously improved and updated operating system running on simple, low-memory, low-powered systems, is therefore a good choice for implementing a real-time system for collecting data from a group of networked sensors.

Bibliography