{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,24]],"date-time":"2025-08-24T01:36:04Z","timestamp":1755999364882,"version":"3.44.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2024,5,13]],"date-time":"2024-05-13T00:00:00Z","timestamp":1715558400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100006374","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CNS-2145584"],"award-info":[{"award-number":["CNS-2145584"]}],"id":[{"id":"10.13039\/501100006374","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Interact. Mob. Wearable Ubiquitous Technol."],"published-print":{"date-parts":[[2024,5,13]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3659590","type":"journal-article","created":{"date-parts":[[2024,5,15]],"date-time":"2024-05-15T12:20:41Z","timestamp":1715775641000},"page":"1-32","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["User-directed Assembly Code Transformations Enabling Efficient Batteryless Arduino Applications"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2741-6124","authenticated-orcid":false,"given":"Christopher","family":"Kraemer","sequence":"first","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, Georgia, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-9607-3596","authenticated-orcid":false,"given":"William","family":"Gelder","sequence":"additional","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, Georgia, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1680-085X","authenticated-orcid":false,"given":"Josiah","family":"Hester","sequence":"additional","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, Georgia, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,5,15]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2024. https:\/\/docs.arduino.cc\/learn\/programming\/functions\/"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3316482.3326357"},{"key":"e_1_2_1_3_1","unstructured":"ARM. [n.d.]. ARM Architecture Reference Manual Thumb-2 Supplement. https:\/\/developer.arm.com\/documentation\/ddi0308\/d\/The-Thumb-Instruction-Set\/Instruction-set-encoding?lang=en"},{"key":"e_1_2_1_4_1","unstructured":"ARM. [n.d.]. ARM Architecture Reference Manual Thumb-2 Supplement. https:\/\/developer.arm.com\/documentation\/ddi0308\/d\/Thumb-Instructions\/Alphabetical-list-of-Thumb-instructions"},{"key":"e_1_2_1_5_1","unstructured":"ARM. [n.d.]. Cortex-M0+ Devices Generic User Guide. https:\/\/developer.arm.com\/documentation\/dui0662\/b\/The-Cortex-M0-Instruction-Set\/Instruction-set-summary"},{"key":"e_1_2_1_6_1","unstructured":"ARM. [n.d.]. GENERAL: Intel HEX File Format. https:\/\/developer.arm.com\/documentation\/ka003292\/latest\/"},{"key":"e_1_2_1_7_1","volume-title":"White Paper: The economics of a trillion connected devices. https:\/\/community.arm.com\/iot\/b\/internet-of-things\/posts\/white-paper-the-route-to-a-trillion-devices. [Online","author":"ARM.","year":"2021","unstructured":"ARM. 2021. White Paper: The economics of a trillion connected devices. https:\/\/community.arm.com\/iot\/b\/internet-of-things\/posts\/white-paper-the-route-to-a-trillion-devices. [Online; accessed 02-March-2021]."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1039\/D1MA00216C"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3357390.3361032"},{"key":"e_1_2_1_10_1","volume-title":"Davide Brunelli, Bashir M Al-Hashimi, Geoff V Merrett, and Luca Benini.","author":"Balsamo Domenico","year":"2016","unstructured":"Domenico Balsamo, Alex S Weddell, Anup Das, Alberto Rodriguez Arreola, Davide Brunelli, Bashir M Al-Hashimi, Geoff V Merrett, and Luca Benini. 2016. Hibernus++: a self-calibrating and adaptive system for transiently-powered embedded devices. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (2016)."},{"key":"e_1_2_1_11_1","volume-title":"Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems","author":"Balsamo Domenico","year":"2015","unstructured":"Domenico Balsamo, Alex S Weddell, Geoff V Merrett, Bashir M Al-Hashimi, Davide Brunelli, and Luca Benini. 2015. Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems. IEEE Embedded Systems Letters (2015)."},{"key":"e_1_2_1_12_1","volume-title":"Explainer: The opportunities and challenges of the lithium industry. https:\/\/dialogochino.net\/en\/extractive-industries\/38662-explainer-the-opportunities-and-challenges-of-the-lithium-industry\/","author":"Bauer Sophie","year":"2023","unstructured":"Sophie Bauer. 2023. Explainer: The opportunities and challenges of the lithium industry. https:\/\/dialogochino.net\/en\/extractive-industries\/38662-explainer-the-opportunities-and-challenges-of-the-lithium-industry\/"},{"key":"e_1_2_1_13_1","volume-title":"BBC micro:bit celebrates huge impact in first year, with 90% of students saying it helped show that anyone can code. https:\/\/www.bbc.co.uk\/mediacentre\/latestnews\/2017\/microbit-first-year. [Online","author":"BBC.","year":"2021","unstructured":"BBC. 2017. BBC micro:bit celebrates huge impact in first year, with 90% of students saying it helped show that anyone can code. https:\/\/www.bbc.co.uk\/mediacentre\/latestnews\/2017\/microbit-first-year. [Online; accessed 02-March-2021]."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3055031.3055082"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173210"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/3411839"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3299710.3211335"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3351474"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131672.3131673"},{"key":"e_1_2_1_20_1","doi-asserted-by":"crossref","unstructured":"Mitch Jacoby. 2019. It's time to get serious about recycling lithium-ion batteries. https:\/\/cen.acs.org\/materials\/energy-storage\/time-serious-recycling-lithium\/97\/i28","DOI":"10.1021\/cen-09728-cover"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341302.3342091"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3432191"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523454"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378476"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3517236"},{"key":"e_1_2_1_26_1","first-page":"1","article-title":"Intermittent learning: On-device machine learning on intermittently powered system","volume":"3","author":"Lee Seulki","year":"2019","unstructured":"Seulki Lee, Bashima Islam, Yubo Luo, and Shahriar Nirjon. 2019. Intermittent learning: On-device machine learning on intermittently powered system. Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies 3, 4 (2019), 1--30.","journal-title":"Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737978"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133920"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385998"},{"key":"e_1_2_1_30_1","unstructured":"Microchip. 2021. Low-Power 32-bit Cortex-M0+ MCU with Advanced Analog and PWM 25.6.2.3 Clock Generation - Baud-Rate Generation."},{"volume-title":"MakeCode: Hands on computing education. https:\/\/www.microsoft.com\/en-us\/makecode. [Online","year":"2021","key":"e_1_2_1_31_1","unstructured":"Microsoft. 2020. MakeCode: Hands on computing education. https:\/\/www.microsoft.com\/en-us\/makecode. [Online; accessed 02-March-2021]."},{"volume-title":"Lithium-ion batteries need to be greener and more ethical. https:\/\/www.nature.com\/articles\/d41586-021-01735-z. [Online","year":"2021","key":"e_1_2_1_32_1","unstructured":"Nature. 2021. Lithium-ion batteries need to be greener and more ethical. https:\/\/www.nature.com\/articles\/d41586-021-01735-z. [Online; accessed 16-November-2021]."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950386"},{"key":"e_1_2_1_34_1","volume-title":"A batteryless sensor ASIC for implantable bio-impedance applications","author":"Rodriguez Saul","year":"2015","unstructured":"Saul Rodriguez, Stig Ollmar, Muhammad Waqar, and Ana Rusu. 2015. A batteryless sensor ASIC for implantable bio-impedance applications. IEEE transactions on biomedical circuits and systems 10, 3 (2015), 533--544."},{"key":"e_1_2_1_35_1","unstructured":"FUJITSU SEMICONDUCTOR. [n.d.]. 4 M (512 K x 8) Bit SPI MB85RS4MT."},{"key":"e_1_2_1_36_1","unstructured":"Anselm Strauss and Juliet Corbin. 1994. Grounded theory methodology: An overview. (1994)."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.nanoen.2016.06.031"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3090090"},{"key":"e_1_2_1_39_1","unstructured":"TI. [n.d.]. MSP430FR5969. https:\/\/www.ti.com\/product\/MSP430FR5969"},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of OSDI'16:12th USENIX Symposium on Operating Systems Design and Implementation.","author":"Der Woude Joel Van","year":"2016","unstructured":"Joel Van Der Woude and Matthew Hicks. 2016. Intermittent computation without hardware support or programmer intervention. In Proceedings of OSDI'16:12th USENIX Symposium on Operating Systems Design and Implementation."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3274783.3274837"}],"container-title":["Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3659590","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3659590","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,8,22]],"date-time":"2025-08-22T17:05:23Z","timestamp":1755882323000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3659590"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,5,13]]},"references-count":41,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2024,5,13]]}},"alternative-id":["10.1145\/3659590"],"URL":"https:\/\/doi.org\/10.1145\/3659590","relation":{},"ISSN":["2474-9567"],"issn-type":[{"type":"electronic","value":"2474-9567"}],"subject":[],"published":{"date-parts":[[2024,5,13]]},"assertion":[{"value":"2024-05-15","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}