Controller Boards
Minimum Controller Requirements
- Arduino support
- 32 bit processor
- At least 21 GPIO pins for:
- 3x UART: Receiver, GPS, spare/debug (6 pins)
- 1x SPI: fast IMU (4 pins)
- 1x I2C: Magnetometer, Barometer, Current sensor, slow IMU (2 pins)
- 1x IMU interrupt pin
- 8x PWM: Motor, Servo (8 pins)
Default madflight Controller Boards
Board | ESP32 DevKitC | ESP32-S3 DevKitC | Raspberry Pi Pico (W) | Raspberry Pi Pico 2 | Black Pill |
---|---|---|---|---|---|
Board Size | 55 * 28 mm | 69 * 26 mm | 51 * 21 mm | 51 * 21 mm | 53 * 21 mm |
Board Weight | 6.9 g (9.1 g with headers) |
8.4 g (10.9 g with headers) |
3.0 g | 3.0 g | 4.5 g |
Board Pins | 38 pins | 44 pins | 40 pins | 40 pins | 40 pins |
Available external GPIO pins | 21 + 4 input only + 1 button: 0 Note: strap pin restrictions |
25 + 7 external pins but used: Button: 0 OSPI: 35, 36, 37 RGB LED: 38 USB: 19, 20 Note: strap pin restrictions |
26 Internal only: Power save: 23 VBUS monitor: 24 LED: 25 VSYS voltage: 29 ADC3 |
26 Internal only: Power save: 23 VBUS monitor: 24 LED: 25 VSYS voltage: 29 ADC3 |
30 + 2 external but used: Button: PA0 LED: PC13 |
PWM | 16 (8 LEDC timers each with 2 output pins) |
8 (4 LEDC timers each with 2 output pins) |
16 (8 timers each with 2 output pins) |
24 | 25 (6 * 16bit + 2 * 32bit timers) |
Available UART | 3 | 3 | 6 (2 + 4*PIO) +USB Serial debug |
8 (2 + 6*PIO) +USB Serial debug |
3 |
Available SPI | 2 | 2 | 2 | 2 | 5 |
Available I2C | 2 | 2 | 2 | 2 | 2 |
Available ADC pins | 16 (12bit) | 20 (12bit) | 3 (12bit) | 3 (12bit) | 10 (12bit) |
On Board Peripherals | WIFI + BT + Button | WIFI + BT + Button + RGB LED | LED + WIFI/BT (W) |
LED | Button + LED (+ optional SPI flash) |
MCU | ESP32 | ESP32S3 | RP2040 | RP2350 | STM32F411CE/CC |
MCU GPIO | 34 | 45 | 30 | 30 | 32 |
Processor | 2 core LX6 240MHz | 2 core LX7 240MHz | 2 core M0+ 133MHz (overclock 266MHz) | 2 core M33 150MHz (overclock 300MHz) | 1 core M4 100MHz |
Coremark (single core) | 351 | 228 | 172 | ||
FPU | 1 core FPU | 1 core FPU | no FPU | 2 core FPU | 1 core FPU |
MFLOPS (*) | 63 | 61 | 2.0 | 78 (156 overclock) | 48 |
RAM | 320K data 132K instruction 64K cache |
320K data 128K instruction 64K cache |
264K data/instr. 16K XIP cache |
520K | 128K |
Flash | 2-16M QuadSPI | 2-16M OctalSPI | 2M QuadSPI | 4M QuadSPI | 512K internal (CE) 256K internal (CC) |
PSRAM | 0-8M | 0-8M | 0 | 0 | 0 |
Board price single piece | $4 | $5 | $4 | $5 | $3 |
(*) MFLOPS (million floating point operations per second) results with TestFLOPS program in tools folder
Other boards
Board | MCU | Specs | IO | Size | Weight | Power Consumption | Price |
---|---|---|---|---|---|---|---|
Waveshare RP2040-Zero | RP2040 | 2MB flash, RESET+BOOT button, RGB LED | 20 io + 9 via solder points | 23 * 17 mm | 1.7 gr | $3 | |
WeMos LOLIN32-Lite | ESP32 | 4MB flash, 0MB PSRAM, 2*240MHz, RESET button, lipo charger, LED | 23 io | 50 * 25 mm | 4.7 gr | $3 | |
WeMos LOLIN S3 Mini | ESP32-S3 | 4MB flash, 2MB PSRAM, 2*240MHz, RESET+BOOT button, LED | 27 io | 34 * 25 mm | 3 gr | $5 | |
WeAct STM32F405 Core Board | STM32F405RGT6 | 1MB flash, 192kB RAM, 1*168MHz, 6 UART, RESET+BOOT+USER button, LED, SDCARD | 45 io | 42 * 25 mm | $8 | ||
WeAct STM32H743 Core Board | STM32H743VIT6 | 2MB flash, 1MB RAM, 1*480MHz, 8 UART, RESET+BOOT+USER button, LED, SDCARD, 8MB SPI Flash, LCD, DVP | 77 io | 67 * 41 mm | 13.7 gr | 0.5W | $16 |
Raspberry Pi Zero | ARM11 | SDCARD, 512MB RAM, 1*1GHz, in production until at least jan 2030 | 26 io | 65 * 30 mm | 9.0 gr | 0.4W (idle) to 1.0W (100% cpu) | $9 + SDCARD |
Raspberry Pi Zero 2 W | Arm Cortex-A53 | SDCARD, 512MB RAM, 4*1GHz, WLAN, in production until at least jan 2030 | 26 io | 65 * 30 mm | 11.4 gr | 0.8W to 3.0W (idle=0.8W + 0.55W per 100% core) | $15 + SDCARD |
STM32 Flight Controllers
A list of STM32 microcontrollers used in flight controllers, in order of power, from least to most:
MCU | Clock | Flash | RAM | Flight Controller Firmware | Breakout Board Price |
---|---|---|---|---|---|
F411 | 100MHz | 512K | 128K | -BI |
$4 |
F412 | 100MHz | 512K | 256K | --- |
$5 |
F446 | 180MHz | 512K | 128K | --- |
$5 |
G473 | 170MHz | 512K | 128K | -B- |
|
G474 | 170MHz | 512K | 128K | --- |
$6 |
F722 | 216MHz | 512K | 256K | -BI |
|
F745 | 216MHz | 1M | 256K | AB- |
|
F405 | 168MHz | 1M | 128K | ABI |
$7 |
F427 | 180MHz | 2M | 256K | A-I |
|
H750 | 480MHz | 128K + 8M QSPI | 1M | --- |
$12 |
H723 | 550MHz | 1M + 8M OSPI | 564K | --- |
$13 |
H743 | 480MHz | 2M + 8M QSPI | 1M | ABI |
$15 |
H753 | 480MHz | 2M | 1M | A-- |
Flight Controller Firmware
A: ArduPilot
B: BetaFlight
I: INAV