BOOTHAMMER Aims to Deliver Simple "Intermittent Computing" for Energy-Harvesting Arduino Sketches
Clever tool inserts checkpoints and restoration operations, so when power is lost your program can pick up where it left off.
Researchers at the Georgia Institute of Technology have developed a tool, which inserts checkpoint and restore operations into Arm-architecture projects, with a particular focus on Arduino sketches β to make it them robust enough to run on intermittent harvested power without wasting progress.
"Battery-free devices represent a probable future for sustainable ubiquitous computing and we will need many more new devices and programmers to bring that future into reality," the researchers claim. "Yet, energy harvesting and battery-free devices that frequently fail are challenging to program. The maker movement has organically developed a considerable variety of platforms to prototype and program ubiquitous sensing and computing devices, but only a few have been modified to be usable with energy harvesting and to hide those pesky power failures that are the norm from variable energy availability."
One called out specifically is the Arduino platform, described by the researchers as "the first and most famous maker platform" yet which is among those that do not natively support energy harvesting devices and the "intermittent computing" paradigm required to make useful progress when power could come and go at any moment. It's here the team introduces its project: BOOTHAMMER, a assembly rewriter targeting Arm's Thumb architecture which adds checkpoint and restore operations β automatically saving the progress of computation at intervals to protect against power loss and restoring from the saved point when power returns, the same approach as found in Nessie Circuits' energy-harvesting-focused Riotee platform.
"The approach is easily insertable in existing toolchains and is general-purpose enough to be resilient to future platforms and devices/chipsets," the team claims. "We close the loop with the user by designing a small set of program annotations that any maker coder can use to provide extra information to this low-level tool that will significantly increase checkpoint efficiency and resolution. These optional extensions represent a way to include the user in decision-making about energy harvesting while ensuring the tool supports existing platforms."
In testing BOOTHAMMER using projects written in the Arduino IDE 2.1.1 for an Adafruit Feather M0 Express with SPI ferroelectric RAM (FRAM) breakout add-on, switching to a SparkFun Red Board for some tests, the researchers found the approach stood up well against the state of the art β and in a user study with novice and intermediate Arduino programmers found that it improved confidence in being able to develop intermittent computing applications with praise for the "simple and intuitive" CHECKPOINT and RESTORE macros.
The team's work has been published in the Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies under open-access terms.