No Batteries! šŸ˜„

Interactive, Programmable Battery-free Devices

For a summary and broad perspective of our work that is less technical, please read our feature in the ACM XRDS Student Magazine titled “Batteries Not Included”

We are quickly heading towards a trillion device Internet-of-Things (IoT), buffered by self-fulfilling prophecies and promises from industry leaders like ARM, Intel, and NVIDIA, and pushed forward by the march towards automation of numerous industries. This explosion of devices have led many to explore alternative designs that reduce the ecological footprint, the electronic waste, caused by disposable and fast obsolescing computing devices. Battery-free devices that harvest energy from sunlight, thermal gradients, and RF sources have risen as a popular alternative in the research (and now consumer) realms to mitigate the consequences of a trillion battery powered devices that need constant charging and replacement. This emergence of battery-free mobile computing has sparked new approaches to computing and radical systems, like a battery-free cell phone, battery-free Nintendo Game Boy developed in our lab, and novel programming, runtime, and architecture level techniques to provide reliable computation and sensing despite the volatility of energy harvesting and in many cases frequent power failures.

The large majority of these battery-free systems are passive, or invisible. They are used for large scale sensing of infrastructure, farms, or in places where long term sensing is needed with minimal human involvement, like monitoring fragile relics of antiquity Sometimes they are even shot into low earth orbit. These passive devices are not the limit of what battery-free and energy harvesting devices can accomplish. Indeed, of the trillions of future devices in this battery-free IoT, many 100s of millions may be interactive, for example labels on food items that react and change to user presence or handling, engaging and wire free museum displays for children, to every day items like toys, game consoles, smart watches, coffee mugs, and pill bottles.

Our ongoing research explores new ways to build these devices, starting with the worlds first battery-free Nintendo Game Boy.

We built the Battery-free Game Boy as an exploration in computer systems meets interaction to focus on this ignored part of the battery-free device ecosystem [UbiCompā€™20b]. We explored how reactive and user-centric applications,Ā mobile gamingĀ in particular, can be battery-free. We designed a Nintendo Game Boy emulator which could work despite power failures, using a differential checkpointing technique to reduce the size of a checkpoint so that users could play without latency. We also developed from scratch the hardware, the emulator is powered from gaming actions (button presses) and from ambient solar energy and store this energy in a small capacitor. Our system can read and run unmodified Nintendo Game Boy cartridges. The Game Boy is multiple things: (1) a design provocation to inspire radical approaches to climate change, (2) an exploration of the effect of power failures on human joy in gaming, (3) a systems research engineering challenge in checkpointing screen buffers and virtualized hardware.

Everyone can Program Battery-free Devices

The Game Boy represents a bespoke approach to interesting sustainable computational things. But how can we make sure everyone can program these devices? The batteryless sensing toolchain has matured to the point that we have simulation, emulation, and some debugging tools. However, the cognitive burden of designing and testing applications that effectively handle intermittent power is still high. Programming approaches described in the previous section are all done in C and require deep knowledge of embedded systems. With the high ecologic cost of equipping the next trillion embedded devices with batteries, it is critical to equip the makers, hobbyists, and novice embedded systems programmers with easy-to-use tools supporting battery-free energy harvesting application development. This way, makers can create untethered embedded systems that are not plugged into the wall, the desktop, or even a battery. A new line of work has focused on retrofitting existing wide spread maker, and novice focused programming environments to work with intermittent power failures. BFree at UbiCompā€™21 is an end-to-end system that allows even novice Python programmers to prototype and deploy battery-free systems (shown in Fig. 3). Developers write Python code just like that is run on a custom hardware platform. We instrumented the most popular Python runtime for embedded systems, CircuitPython, with a checkpointing system that allows for fast recovery after a power failure. CircuitPython is supported by AdaFruit, one of the major players in the maker movement. Free was highlighted by AdaFruit and has received significant attention by the community.

Related