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 GPIOs + 4 input only + 1 button: 0 Note: strap pin restrictions |
25 GPIOs + 7 external pins but used: Button: 0 OSPI: 35, 36, 37 RGB LED: 38 USB: 19, 20 Note: strap pin restrictions |
26 GPIOs Internal only: Power save: 23 VBUS monitor: 24 LED: 25 VSYS voltage: 29 ADC3 |
26 GPIOs Internal only: Power save: 23 VBUS monitor: 24 LED: 25 VSYS voltage: 29 ADC3 |
30 GPIOs + 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+ 200MHz (overclock 266MHz) | 2 core M33 150MHz (overclock 300MHz) | 1 core M4 100MHz |
| FPU | 1 core FPU | 1 core FPU | no FPU | 2 core FPU | 1 core FPU |
| Coremark (all cores) | 1000 | 1200 | 450 | 1200 | 170 |
| DMIPS (all cores) | 600 | 600 | 360 | 450 | 125 |
| 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 |
|---|---|---|---|---|---|---|---|
| WeAct RP2350B | RP2350B | 16MB flash, RESET+BOOT+KEY button, LED | 48 io | 41 * 41 mm | 6.8 gr | $5 | |
| 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 commercial flight controllers, in order of processing power, from least to most:
| MCU | Clock | Flash | RAM | Flight Controller Firmware | Breakout Board Price |
|---|---|---|---|---|---|
| F411 | 100MHz | 512K | 128K | -BIM |
$4 |
| F412 | 100MHz | 512K | 256K | ---M |
$5 |
| F446 | 180MHz | 512K | 128K | ---M |
$5 |
| G473 | 170MHz | 512K | 128K | -B-M |
|
| G474 | 170MHz | 512K | 128K | ---M |
$6 |
| F722 | 216MHz | 512K | 256K | -BIM |
|
| F745 | 216MHz | 1M | 256K | AB-M |
|
| F405 | 168MHz | 1M | 128K | ABIM |
$7 |
| F427 | 180MHz | 2M | 256K | A-IM |
|
| H750 | 480MHz | 128K + 8M QSPI | 1M | ---M |
$12 |
| H723 | 550MHz | 1M + 8M OSPI | 564K | ---M |
$13 |
| H743 | 480MHz | 2M + 8M QSPI | 1M | ABIM |
$15 |
| H753 | 480MHz | 2M | 1M | A--M |
Flight Controller Firmware
A: ArduPilot
B: BetaFlight
I: INAV
M: Madflight







