arrow
Return

Battery-free MakeCode: Accessible Programming for Intermittent Computing

delete2022-03-29
delete2
PRE
AI
C
Christopher Kraemer *
A
Amy Guo
S
Saad Ahmed
J
Josiah Hester
DOI:10.1145/3517236delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Hands-on computing has emerged as an exciting and accessible way to learn about computing and engineering in the physical world for students and makers of all ages. Current end-to-end approaches like Microsoft MakeCode require tethered or battery-powered devices like a micro:bit, limiting usefulness and applicability, as well as abdicating responsibility for teaching sustainable practices. Unfortunately, energy harvesting computing devices are usually only programmable by experts and require significant supporting toolchains and knowledge across multiple engineering and computing disciplines to work effectively. This paper bridges the gap between sustainable computing efforts, the maker movement, and novice-focused programming environments with MakeCode-Iceberg, a set of compiler extensions to Microsoft's open-source MakeCode project. The extensions automatically and invisibly transform user code in any language supported (Blocks, JavaScript, Python)into a version that can safely and correctly execute across intermittent power failures caused by unreliable energy harvesting. Determining where, when, and what to save in a checkpoint on limited energy, time, and hardware budget is challenging. We leverage the unique intermediate representation of the MakeCode source-to-source compiler to design and deploy various checkpointing techniques. Our approach allows us to provide, for the first time, a fully web-based and toolchain-free environment to program intermittent computing devices, making battery-free operation accessible to all. We demonstrate new use cases with multiple energy harvesters, peripherals, and application domains: including a Smart Terrarium, Step Counter, and Combination Lock. MakeCode-Iceberg provides sustainable hands-on computing opportunities to a broad audience of makers and learners, democratizing access to energy harvesting and battery-free embedded systems.
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

N
Northwestern University
Scholars:
6.2W
Papers: 5.3W
Citations: 3.9K
Cited Papers

Cited Papers

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
Dynamic Task-based Intermittent Execution for Energy-harvesting Devices
err2020-02-04
err48
errOAAI
errMajid, Amjad Yousef; Delle Donne, Carlo; Maeng, Kiwan; Colin, Alexei; Yildirim, Kasim Sinan; Lucia, Brandon; Pawelczak, Przemyslaw
errShare
errSave
Co-Optimization of Energy and Reserve Capacity Considering Renewable Energy Unit with Uncertainty
err2018-10-20
err0
errOAAI
errMuhammad Wajahat Hassan; Muhammad Babar Rasheed; Nadeem Javaid; Waseem Nazar; Muhammad Akmal
errShare
errSave
researcher View more