Tunnel Boring Machine Firmware
The Boring Illini
I built STM32F767ZI/FreeRTOS sensor firmware for The Boring Illini and deployed it on the team’s competition tunnel-boring machine. My work covered strain and temperature acquisition, task monitoring, and Ethernet/UDP telemetry within the embedded engineering subteam.
- STM32F767ZI
- FreeRTOS
- Ethernet / UDP
- C

Keeping acquisition independent of telemetry
I integrated HX711/Wheatstone-bridge strain sensing and PT1000/MAX31865 temperature interfaces. Sampling tasks push readings into FreeRTOS queues; a separate telemetry task sends them to the host. This keeps a slow network or receiver from holding up sensor acquisition.
I also built health-monitoring tasks and a watchdog heartbeat, with task-age checks to help find stalled work and mutexes where peripherals needed shared access.
- Strain / RTD sensors
- STM32 / FreeRTOS tasks + queues
- Ethernet / UDP
- Python host receiver
Testing on the machine
I wrote Python/Bash receivers and logging tools to check packet timing, dropped packets, malformed JSON, and reconnect behavior. I ran repeated bench and integration tests before deploying the firmware, and worked on shielding, single-point grounding, and sensor-fault recovery for the machine’s vibration and electrical noise.
I collaborated with the embedded subteam on integration. The broader team built the machine and motor systems; my contribution was the sensor firmware, telemetry, monitoring, and validation tools. In the final team architecture, separate sensor and motor STM32 nodes sent data through an Ethernet switch to a host laptop.