First autonomous hover
The drone holds position using only onboard sensing. No external tracking, no GPS — just IMU and optical flow.

Chapters
- What the autonomy stack does
- Hardware overview
- State estimation in flight
- The hover test
- What broke and what held
Parts
- F4 flight controller (STM32F405)
- PMW3901 optical flow sensor
- BMI270 IMU
- 5-inch quadrotor frame
What I got wrong
The first flight attempt used a PID tuning derived from a linearized model of the airframe. The roll rate was badly underdamped — the drone oscillated for about three seconds before the safety cutoff triggered. The gains had to be reduced by roughly half before the first stable hover. The linearized model is a fine starting point for attitude control, but the actual airframe has more drag than the model assumed.
The first test of the full autonomy stack in flight. The drone takes off, holds a fixed position using only its onboard IMU and optical flow sensor, and lands on command. No external motion capture, no GPS.
The hover is not perfect — there is visible drift over a few seconds, especially on surfaces with poor texture — but the state estimator keeps the position error bounded. The control loop runs at a rate that keeps attitude corrections tight even when the position estimate is uncertain.