Common Keyboard Controllers and MCUs
While there are many microcontrollers on the market, the custom keyboard community has largely standardized around a few key models. These chips offer a good balance of processing power, memory, number of I/O pins, and, crucially, strong community support and compatibility with popular firmware.
When you buy a PCB, it will almost certainly feature one of the following controllers. Understanding the differences will help you make informed decisions about compatibility and features.
The Classic: ATmega32U4
The ATmega32U4 is the undisputed classic of the keyboard world. It's an 8-bit AVR microcontroller from Microchip (formerly Atmel) and it's the heart of the ubiquitous Pro Micro development board, which is a staple of handwired and split keyboard builds.
- Why it's popular: It was one of the first widely available and affordable MCUs with native USB support, which made it perfect for keyboards. It has just enough memory and I/O pins to run a standard keyboard with several layers and basic features. The vast amount of documentation and community knowledge surrounding it makes it a reliable choice for DIY projects.
- Firmware: It's the original and primary target for QMK firmware. Almost any QMK feature will work on it, provided you have the memory.
- Limitations: Its biggest drawback is its limited memory (32KB of flash memory, 2.5KB of RAM). On modern keyboards with large feature sets like extensive RGB animations, OLED screens, encoders, and multiple layers, the ATmega32U4 can quickly run out of space. Compiling firmware for it often requires carefully disabling unused features to make the final file small enough to fit. This has led the community to adopt more powerful alternatives for feature-rich boards.
The Modern Standard: ARM Cortex-M Processors
As keyboards became more complex, the community needed more power. The answer was found in ARM Cortex-M processors. These are 32-bit MCUs that are significantly more powerful and have much more memory than the old 8-bit AVRs.
The most common family of ARM chips found in keyboards is the STM32 series from STMicroelectronics (e.g., STM32F103, STM32F303, STM32F401).
-
Why they're popular: They offer a massive upgrade in performance and memory (often 64KB, 128KB, or more of flash, and significantly more RAM), allowing for all the complex features you could want without compromise. You can enable full RGB lighting, OLED screens, and complex macros without worrying about hitting a memory limit. They are the standard for most mid-range to high-end pre-built and kit keyboards today.
-
Firmware: They are well-supported by QMK and are the foundation for graphical configurators like VIA and VIAL, which require the extra memory and processing power to function.
-
Trade-offs: STM32 chips became harder to source during supply crunches; many designers added RP2040 variants as drop-in alternatives. Bootloaders may differ (DFU, HID, UF2), affecting flashing workflows.
The Newcomer: Raspberry Pi RP2040
The newest major player on the scene is the RP2040, the first microcontroller designed by the Raspberry Pi Foundation. It's a powerful, low-cost, dual-core ARM Cortex-M0+ processor.
-
Why it's popular: It's very powerful for its price, offering two cores and a large amount of RAM (264KB). Its most unique feature is the PIO (Programmable I/O), which allows for the creation of custom hardware interfaces in software. This offers great flexibility for things like implementing custom RGB LED protocols or other unique hardware features. It's quickly being adopted by many new PCB designs, especially in the DIY and enthusiast space.
-
Firmware: It has excellent and growing support in QMK, as well as other firmware projects like CircuitPython, which makes it very accessible for beginners.
-
Considerations: RP2040 boards often expose UF2 bootloaders for drag-and-drop flashing, which is beginner-friendly. The PIO feature can offload LED timing, improving smoothness for heavy RGB effects.
Wireless Options: nRF52 and Friends
If you’re building a wireless split or low-power travel board, Nordic nRF52 series controllers paired with ZMK firmware are common.
- Pros: Low power consumption, Bluetooth LE support, mature ZMK ecosystem for splits and per-key combos.
- Cons: Different build toolchain and feature set compared to QMK; some advanced QMK features may not exist or work differently.
Choosing the Right Controller
Ask yourself:
- Do you need heavy RGB, OLEDs, encoders, or haptics? Prefer STM32 or RP2040 for headroom.
- Are you cost-sensitive but want modern features? RP2040 balances power and price.
- Building a basic wired board without flashy extras? ATmega32U4 still works and has vast documentation.
- Going wireless or split? Consider nRF52 with ZMK, or dual-processor designs.
Flashing and Development Experience
- Tooling: QMK supports many bootloaders—Caterina (Pro Micro), DFU (STM32), and UF2 (RP2040). Each has different key combos to enter bootloader mode.
- Debugging: ARM platforms often support SWD debugging; RP2040 has on-chip debugging capabilities that help during development.
The choice of controller determines the ultimate capabilities of your keyboard. While an ATmega32U4 is fine for a simple, non-backlit build, a modern ARM chip like an STM32 or RP2040 is essential for a feature-rich experience.
Next, we'll discuss how to get your keymap onto these chips in Firmware and Flashing.