In our previous post, we discussed the three-layer nested structure of the UAV control architecture. Choosing the right MCU to implement this control system is the very first critical design decision in flight controller development. While the STM32 family has become the de facto industry standard for FC development, it spans multiple generations—namely the F4, F7, and H7 series. The optimal choice depends heavily on your specific application. This article breaks down the selection criteria and the unique characteristics of each series.
Why STM32 is the Choice for Flight Controllers
The STM32 is far from the only microcontroller option on the market; developers also use chips like the ESP32, RP2040, and NXP i.MX RT. Despite this competition, the STM32 remains the de facto standard in FC development for four key reasons:
- Unrivaled Support from ArduPilot and PX4: Both major flight stacks have been developed with the STM32 as their primary target for years. Consequently, the Hardware Abstraction Layer (HAL), drivers, and bootloaders are highly optimized. If you plan to run ArduPilot on a custom FC, alternative MCUs are practically non-viable options.
- Rich Peripheral Integration: An FC requires a massive array of concurrent communication lines: SPI (for IMUs and barometers), I2C (for compasses), UART (for GNSS, telemetry, and ESC telemetry), CAN (for DroneCAN), USB, and timers (for DShot/PWM). The STM32 cleanly integrates all of these onto a single die.
- Mature HAL and Ecosystem: STMicroelectronics provides the STM32CubeHAL, Low-Layer (LL) libraries, and the STM32CubeIDE ecosystem. This means hardware reference designs and verified sample code are abundant.
- Availability and Lifecycle Longevity: STMicroelectronics focuses heavily on the industrial sector, offering a strict 10-year longevity commitment (guaranteeing chips will not be marked Not Recommended for New Designs [NRND] prematurely).
The STM32 Portfolio Overview
The STM32 is an ARM-based MCU family by STMicroelectronics. The three primary generations used in flight controllers are:
- STM32F4 (Cortex-M4): Running up to 168 MHz with a hardware Floating Point Unit (FPU). Released in 2011, it served as the core for Pixhawk 1 and 2, accumulating a massive track record. It is still widely used in mini racing and FPV drone FCs.
- STM32F7 (Cortex-M7): Running up to 216 MHz with an upgraded FPU and an enhanced DSP instruction set. Released in 2014 as the successor to the F4, it was adopted by platforms like Pixhawk 4. It maintains a similar peripheral layout to the F4 while delivering superior processing throughput.
- STM32H7 (Cortex-M7): Running up to 480 MHz (or configured as a dual-core variant like the H745/H755), equipped with an FPU and L1 cache. It is the modern standard for industrial and high-performance FCs, powering the Pixhawk 6C and Cube Orange+.
Key Selection Criteria for FC Applications
When choosing a specific MCU variant, evaluate your system against these five core pillars:
Evaluation Pillar
Critical Considerations for Flight Controllers
Computational Capacity
Determined by your control loop frequency and algorithmic complexity. Running an 8 kHz attitude loop alongside Field-Oriented Control (FOC) motor algorithms overwhelms an F4, making an F7 or H7 mandatory. Furthermore, ArduPilot’s EKF3 state estimator is computationally heavy; an F4 hits its limits around a 400 Hz loop, whereas an H7 handles it with plenty of headroom.
Peripheral Density
Dictates your sensor configuration. If your design calls for redundant IMUs (x3), dual barometers (x2), dual GNSS systems (x2), and dual CAN buses (x2), the available port count becomes an immediate bottleneck. Standard F4 variants often run out of pins, whereas most H7 packages offer ports to spare.
Memory Footprint
Essential for flight log buffering and ArduPilot’s stack size. ArduPilot runs uncomfortably tight on an F4’s 256 KB RAM. An H7 with 1 MB+ RAM and 2 MB Flash is the recommended baseline specification. Most designs complement this by adding an external SPI Flash (such as the W25Q series) for dedicated log storage.
Power Consumption
Vital for micro UAVs or long-endurance aircraft. The H7 draws significantly more current due to its high performance. For ultra-lightweight builds operating under a strict power budget, the legacy F4 may offer an architectural advantage.
Development Risk
Relying on thoroughly vetted silicon mitigates deployment risk. The STM32F405RGT has the longest track record in ArduPilot history, meaning hwdef.dat reference files are widely available. Newer H7 variants offer incredible performance but require verifying their current software maturity within the ArduPilot ecosystem.
Detailed Comparison of Key Variants
STM32F405RGT (Legacy FC Standard)
- Specs: 168 MHz | 1 MB Flash | 192 KB RAM | 3x SPI, 3x I2C, 6x UART, 2x CAN, 1x USB OTG
- Use Case: This chip has the most mature track record in open-source flight dynamics; almost every Betaflight F4 target is built around it. While it is being phased out for new industrial designs, it remains an excellent choice for cost-sensitive or legacy hardware builds.
STM32F765 / STM32F767 (The F7 Workhorse)
- Specs: 216 MHz | 2 MB Flash | 512 KB RAM
- Use Case: Thanks to the Cortex-M7 superscalar pipeline and additional DSP instructions, it delivers a 2x to 3x real-world performance bump over the F4. It powers the Pixhawk 4 and is highly stable within the ArduPilot environment.
STM32H743 / STM32H753 (Current Industrial Standard)
- Specs: 480 MHz | 2 MB Flash | 1 MB RAM | 6x SPI, 4x I2C, 8x UART, 2x FDCAN, 2x USB OTG
- Use Case: The chip of choice for modern premium platforms like the Cube Orange+ and Pixhawk 6C. It represents the primary development target for ArduPilot's H7 branch, making it the definitive "first choice" for any new custom industrial FC design today.
STM32H745 / STM32H755 (Dual-Core Asymmetric)
- Specs: Cortex-M7 (480 MHz) + Cortex-M4 (240 MHz) Asymmetric Multicore
- Use Case: In theory, you can assign ArduPilot's main high-level tasks to the M7 core while executing low-latency control loops on the M4 core. However, native dual-core utilization within open-source flight stacks is still evolving, making it a higher-risk choice for immediate commercial deployment.
Mapping Functional Requirements to STM32 Part Numbers
To make your final decision, map your drone's physical requirements to the appropriate package size and series:
- Racing / FPV Micro FCs: For minimal sensor configurations (1x IMU, 1x Baro, ~4x UARTs, 4x DShot outputs) without sensor redundancy, select the STM32F405RGT or STM32F765.
- Medium-Scale Industrial FCs: For commercial payloads requiring 2x IMUs, 2x Baros, 2x GNSS receivers, 2x CAN buses, 6x UARTs, and DShot/DroneCAN compliance, choose the STM32H743VIT. The 100-pin VI package provides the perfect balance of small size and high I/O density.
- Enterprise / Fully Redundant FCs: For heavy-lift or safety-critical platforms requiring 3x IMUs, 3x Baros, dual GNSS, dual CAN, onboard Ethernet, and high-speed blackbox logging, look toward the STM32H753 or STM32H757 (which adds advanced cryptographic security features).
Risk Management in Hardware Development
If you are developing a custom flight controller for the first time, start with a thoroughly vetted, reference-grade part number. The STM32H743VIT or STM32H743IIT are highly recommended because they share the exact same silicon family as industry standard hardware (like the Cube Orange+). This guarantees that reference hwdef.dat files, datasheet errata workarounds, and community forum solutions are readily accessible.
Choosing cutting-edge or alternative variants (like the H7A3 or H7B3) might yield slightly better standalone chip specs, but you run the risk of running into missing driver implementations. Your first step should always be checking the libraries/AP_HAL_ChibiOS/hwdef directory on the ArduPilot GitHub repository to confirm that a stable target configuration already exists for your chosen chip.
Summary
The STM32 remains the gold standard for flight controllers due to its deep integration with ArduPilot/PX4, comprehensive peripheral density, and mature software ecosystem. When choosing between the generations, view the F4 as the choice for legacy/small configurations, the F7 as a mid-tier bridge, and the H7 as the definitive modern standard. For new industrial UAV projects, we recommend basing your architecture around the STM32H743.
In our next article, FC4, we will dive deeper into the internal architecture differences within the H7 family, providing a detailed head-to-head comparison between the H743, H745, H753, and H7A3.
