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 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.
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 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.
If you’re building a wireless split or low-power travel board, Nordic nRF52 series controllers paired with ZMK firmware are common.
Ask yourself:
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.