200 likes | 271 Views
Explore the challenges of long-lasting sensor networks, focusing on reducing power usage, optimizing communication, and improving maintenance. Learn about duty cycle control, low-power communication, improved communication primitives, and higher-level functionalities. Discover the future of sensor networks and network deployment strategies for long-term success.
E N D
Beyond the 5-minute Demo Building blocks for sensor networks that need to last for months Robert Szewczyk, Anind Dey, David Gay NEST Retreat, January 2002
What’s been missing so far • TinyOS apps make very good demos, but… • Many carefully tuned parameters, lots of hard coding • Limited self monitoring • Coded as a demo, not a as a service • Different requirements for long running networks • Use many devices (possibly different) to contribute to the network – building general purpose net, on application-specific sensors • Control parameters change over time – either need to provide common control mechanism, or automatically adjust local parameters
Application model Environment monitoring DB Traditional network SerialForwarder Remote control console for motes SerialForwarder SerialForwarder Inventory tracking
Example: Network in Cory Hall • 50+ Rene motes • MySQL backend, a number of front end visualization tools • Deployed in May/June 2001, ~ 3 weeks, 500 thousand samples
Experiences from Cory Hall network • Relatively brittle application • Too high power usage • 2-3 weeks on a set of batteries • Variable range • No self monitoring of nodes • Random failures, noticed only when the application has been accessed • Lack of advanced monitoring/scheduled maintance • Unacceptably high maintenance costs • Battery checks, code upgrades, database maintenance, connectivity checking • Relatively difficult to deploy
Broadcast Route Sense Net Prog AM Wakeup Clock Application structure Command Logger
Energy usage • Goal: 2AA batteries should last for at least 1 year • Average power usage: 200 uA • Power usage: <50 uA while powered down, <20 mA while running full bore • Can control both the duty cycle and (to some extent) the active power usage • Reducing active power usage • Most power used for communication • Cannot avoid transmission costs • Lower power listening • Early message rejection
Duty cycle control • WAKEUP component • Mechanism for putting node to sleep for a specified period of time • Gets us into the uA range • Requires time synchronization to work • Need to coordinate the awake periods to maintain multihop connectivity • Scheduling policies • Synchronize the entire network • Schedule rendezvous between parents and children, a flavor of distributed TDMA
Low power communication • Builds on the new networking stack • Adds a preamble which allows for a 10% duty cycle • Radio layers too slow, need to break TinyOS model • Poll while radio is being turned on
Global Broadcast • Very simple flooding, from any source, based on a sequence number • If message not seen previously rebroadcast, otherwise don’t do anything • Doesn’t depend on any particular broadcast tree, as long the network has good connectivity • Useful as a transport for many control messages
Base station routing • “Mostly” beaconless routing • Gather local neighborhood information across several components • Least-recently heard replacement policy • Select a parent from the neighborhood • Beacons take a form of infrequent broadcasts, carry time sync information, level, duty cycle information, etc. • Parent selection reinforced by regular traffic • Route testing for bi-directionality • Observe retransmissions from the parent • Dedicated local ping service
Controlling application • A dispatch component for controlling the functions of the nodes • Time synchronization • Setting mote parameters – duty cycle control, transmission power, sampling speeds, etc. • Interactive control of the sensor networks
Field upgrades – network programming • Reprogramming model: • Download program to local non-volatile storage • Save local state • Reload local program, reset the system • Basic mechanism – 4 message handlers • Program announce, write fragment, read fragment, start reprogramming • Idempotent messages • Communication protocols optimized for local, single hop broadcasts in dense neighborhoods • Also exists in a multihop version, viral reprogramming under construction
Richer “core” TinyOS • More standardized functionality • Broadcast, routing, network programming, ping, other “standard” message handlers • Non-volatile storage • Need a richer model for sharing state between components • Sharing some state between unrelated message handlers • Optimize for cheap and flexible state access/modification • Contexts per network stack? Registry of attributes? What state should be nonvolatile?
Network deployment • Why it would be a pain to deploy a bucket of SmartDust motes • ID assignment • Selection of program to run, and what happens when that program crashes • Some approaches to try • Primordial program – equivalent of bootp • Periodic resets • Viral propagation of code – local broadcast, infect the new nodes with the current program • Functional partitioning of motes?
The Demo • 3 distinct parts • Snapshots of environmental data • People tracking • Social network formation • Audience participation encouraged • Will present results later during retreat
Active badges • Autonomous motes, detecting each other • Periodic beaconing • Local history buildup – who did you spend time with during the retreat • Opportunistic offloading of data to the infrastructure – detecting presence of a cheap link (e.g. a nearby base station) • Relatively low power • But nowhere near the IDF demo power consumption • Cached data on the PC side