PID Boat
A fan-driven boat that steers itself around a marked course, three laps against the clock.
2024Controls, firmware and hullReport (opens in a new tab)

Fans push air, not water, so a fan-driven hull drifts and overshoots. Holding a line takes continuous correction from real sensor feedback, not a fixed sequence of turns.
I modeled the hull in SolidWorks and printed it in PLA, with two fans for thrust and steering. ArUco markers on the deck give the boat its position and an MPU6050 IMU its heading, and on the ESP32 a PID loop in C++ turns heading error into a difference in fan speed, with telemetry over MQTT for tuning.
It passed all 12 waypoints in 6 minutes 14 seconds.