Project Report
(Updated
Project Presentation (Updated
Network reprogramming extension plan (Updated
This document shows some ideas to extend the existing network reprogramming.
Analysis
of Xnp Network Reprogramming Module (Updated
The first step to an efficient network reprogramming is the understanding of the current implementation of network reprogramming.
Updated
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.
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)