- 2 microcontrollers over I2C
- 3 sensing modalities decoded
- Wi-Fi real-time remote control
Imperial’s Electronics Design Project: build a rover, from the 3D-printed frame up to the software driving it.
Embedded C++ across two microcontrollers, an AdaFruit Metro M0 as the main board plus a secondary controller, talking over I2C. Splitting it that way gave us effective multi-threading on hardware that has none: one board owns motion control while the other handles sensing and filtering, so a slow sensor read never stalls the drive loop.
State goes over a JSON protocol (ArduinoJson) across a Wi-Fi link to a pygame ground-station GUI, giving real-time driving with live telemetry.
Moves in four directions under remote control, and measures magnetic fields, decodes radio signals and decodes infrared, all inside a custom 3D-printed chassis. My first properly concurrent embedded system, and the one where a protocol shared between two independently running boards stopped being a diagram and became something that had to agree at runtime.