Berkeley Electrical Engineering and Computer Sciences

One day soon, your environment may be peppered with tiny sensing devices, each the size of a bottle cap. The devices, self-organized into wireless networks, will adjust the lighting and temperature as you enter your office, enable your car to be a node in a cooperative network that minimizes traffic jams, or allow your doctor to easily monitor your well-being as you recover from surgery. Already, sensors the size of card decks are monitoring the stability of the Golden Gate Bridge, ensuring the safe and efficient operation of factories, controlling the environment of crops, and monitoring the levels of pollutants in waterways.

UC Berkeley EECS Professor David Culler. (Photo by Peg Skorpinski)

EECS Professor David Culler with a Furby and a "mote". (Photo by Peg Skorpinski)
But wireless sensor networks, as they are called, are not only about extending the reach of computing devices. They represent a fundamental reshaping of the landscape of computing research. They have shifted the focus away from designing ever more powerful chips and toward building tiny devices requiring very little power and developing software and communication protocols that require little memory yet enable powerful networks. "It's an entirely new class of computer," says David Culler, who designed TinyOS, a widely-used, open-source operating system optimized for sensor networks.

At Berkeley, which spearheaded the development of wireless sensor networks, a large group of faculty members in EECS and nine other departments is exploring their possibilities. Kris Pister has been miniaturizing sensor nodes. EECS Professors Jan Rabaey, Ali Niknejad, and Seth Sanders are working with Paul Wright, a professor of mechanical engineering, to build nodes that feature tiny, low-power radios and scavenge energy from their environment.

Meanwhile, work continues on Culler's TinyOS and on TinyDB, a database application introduced by EECS Professors Joseph Hellerstein and Michael Franklin that enables nodes to self-organize into powerful data processing systems. These projects, and many others, come together under the umbrella of Berkeley's new Center for Information Technology Research in the Interest of Society (CITRIS), which received $100 million from the state of California and additional funding from industry and the campus.

The surge of interest in sensor networks traces back to Pister, who in 1992, inspired by the growth of wireless and low-energy microelectromechanical devices (MEMS), began toying with the idea of building networks of microrobots that could coordinate with one another. Eventually, he decided his project would have a better chance of getting funding if he "ripped the robots' arms and legs and wings off" and renamed them "Smart Dust." "I wanted to work on miniature integrated systems and Smart Dust was a way to do it," Pister says. "It was a joke—I didn't think it would catch on."

UC Berkeley EECS Professor Kris Pister. ( Photo by Peg Skorpinski)

EECS Professor Kris Pister. (Photo by Peg Skorpinski)
But catch on it did. In 1998, Pister's proposal to the Defense Advanced Research Projects Agency, suggesting that Smart Dust could be sprinkled across a battlefield to monitor enemy movements, was awarded a $1.5 million grant. Shortly thereafter, Pister and his then-student, Seth Hollar, built a prototype sensor network of ten, rather clunky "Dust motes" made from off-the-shelf components, each consisting of a sensor, a battery, and a wireless communication device.

Meanwhile, Culler, Randy Katz, and others in the Computer Science Division were working on a DARPA project on next-generation computing. When they saw Pister's Smart Dust prototype, they realized it would enable a key aspect of their vision. Soon thereafter, Culler, together with his then-students, Jason Hill, Alec Woo, and Robert Szewczyk, wrote the first version of the TinyOS operating system and transformed the prototype into the first Berkeley mote. In 1999, the researchers, following Berkeley's longstanding allegiance to the open-source model, posted the software and the hardware design on the Web.

The demand proved to be overwhelming, so Pister convinced Crossbow, a Silicon Valley company, to manufacture and sell the Berkeley-designed wireless sensor motes. Meanwhile, DARPA funded Berkeley to develop the open, experimental platform for its Network Embedded Systems Technology program, and Intel launched an open, collaborative research laboratory in Berkeley focused, in part, on wireless sensor networks. Hellerstein and Franklin, together with Intel researcher Wei Hong and graduate student Sam Madden, now at MIT, created TinyDB.

These efforts prompted a new wave of research. Now, there is a world-wide, open-source research community centered on Berkeley motes and software, composed of tens of thousands of developers in academia and industry. More than half the activity is outside the U.S., but the Bay Area is still the epicenter, with dozens of faculty start-ups, including Pister's Dust Networks, Culler's Arch Rock, and many others. "It's busting at the seams," Culler says.

Currently, Culler is working to integrate wireless sensor networks into the Internet, while Pister, now a co-director of Berkeley's Sensor and Actuator Center, has resumed his work on microrobots. But now he envisions them as armies of self-deployed Smart Dust motes that do work as well as sense their environment.

Micromanagement

TinyOS' most distinctive feature is that it is indeed tiny: it's designed to run on devices with 10-100 kilobytes of memory, a far cry from Windows. To enable sophisticated information processing on this Lilliputian scale, many computations are done locally so that only the most important information gathered by the sensors is retained and transferred.

Like router software, the TinyOS operating system is designed for moving information, and the transfer rules are local, enabling the devices to self-organize into networks. Each implementation of TinyOS, like hardware, can be optimized for a particular application: Developers choose from types of interchangeable building blocks, called modules, which have well-defined interfaces and can be plugged together. For example, there are different choices for the type of wireless link, for the sensor, for the flash storage, the battery, the data processing, and the routing. Modules can be implemented either as hardware or software, depending on the application. To ensure that newly-introduced modules are robust and interoperable, Edward Lee's group has created a developer tool called Viptos, which acts as an interface between TinyOS and Ptolemy II, Lee's simulation environment for reliably assembling embedded system components.

The traditional von Neumann machine focuses on executing a single complex computation (a thread). TinyOS, however, is event-driven, enabling motes to react nimbly to a barrage of data arriving without warning from either sensors or the network. "Instead of 'I respond when you put a quarter in,' stuff is happening all the time and the operating system is good at juggling," says Culler. TinyOS is written in a programming language called nesC, an extension of C that embodies TinyOS' structuring concepts and execution model.

While TinyOS enables fine control of individual motes, TinyDB provides a higher level of abstraction, enabling desktop applications to pose queries over the live sensor network in much the same way as over a remote database. TinyDB translates these queries into a decentralized set of tasks that run within the network: acquiring appropriate data from the environment, routing data through the network, and fusing the data along the way to synthesize answers to the queries.