{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,8]],"date-time":"2026-03-08T02:35:23Z","timestamp":1772937323980,"version":"3.50.1"},"reference-count":64,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2022,3,29]],"date-time":"2022-03-29T00:00:00Z","timestamp":1648512000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Interact. Mob. Wearable Ubiquitous Technol."],"published-print":{"date-parts":[[2022,3,29]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3517236","type":"journal-article","created":{"date-parts":[[2022,3,29]],"date-time":"2022-03-29T13:42:46Z","timestamp":1648561366000},"page":"1-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["Battery-free MakeCode"],"prefix":"10.1145","volume":"6","author":[{"given":"Christopher","family":"Kraemer","sequence":"first","affiliation":[{"name":"Northwestern University, Evanston, Illinois"}]},{"given":"Amy","family":"Guo","sequence":"additional","affiliation":[{"name":"Northwestern University, Evanston, Illinois"}]},{"given":"Saad","family":"Ahmed","sequence":"additional","affiliation":[{"name":"Northwestern University, Evanston, Illinois"}]},{"given":"Josiah","family":"Hester","sequence":"additional","affiliation":[{"name":"Northwestern University, Evanston, Illinois"}]}],"member":"320","published-online":{"date-parts":[[2022,3,29]]},"reference":[{"key":"e_1_2_2_1_1","first-page":"2","article-title":"Energy-harvesting Wireless Sensor Networks (EH-WSNs)","volume":"14","author":"Adu-Manu Kofi Sarpong","year":"2018","unstructured":"Kofi Sarpong Adu-Manu, Nadir Adam, Cristiano Tapparello, Hoda Ayatollahi, and Wendi Heinzelman. 2018. Energy-harvesting Wireless Sensor Networks (EH-WSNs): A Review. ACM Transactions on Sensor Networks 14, 2 (July 2018), 10:1--10:50.","journal-title":"A Review. ACM Transactions on Sensor Networks"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3316482.3326357"},{"key":"e_1_2_2_3_1","volume-title":"Martina Brachmann, and Muhammad Hamad Alizai.","author":"Ahmed Saad","year":"2021","unstructured":"Saad Ahmed, Naveed Anwar Bhatti, Martina Brachmann, and Muhammad Hamad Alizai. 2021. A survey on program-state retention for transiently-powered systems. Journal of Systems Architecture (2021), 102013."},{"key":"e_1_2_2_4_1","volume-title":"https:\/\/store.arduino.cc\/usa\/arduino-uno-wifi-rev2. [Online","author":"UNO","year":"2021","unstructured":"Arduino. 2021. UNO WIFI. https:\/\/store.arduino.cc\/usa\/arduino-uno-wifi-rev2. [Online; accessed 02-March-2021]."},{"key":"e_1_2_2_5_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_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368856"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3478077"},{"key":"e_1_2_2_8_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_2_9_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_2_10_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_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2915918"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3055031.3055082"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2983995"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178372.3179525"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173210"},{"key":"e_1_2_2_16_1","unstructured":"Paul Curzon Mark Dorling Thomas Ng Cynthia Selby and John Woollard. 2014. Developing computational thinking in the classroom: a framework. (2014)."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3411839"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3299710.3211335"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131672.3131674"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131672.3131699"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3351474"},{"key":"e_1_2_2_22_1","volume-title":"Intermittently-Powered Sensors. In Proceedings of the 14th ACM Conference on Embedded Networked Sensor Systems (Nov. 1-4). ACM","author":"Hester Josiah","year":"2015","unstructured":"Josiah Hester and Lanny Sitanayah Jacob Sorber. 2015. Tragedy of the Coulombs: Federating Energy Storage for Tiny, Intermittently-Powered Sensors. In Proceedings of the 14th ACM Conference on Embedded Networked Sensor Systems (Nov. 1-4). ACM, Seoul, South Korea, 5--16."},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131672.3131673"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2903140"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080238"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3411808"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2470654.2466211"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341302.3342091"},{"key":"e_1_2_2_29_1","volume-title":"Woo Suk Lee, and Vijay Raghunathan","author":"Jayakumar Hrishikesh","year":"2015","unstructured":"Hrishikesh Jayakumar, Arnab Raha, Woo Suk Lee, and Vijay Raghunathan. 2015. Quick Recall: A HW\/SW Approach for Computing across Power Cycles in Transiently Powered Computers. ACM Journal on Emerging Technologies in Computing Systems (JETC) (2015)."},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3241815.3241879"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCOM.2015.7120024"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3274783.3274839"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3432191"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378476"},{"key":"e_1_2_2_35_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_2_36_1","volume-title":"2nd Summit on Advances in Programming Languages (SNAPL","author":"Lucia Brandon","year":"2017","unstructured":"Brandon Lucia, Vignesh Balaji, Alexei Colin, Kiwan Maeng, and Emily Ruppel. 2017. Intermittent computing: Challenges and opportunities. In 2nd Summit on Advances in Programming Languages (SNAPL 2017). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik."},{"key":"e_1_2_2_37_1","volume-title":"A simpler, safer programming and execution model for intermittent systems. ACM SIGPLAN Notices","author":"Lucia Brandon","year":"2015","unstructured":"Brandon Lucia and Benjamin Ransford. 2015. A simpler, safer programming and execution model for intermittent systems. ACM SIGPLAN Notices (2015)."},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3230543.3230566"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133920"},{"key":"e_1_2_2_40_1","volume-title":"13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)","author":"Maeng Kiwan","year":"2018","unstructured":"Kiwan Maeng and Brandon Lucia. 2018. Adaptive dynamic checkpointing for safe efficient intermittent computing. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)."},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385998"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485730.3485949"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360285"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3126594.3126658"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3242587.3242668"},{"key":"e_1_2_2_46_1","volume-title":"Meet the new BBC micro:bit. https:\/\/microbit.org\/new-microbit\/. [Online; accessed 02-March-2021].","year":"2021","unstructured":"Microbit. 2021. Meet the new BBC micro:bit. https:\/\/microbit.org\/new-microbit\/. [Online; accessed 02-March-2021]."},{"key":"e_1_2_2_47_1","volume-title":"MakeCode: Hands on computing education. https:\/\/www.microsoft.com\/en-us\/makecode. [Online","year":"2021","unstructured":"Microsoft. 2020. MakeCode: Hands on computing education. https:\/\/www.microsoft.com\/en-us\/makecode. [Online; accessed 02-March-2021]."},{"key":"e_1_2_2_48_1","volume-title":"https:\/\/maker.makecode.com\/. [Online","author":"Maker MakeCode","year":"2021","unstructured":"Microsoft. 2021. MakeCode Maker. https:\/\/maker.makecode.com\/. [Online; accessed 02-March-2021]."},{"key":"e_1_2_2_49_1","volume-title":"Lithium-ion batteries need to be greener and more ethical. https:\/\/www.nature.com\/articles\/d41586-021-01735-z. [Online","year":"2021","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_2_50_1","unstructured":"Stefanos Nikiforos C Kontomaris and K Chorianopoulos. 2013. MIT Scratch: A Powerful Tool for Improving Teaching of Programming."},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/BLOCKS.2017.8120404"},{"key":"e_1_2_2_52_1","volume-title":"Wireless energy harvesting and RF Power. https:\/\/www.powercastco.com\/. [Online","year":"2021","unstructured":"Powercast. 2021. Wireless energy harvesting and RF Power. https:\/\/www.powercastco.com\/. [Online; accessed 02-November-2021]."},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/SURV.2013.062613.00235"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/EMBC.2012.6347459"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950386"},{"key":"e_1_2_2_56_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_2_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3126594.3126618"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3090090"},{"key":"e_1_2_2_59_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_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1709886.1709927"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3089799"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378478"},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA52012.2021.00058"},{"key":"e_1_2_2_64_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\/3517236","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3517236","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,14]],"date-time":"2025-07-14T04:26:21Z","timestamp":1752467181000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3517236"}},"subtitle":["Accessible Programming for Intermittent Computing"],"short-title":[],"issued":{"date-parts":[[2022,3,29]]},"references-count":64,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2022,3,29]]}},"alternative-id":["10.1145\/3517236"],"URL":"https:\/\/doi.org\/10.1145\/3517236","relation":{},"ISSN":["2474-9567"],"issn-type":[{"value":"2474-9567","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,3,29]]},"assertion":[{"value":"2022-03-29","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}