Microcontrollers
MCUs and MCU modules: minimal circuits, strapping and boot pins, clock requirements, and the supply gotchas that cause field failures.
Written and verified by John Merton · verified 2026-07-12
Microcontrollers are the programmable brains of a board: a CPU core, memory, peripherals, and GPIO on a single chip. This category covers parts you drop onto your own PCB — bare ICs like the STM32F103C8T6 and ATmega328P, and modules like the ESP32-WROOM-32 and RP2040 that bundle the MCU with flash, crystal, and antenna so you don't have to. It does not cover development boards; those are the test vehicle, not the BOM line.
The decision in this category starts with a budget: how much flash and RAM does the application actually consume, not the optimistic estimate. From there the hard constraints are supply voltage, available GPIO count after peripheral muxing, and the boot/strapping pins that must be right before the first line of firmware runs. A 3.3 V MCU on a 5 V sensor bus needs level translation; a 1.8 V core on a 3.3 V I/O bank might not need it. The gotchas page for each part covers the specific pin traps.
A secondary axis that bites later is toolchain and ecosystem: a part with excellent silicon and no maintained HAL costs more engineering time than a slightly overspec part with a mature SDK. We document what we can verify from the datasheet; toolchain quality is community experience and evolves faster than datasheet revisions.
How to choose
The axes below are the criteria you actually weigh when selecting a part in this category.
- Flash and RAM budget
- Measure actual firmware size with debug symbols on, not the optimistic estimate. An MCU that runs out of flash at 90% of the project is a board respin.
- See:STM32F103C8T6ATmega328PRP2040ESP32-WROOM-32
- Supply voltage and I/O tolerance
- A 3.3 V MCU driving 5 V logic needs level shifting on every pin that goes high. A 5 V-tolerant MCU saves those parts but typically runs slower or draws more current.
- See:ATmega328PSTM32F103C8T6ATmega32U4
- Boot and strapping pin requirements
- Every MCU has pins that must be in a specific state at reset or the chip won't boot. Getting them wrong is a board spin, not a firmware fix.
- See:ESP32-WROOM-32RP2040STM32F103C8T6
- Integrated vs external peripherals
- An ESP32 module bundles flash, crystal, and antenna. A bare STM32 needs you to add them. The module costs more per unit but saves design time and RF certification.
- See:ESP32-WROOM-32STM32F103C8T6RP2040
- Ecosystem and toolchain maturity
- Parts with a maintained HAL, debug probe support, and active community reduce firmware engineering time. A neglected SDK on great silicon can cost more than the silicon saved.
- See:RP2040STM32F103C8T6ESP32-WROOM-32
All parts in this category
- ESP32-WROOM-32Wi-Fi and Bluetooth MCU module with dual-core Xtensa LX6, 4 MB flash, and on-board PCB antenna.NRND
- ESP32-S3-WROOM-1Dual-core Wi-Fi 4 + Bluetooth 5 (LE) MCU module with Xtensa LX7 at 240 MHz, up to 16 MB flash and 16 MB PSRAM, USB OTG, and vector instructions for DSP and neural-network workloads.Active
- STM32F103C8T672 MHz Cortex-M3 MCU with 64 KB flash; the Blue Pill board chip.Active
- RP2040Dual Cortex-M0+ 133 MHz MCU with 264 KB SRAM and external QSPI flash.Active
- ATmega328P8-bit AVR MCU with 32 KB flash; Arduino Uno chip; also PDIP-28.NRND
- ATmega32U48-bit AVR MCU with 32 KB flash and native USB 2.0 full-speed device; Arduino Leonardo chip; also QFN.Active
Compare specs
Parts in this guide verified against manufacturer datasheets; latest 2026-07-12.
| MPN | Package | Lifecycle | Headline spec |
|---|---|---|---|
| ESP32-WROOM-32 | SMD module, 38-pin | NRND | Flash: 4 MB external SPI flash on module |
| ESP32-S3-WROOM-1 | 41-pin SMD module, 18.0 x 25.5 x 3.1 mm, on-board PCB antenna | Active | SoC: ESP32-S3, Xtensa dual-core 32-bit LX7, up to 240 MHz |
| STM32F103C8T6 | LQFP48, 7 × 7 mm | Active | Core/clock: Arm Cortex-M3, 72 MHz max |
| RP2040 | QFN-56, 7 × 7 mm | Active | Cores/clock: Dual Arm Cortex-M0+, up to 133 MHz (200 MHz supported at DVDD = 1.15 V) |
| ATmega328P | 32-lead TQFP (package code 32A) | NRND | Flash: 32 KB In-System Self-Programmable Flash |
| ATmega32U4 | 44-lead TQFP 10 × 10 mm (44ML) / 44-lead QFN 7 × 7 mm (44PW) | Active | Flash: 32 KB In-System Self-Programmable Flash |
All categories
Found an error? Submit a correction — we verify every correction against the manufacturer’s datasheet.