Skip to main content

Flight Controller (FC)

🟢 Start — zero knowledge, plain words. 🟡 Hands-on — building or buying, specifics and tradeoffs. 🔴 Specialist — the physics and math behind it.

🟢 Start. The flight controller is the brain: a small board with a microprocessor and a gyroscope that checks how the drone is rotating thousands of times per second, compares that with what the sticks command, and corrects each motor's speed. Without it a quad is physically unflyable — it's the electronics, not the pilot, that keeps it airborne from one millisecond to the next. Together with the ESC it forms the "stack" — a tower bolted on standoffs at the frame's center.

🟡 Hands-on. The processors are the STM32 family: F405 (budget), F722 (the standard), H743 (headroom and ports — the pick for GPS and INAV/ArduPilot). Count UART ports before buying: receiver + GPS + digital video + spare ≥ 4. The gyro sits on an SPI bus; when shopping, also check blackbox memory (flight logs) and the onboard BEC voltages (5 V for receiver and GPS, 9–10 V for a digital VTX). Firmware: Betaflight (acro/freestyle), INAV (navigation), ArduPilot (full autonomy). Mount the FC on rubber grommets — the gyro must not "hear" every frame vibration.

🔴 Specialist. The heart of the firmware is a rate-control loop running 4–8 thousand times per second:

u(t)=Kpe(t)+Ki ⁣0tedτ+Kddedt,e=ωsetpointωgyrou(t) = K_p e(t) + K_i\!\int_0^t e\,d\tau + K_d\frac{de}{dt},\qquad e = \omega_{setpoint} - \omega_{gyro}

P is the spring (too much → oscillation), I is the memory that removes steady offset (wind), D is the damper (too much → amplifies noise and heats motors). In front of the PID sits a filter pipeline (lowpass, notch, RPM filter) — every filter removes noise but adds phase delay, and delay eats stability: that's the central tradeoff of tuning. A gyro sampled at 8 kHz represents vibration only up to the 4 kHz Nyquist frequency — anything faster aliases into a fake signal the loop will chase.

🖼️ Photos: your own FC macro with labelled parts (MCU, gyro, UART pads); the block diagram above covers the rest.