The problem
The client required a flight controller sized and electrically compatible with their existing UAV airframe, with waypoint navigation capability not available in commercial flight controller firmware at the required price point and with the required data output format for their ground station software.
What we built
We designed a compact four-layer flight controller PCB integrating an STM32-based processor, a six-axis IMU (gyroscope and accelerometer), a barometric pressure sensor for altitude hold, and a GPS module. The board connects to four brushless motor ESCs via standard PWM outputs and to eight servo channels for control surface actuation.
Firmware implements a cascaded PID attitude controller running at 1 kHz. The outer loop reads GPS position and barometric altitude to maintain commanded flight path; the inner loop closes on IMU gyroscope data to stabilize attitude. We tuned the control gains through a series of test flights.
Waypoint navigation follows a list of GPS coordinates uploaded before flight. The radio control link provides a manual override that bypasses the autopilot instantly. Telemetry, position, altitude, attitude, battery voltage, is transmitted to the ground station at 10 Hz.
A data acquisition mode logs all sensor values and control outputs to onboard flash for post-flight analysis.
Outcome
The controller was integrated into the client's airframe and has completed multiple field test campaigns. The attitude stabilization loop maintains heading within ±1° in winds up to 8 m/s.