Making tools for technology accessible to everyone is important for diverse and inclusive innovation. Significant effort has already been made to make software innovation more accessible, and this effort has created a movement of citizen developers. These citizen developers have the drive to create, but not necessarily the technical skill to innovate with technology. Software, however, has limited impact in the real world compared to hardware and here, physical computing is democratising access to technological innovation.
Using microcontroller programming and networking, citizens can now build interactive devices and systems that respond to the real world. But building a physical computing device is riddled with complexity. Memory efficient but hard to use low-level programming languages are used to program microcontrollers, implementation efficient but hard to use wired protocols are used to compose microcontrollers and peripherals, and energy efficient but hard to configure wireless protocols are used to network devices to each other and to the Internet. This consistent trade off between efficiency and ease of use means that physical computing is inaccessible to some.
This thesis seeks to democratise microcontroller programming and networking in order to make physical computing accessible to all. It provides a deep exploration of three areas fundamental to physical computing: programming, hardware composition, and wireless networking, drawing parallels with consumer technologies throughout. Based upon these parallels, it presents requirements for each area that may lead to a more intuitive physical computing experience. It uses these requirements to compare existing work in the space and concludes that no existing technology correctly strikes the balance between efficient operation for microcontrollers and intuitive experiences for citizen developers. It therefore goes onto describe and evaluate three new technologies designed to make physical computing accessible to everyone.