in_progress
fixed-wing-drone / build.log
My friend and I are building a fully autonomous fixed-wing drone from scratch: both the aircraft itself and all the software that will eventually let it fly on its own. The plane runs an ESP32-S3 alongside the standard RC receiver, giving it an onboard brain capable of taking over from the pilot and executing autonomous flight. Right now it's bench and ground-tested only: RC pass-through, the IMU/GPS drivers, and the PID control loops all work against live sensor data, but the aircraft itself is still being built, so it hasn't flown yet.
hardware: ESP32-S3, custom carrier PCB in KiCad: connectors for IMU, GPS, 6 servo outputs, primary/secondary ESC, RC input, and UBEC power inputs with reverse-polarity protection
software: C/C++, ESP-IDF v5.5, hand-written RC capture/output via MCPWM, ICM-20948 IMU driver + Madgwick AHRS fusion, hand-written NMEA GPS parser
- PID attitude control (roll/pitch) plus a cascaded heading/waypoint-following loop, both validated against the exact same PID and GPS-math source the firmware runs, through a pair of host-side SITL simulators before ever touching the plane.
- An 80-scenario regression suite (clean step responses, noise-robustness sweeps, and waypoint-mission edge cases) runs against the current firmware gains to catch regressions.
- If the RC link goes stale for 200ms, control fails over to the autonomous loop instead of holding the last stick input: treating a lost link as more dangerous than handing off to the flight controller.
- Next milestones: stable autonomous level flight, altitude hold, and autonomous takeoff/landing, with coordinated formation flight alongside a second drone as a longer-term goal.