Scratchable Devices: User-Friendly Programming for Household Appliances

Although household devices and home appliances function more and more as network-connected computers, they don't provide programming interfaces for the average user. We first identify the programming primitives and control structures necessary for the universal programming of devices. We then propose a mapping between the features necessary for the programming of devices and the existing functionality of Scratch, an educational programming language we use as a basic interface between the devices and the users. Using this modified version of the Scratch language, we demonstrate usage cases in which novice programmers can program appliances, increasing their functionality and ability to be customized. We also show how standardizing this programming paradigm can facilitate knowledge transfer to new devices. We conclude by discussing our experiences prototyping programmable appliances.