Deluge: TinyOS Network Programming






The real way to program your motes


Your nodes can communicate wirelessly, so why don't you?


Note: I am no longer actively developing Deluge. Learn more about my recent work here.

[22 Jul 2005] Deluge 2.0 Release available in CVS and included in TinyOS 1.1.14. For a summary of changes, click here.

[25 May 2005] Deluge 2.0 Beta release. The latest version of Deluge provides a wide array of robustness and useability enhancements while taking less code space.

[24 Aug 2004] Initial release of Deluge.

[02 Apr 2004] Beta relase of Deluge.


What is Network Programming?

Network programming provides the ability to wirelessly install a new program image. This is accomplished by propagating a program binary over the wireless network and having each node program themselves with the new image.

Included Features

  • Multihop support: Wirelessly program all nodes in a multihop network without touching your nodes.
  • Epidemic propagation: Continuous propagation effort by all nodes helps ensure reachability of those nodes with intermittent connectivity.
  • Store multiple program images: With each node storing multiple program images, quickly switch your network between different programs without continuous downloading.
  • Operate heterogeneous networks: Run different application code on different nodes.
  • Golden image: A program image with minimal support for network programming is stored in a safe location on external flash. Always have a piece of code that will allow for recovery.
  • Isolated bootloader: A piece of code that is guaranteed to execute after each reset independent of the TinyOS application. The bootloader is responsible for programming the microcontroller and recovers from programming errors by loading the Golden Image.
  • Rollback gesture: Nodes crashed without setting a watchdog timer? Load the Golden Image simply by flicking the reset switch a few times and they're ready to accept a new program wirelessly.
  • Redundant data integrity checks: CRCs at different levels of hierarchy help ensure that program images at all nodes are not corrupted.
  • Small RAM footprint: At less than 150 bytes.

Great, How Can I Start?

TinyOS Network Programming will be included in TinyOS 1.1.8. In the mean time, you can obtain the necessary software by checking out tinyos-1.x directly from CVS.

The manual and FAQ should provide enough information to get you up and running quickly.