Jaein Jeong's CS294-1 Website

Projects: Node-level Representation and System Support for Network Programming

Project Progress

Project Report     (Updated 12/16/2003)


Project Presentation         (Updated 12/05/2003)


Network reprogramming extension plan       (Updated 10/31/2003)


This document shows some ideas to extend the existing network reprogramming.


Analysis of Xnp Network Reprogramming Module      (Updated 10/30/2003)


The first step to an efficient network reprogramming is the understanding of the current implementation of network reprogramming.


Project Proposal

Updated 10/21/2003

Motivation & Background

Due to the storage and energy constraints, the program for wireless sensors is developed in a more powerful machine like a PC and is loaded to the sensor nodes later. Typically, the program code is loaded to a sensor node with direct connection like parallel cable. However, this can be problematic when a large number of sensor nodes need to be deployed. With the direct connection programming method the deployment time increases with the number of sensor nodes. Modifying a program to fix bugs or add new functionalities can delay the programming development cycle a lot. In addition, direct programming involves all the efforts of collecting the sensor nodes placed in different locations and possibly disassembling and reassembling the enclosures.

Network reprogramming can be used to address these problems. With network reprogramming, program code is sent to one or more of sensor nodes through the radio channel without requiring the one-to-one connection between the program repository and a sensor node (Figure 1). On a sensor node to be programmed, the program code is stored in external storage like EEPROM and is transferred to the working memory area (RAM). Then, the code is available for execution. Network reprogramming is supported in the latest wireless sensor platform of UC Berkeley (TinyOS 1.1 with MICA2 or MICA2DOT motes).

Figure 1 : Comparison of network reprogramming with programming with direct connection.


Project Goals

The current implementation of network reprogramming supports only single hop code transfer and is not optimized for fast delivery. It sends all the program code even though the changes from the previous version are small.

Our project goal is to achieve fast code delivery by focusing on (1) reducing the number of transmissions and (2) minimizing the overhead on sensor nodes.

We plan to generate the delta of two versions of binary code to reduce the code size. Since a sensor node is computationally constrained, we will avoid the operations that will traverse EEPROM or RAM intensively. To evaluate our work we consider measuring transmitted code size and transmission time with the current implementation for different scenarios.



[1] Efficient Code Distribution in Wireless Sensor Networks, Niels Reijers and Koen Loangendoen, WSNA '03 (p60-reijers.pdf)

[2] Epidemic Algorithms for Replicated Database Management, Alan Demers et al., PODC '87 (p1-demers.pdf)

[3] Network Reprogramming, TinyOS document (NetworkReprogramming.pdf)

[4] Mote In Network Programming User Reference, TinyOS document (Xnp.pdf)

[5] ATmega 128 Microcontroller Reference, Atmel (doc2467.pdf)

[6] Atmel 4-mega bit Data Flash Reference, Atmel (AT45DB041B.pdf)

[7] The Hash History Approach for Reconciling Mutual Inconsistency, B. Kang et al, ICDCS ’03 (https://oceanstore.cs.berkeley.edu/publications/papers/pdf/hh_icdcs03_kang.pdf)