1. System Architecture Overview
A modern UAV flight controller is a real-time embedded system responsible for attitude estimation, PID control loop execution, sensor fusion, and communication with peripherals. The core architecture consists of a main MCU, inertial measurement units (IMU), barometer, GNSS receiver, RC receiver interface, ESC outputs, and telemetry radio.
(SBUS/CRSF)
(SPI)
(I2C)
(UART)
PID Loop · Sensor Fusion · MAVLink
(DSHOT)
(UART/USB)
(SPI)
Computer
2. Main MCU Selection
The central processor handles time-critical flight algorithms. Key requirements are a fast FPU for floating-point PID calculations, sufficient UART/SPI/I2C peripherals, DMA support, and broad firmware ecosystem compatibility (PX4, ArduPilot, Betaflight).
| Part Number | Core | Freq. | Flash | Firmware | Best For |
|---|---|---|---|---|---|
| STM32H743 | Cortex-M7 | 480MHz | 2MB | PX4, ArduPilot | Commercial / Pro UAV |
| STM32F745 | Cortex-M7 | 216MHz | 1MB | Betaflight, PX4 | FPV / Racer |
| STM32F405 | Cortex-M4 | 168MHz | 1MB | Betaflight, KISS | FPV Legacy |
| STM32G474 | Cortex-M4 | 170MHz | 512KB | Betaflight (new) | Budget FC |
| RP2040 | Cortex-M0+×2 | 133MHz | External | Betaflight | Low-cost FC |
💡 Recommendation: For commercial/agricultural UAVs, use STM32H743 (480MHz). For FPV racing, STM32F745 or F405 provide sufficient performance at lower cost.
3. IMU (Inertial Measurement Unit)
The IMU provides gyroscope and accelerometer data for attitude estimation. Most flight controllers use dual IMUs — a primary high-performance unit and a secondary for redundancy. Both must be connected via SPI (not I2C) for the required data rates.
3.1 Recommended IMU Parts
| Part | Axes | Gyro Range | Max ODR | Interface | Notes |
|---|---|---|---|---|---|
| ICM-42688-P | 6-axis | ±2000 dps | 32kHz | SPI/I2C | Industry standard |
| BMI088 | 6-axis | ±2000 dps | 2kHz | SPI/I2C | Vibration-robust |
| ICM-20689 | 6-axis | ±2000 dps | 8kHz | SPI | Legacy, still popular |
| MPU-6000 | 6-axis | ±2000 dps | 8kHz | SPI/I2C | FPV budget choice |
3.2 IMU Placement Best Practices
- Mount IMU as close to the center of mass as possible
- Use vibration-dampening foam pads (Shore A 20–30 hardness)
- Avoid placing near high-current traces or motor cables
- Board-to-board connectors add vibration coupling — prefer soldered connections
- For dual IMU: offset slightly to detect common-mode vibration
4. Barometric Pressure Sensor
The barometer provides altitude hold capability with approximately ±0.5–1m resolution. It must be isolated from aerodynamic pressure fluctuations by a foam cover in a ported enclosure.
| Part | Altitude Resolution | Interface | Range |
|---|---|---|---|
| BMP388 | ±0.5m | SPI/I2C | 300–1250 hPa |
| MS5611 | ±10cm | SPI/I2C | 10–1200 hPa |
| DPS310 | ±0.5m | SPI/I2C | 300–1200 hPa |
5. Communication Interfaces
5.1 ESC Protocol
Modern flight controllers use digital DSHOT protocols instead of analog PWM. DSHOT600 or DSHOT1200 provide bidirectional telemetry, frame-level synchronization, and are resistant to interference.
// DSHOT600 timing reference
// Bit duration: 1.67µs (0 = 0.625µs high, 1 = 1.25µs high)
// Frame: 11-bit command + 1-bit telemetry request + 4-bit CRC
// Throttle range: 48–2047 (0-47 reserved for commands)
// Max update rate: 32kHz (with DSHOT1200)5.2 RC Receiver Protocols
- SBUS — 100k baud inverted UART, 16 channels, 14ms latency
- CRSF (Crossfire) — 416k baud UART, 16 channels, <2ms latency
- ELRS — Open-source, 100Hz–500Hz link rate, sub-1ms latency
- PPM — Legacy, single pin, higher latency
6. Open-Source Firmware Stack
Three major open-source stacks dominate the market:
- PX4 — Professional/commercial grade, UAVCAN support, full RTOS (NuttX)
- ArduPilot — Highly configurable, 10+ vehicle types, MAVLink protocol
- Betaflight — FPV-optimized, ultra-low latency, Blackbox logging
Need these components?
Browse our complete flight controller chip inventory with competitive B2B pricing.