On this page
MCU Selection and Development Ecosystem
Why Selection is Necessary
You've learned about components and circuit analysis, but the first step in actual development is: Which chip to choose?
Wrong choice → Insufficient performance / Too expensive / Out of stock / Poor ecosystem → Project failure
Mainstream MCU Families
STM32 (STMicroelectronics) — The King of Industrial/General Purpose
Product Line (by Core):
STM32F0/F1: Cortex-M0/M3, Entry-level (48~72MHz)
STM32F4: Cortex-M4 + FPU + DSP, Performance (84~180MHz)
STM32F7: Cortex-M7, High Performance (216MHz+)
STM32G0/G4: Cortex-M0+/M4, Mainstream Low Power
STM32H5/H7: Cortex-M33/M7, Flagship (250MHz+)
STM32L0/L4/L5: Ultra-Low Power
STM32WB/WL: Wireless (BLE/LoRa)
STM32MP1: Cortex-A7 + M4, Linux + RTOS Dual-Core
Naming: STM32F407VGT6
F=Series 407=Model V=Package (100pin) G=Flash (1MB) T=LQFP 6=Temp Grade
Ecosystem:
Tools: STM32CubeMX (Pin config + Clock tree + Code generation)
IDE: STM32CubeIDE (Free), Keil, IAR
HAL/LL Libraries: Official drivers
OpenOCD + ST-Link Debugging
ESP32 (Espressif) — The Cost-Effective King of WiFi/BLE
Family:
ESP32 (Xtensa LX6): Dual-core 240MHz, WiFi 4 + BLE 4.2
ESP32-S3: Single-core Xtensa LX7, WiFi 4 + BLE 5, AI Acceleration
ESP32-C3: Single-core RISC-V, WiFi 4 + BLE 5, Low Power
ESP32-C6: RISC-V, WiFi 6 + BLE 5.3 + Thread/Zigbee
ESP32-S2: Single-core, WiFi only (No BLE), USB OTG
Features:
✓ Integrated WiFi + BLE → Top choice for IoT
✓ Low cost (ESP32-C3 module ~¥8)
✓ Dual ecosystem: Arduino / ESP-IDF
✗ Non-linear ADC (Don't use for precision measurement)
✗ Power consumption not as low as nRF
✗ Fewer pins (especially ESP32-C3, limited GPIO)
When to choose ESP:
- Need WiFi or BLE
- Low-cost IoT
- Rapid prototyping (Arduino ecosystem)
- Smart home / Sensor nodes
nRF52/nRF53 (Nordic) — The Benchmark for Low-Power Wireless
Family:
nRF52832: Cortex-M4F, BLE 5.0 (Classic)
nRF52840: Cortex-M4F, BLE 5.0 + Thread/Zigbee + USB
nRF52833: Reduced version of 52840 (No USB, Smaller Flash)
nRF5340: Dual-core M33 (app+network), BLE 5.4 + Thread + LE Audio
nRF52810: Entry-level BLE
Features:
✓ Extremely low power (μA level in BLE connection)
✓ Excellent RF performance
✓ Native Zephyr RTOS support
✗ Expensive (2-3x more than ESP32)
✗ No WiFi (Only BLE/Thread/Zigbee)
✗ Steep learning curve (Zephyr/nRF Connect SDK)
When to choose nRF:
- Battery-powered BLE devices (Running for months~years)
- Need Thread/Zigbee + BLE
- Strict power requirements
- Production-grade (Not just prototypes)
RP2040 (Raspberry Pi) — The Dark Horse with Dual-Core PIO
Specs:
Dual-core Cortex-M0+ @133MHz
264KB SRAM (Huge!)
No built-in Flash (External QSPI, max 16MB)
PIO (Programmable IO): 8 state machines, can simulate any protocol!
~$1 Retail Price
Features:
✓ Extremely cheap
✓ PIO is super flexible (VGA output / DVI / Custom protocols)
✓ Excellent documentation and community
✓ Large SRAM
✗ No WiFi/BLE (Needs external chip)
✗ No built-in Flash (Increases BOM)
✗ M0+ performance is average
✗ No DAC, Average ADC
When to choose RP2040:
- Need I/O flexibility (PIO simulates various protocols)
- Low cost for mass production
- Education/Teaching
- Integration with Raspberry Pi ecosystem
ATmega / ATtiny (Microchip) — The Soul of Arduino
ATmega328P: Heart of Arduino Uno, 8bit AVR @16MHz
ATmega32U4: With USB, Arduino Leonardo/Micro
ATtiny85: 8pin, Extremely small projects
Features:
✓ Arduino ecosystem (Countless libraries and tutorials)
✓ 5V tolerant (A breath of fresh air in the 3.3V era)
✓ Simple, zero threshold to start
✗ Very weak (8bit, 16MHz, 2KB RAM)
✗ Expensive (For the performance provided)
Current Positioning: Extremely simple projects / 5V systems / Teaching
Actual Projects: Mostly replaced by ESP32/STM32/RP2040
Selection Decision Tree
Recommended Development Boards
| Chip | Dev Board | Price | Debugger |
|---|---|---|---|
| STM32F4 | STM32F407G-DISC1 | ~$25 | On-board ST-Link |
| STM32F1 | Blue Pill (STM32F103C8T6) | ~$2 | Requires ST-Link |
| STM32G0 | Nucleo-G0B1RE | ~$15 | On-board ST-Link |
| ESP32 | ESP32-DevKitC / NodeMCU | ~$5 | Built-in USB-UART |
| ESP32-C3 | ESP32-C3-DevKitM-1 | ~$8 | Built-in USB-JTAG |
| nRF52840 | nRF52840-DK | ~$40 | On-board J-Link |
| nRF52840 | Seeed XIAO nRF52840 | ~$10 | Built-in |
| RP2040 | Raspberry Pi Pico | ~$4 | Requires debugger or USB drag-and-drop |
| ATmega | Arduino Uno R3 | ~$25 | Built-in bootloader |
Toolchain Quick Reference
| Chip | IDE | Debug | Flash |
|---|---|---|---|
| STM32 | STM32CubeIDE / PlatformIO | ST-Link + OpenOCD | ST-Link / DFU |
| ESP32 | PlatformIO / Arduino / ESP-IDF | Built-in USB-JTAG (C3/S3) | USB UART |
| nRF52 | VS Code + nRF Connect | J-Link / DAP-Link | J-Link / DFU |
| RP2040 | VS Code + Pico SDK | Picoprobe / USB Drag-and-Drop | USB Drag-and-Drop |
| ATmega | Arduino IDE / PlatformIO | Requires Debugger | USB Bootloader |
Recommended Learning Path
Keywords: STM32, ESP32, nRF52, RP2040, ATmega, Arduino, Cortex-M, RISC-V, Selection, Development Board