Device programming (Part IB)
Device programming is a practical course in Part IB of the Cambridge Engineering Tripos, open to students of all engineering disciplines. It teaches how two devices can reliably exchange data over a few wires, and how to program a microcontroller to control sensors and actuators, with confident use of memory, timers and interrupts and with the information in a sensor datasheet used to configure and read a device over I2C. The first version (before 2026) was built with Arm on the STM32 Nucleo board. The second version (from 2026), run with the Raspberry Pi Foundation, moves to the Raspberry Pi Pico and starts from the protocol itself: students first play at being the clock and data lines of a bus with arcade-style hardware, then bit-bang the bus on the Pico, and finally use a real sensor with a library. The two versions have their own resources, listed separately below.