Researchers at Disney Research and Carnegie Mellon University (CMU) have developed a system for finding computer bugs in small devices that scavenge their energy from their environment and are subject to intermittent power failures.
Whether these devices harvest energy from radio waves, solar energy, heat or even vibration, it’s anticipated that they all will lose power from time to time and be forced to reboot. This unpredictable power cycling can result in code execution errors rarely if ever seen in continuously powered systems, which are difficult to diagnose with conventional debugging tools.
The Disney/CMU team built a hardware and software platform that can monitor and debug these intermittent systems without interfering with the device’s energy state.
Common energy-harvesting devices range from the well-known solar-powered calculator to passive radio frequency identification (RFID) tags, which are energized when radio waves target the tags. Sensors for monitoring infrastructure or the environment increasingly scavenge energy from their environment because wired power or battery replacement isn’t practical.
“The use of energy-harvesting devices will only proliferate as increasing numbers of sensor networks are deployed and other devices such as solar-powered microsatellites are invented,” said Jessica Hodgins, vice president at Disney Research. “Creating reliable software for these devices is vital. To do that, we need tools to help us detect and correct bugs.”
Unfortunately, most existing tools provide power to the device being monitored, making it impossible to search for errors associated with intermittent power, said Alanson P. Sample, research scientist at Disney Research and head of its wireless systems group. Mixed-signal oscilloscopes can passively monitor a device’s energy level, but don’t provide any information about the internal state of its software – and are expensive.
“Our hardware-software debugging tool is the first ever to bring essential, familiar application development support to these intermittent devices,” said Brandon Lucia, assistant professor of electrical and computer engineering (ECE) at CMU. “The key to our approach is that we provide flexible debugging support without interfering with the target device’s power system.”
Two CMU ECE students and Disney lab associates – Alexei Colin, a Ph.D. student in ECE, and Graham Harvey, a senior in ECE – along with Lucia, worked with Sample to develop a debugging system that can be electrically isolated from the device that is being debugged.
The EDB system can passively monitor energy-harvesting devices for their energy level, input/output events, and program events. But it also has the capability to manipulate the amount of energy stored on the device, making it possible for an engineer to inject or remove power based on code execution, which makes it a powerful tool for finding intermittent bugs.
“We evaluated our prototype of EDB, including custom hardware, showing that it is energy-interference-free in both its passive and active tasks, and that it provides invaluable debugging information that is out of reach using existing tools and techniques,” Colin said.