Device programming, version 2 (from 2026, with the Raspberry Pi Foundation)
Course site and activities of the new version, built on the Raspberry Pi Pico. After the introduction and getting started, students work through GPIO, interrupts, I2C with temperature sensors, and PWM, H-bridges and temperature control, with an assignment for each of the three modules. The aim is that students can explain the principles of wired communication between devices and program a microcontroller to control sensors and actuators. The course starts from how protocols are built, with a hands-on activity on a modular I2C bus made of plywood boxes (a bus, a controller with two buttons that pull the clock and data lines low, a listener that displays the byte on LEDs, and a target simulating four devices), before moving to bit-banging on the Pico and to a real sensor. The prototype hardware and the code examples, in C/C++ and MicroPython, are developed in the I2C_Lab repository. Perry Lewis and Alex Momoiu contributed to this version as undergraduate students.