← Self-balancing robot
The IMU was the problem, not the tuning
Four rewrites of the PID gains, and the actual fault was a sample rate mismatch.
Placeholder content — replace before launch.
The IMU reported at 100 Hz. The loop ran at 250 Hz. So a third of every cycle acted on a reading it had already used.