arrow
Return

User-directed Assembly Code Transformations Enabling Efficient Batteryless Arduino Applications

delete2024-05-15
delete0
delete
OA
AI
C
Christopher Kraemer *
W
William Gelder
J
Josiah Hester
DOI:10.1145/3659590delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
The time for battery-free computing is now. Lithium mining depletes and pollutes local water supplies and dead batteries in landfills leak toxic metals into the ground[20][12]. 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. 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 (platforms like Microsoft's Makecode and AdaFruit's CircuitPython). Many platforms, especially Arduino (the first and most famous maker platform), do not support energy harvesting devices and intermittent computing. To bridge this gap and lay a strong foundation for potential new platforms for maker programming, we build a tool called BOOTHAMMER: a lightweight assembly re-writer for ARM Thumb. BOOTHAMMER analyzes and rewrites the low-level assembly to insert careful checkpoint and restore operations to enable programs to persist through power failures. The approach is easily insertable in existing toolchains and is general-purpose enough to be resilient to future platforms and devices/chipsets. 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. We conduct an extensive evaluation using various program benchmarks with Arduino as our chosen evaluation platform. We also demonstrate the usability of this approach by evaluating BOOTHAMMER with a user study and show that makers feel very confident in their ability to write intermittent computing programs using this tool. With this new tool, we enable maker hardware and software for sustainable, energy-harvesting-based computing for all.
Keywords:
Energy Harvesting
Intermittent Computing
Battery-free
Block based programming

Journal

P
Proceedings of the ACM on Interactive Mobile Wearable and Ubiquitous Technologies
IF:
4.5
Papers:
1.1K
Citations:
7.2K

Organization

U
university system of georgia
Scholars:
7.3W
Papers: 6.5W
Citations: 101
Cited Papers

Cited Papers

errShare
errSave
Building and Solving Mathematical Programming Models in Engineering and Science
err
IF0
err2011-10-28
err0
PREAI
errEnrique Castillo; Antonio J. Gonejo; Pablo Pedregal; Ricardo Garciá; Natalia Alguacil
errShare
errSave
Volatility persistence in cryptocurrency markets under structural breaks
err2020-09-01
err0
PREAI
errEmmanuel Joel Aikins Abakah; Luis Alberiko Gil-Alana; Godfrey Madigu; Fatima Romero-Rojo
errShare
errSave
Time-sensitive Intermittent Computing Meets Legacy Software
err2020-03-13
err57
errOAAI
errKortbeek, Vito; Yildirim, Kasim Sinan; Bakar, Abu; Sorber, Jacob; Hester, Josiah; Pawelczak, Przemyslaw
errShare
errSave
WARio: Efficient Code Generation for Intermittent Computing
err2022-06-09
err6
errOAAI
errKortbeek, Vito; Ghosh, Souradip; Hester, Josiah; Campanoni, Simone; Pawelczak, Przemyslaw
errShare
errSave
errShare
errSave
researcher View more