Which Controllers Are Compatible With Qmk Firmware?
Common controllers for keyboard building 2021
Inexpensive controllers are 1 main factor in making keyboard building accessible and affordable for people. From this aspect, a Chinese Pro Micro from Aliexpress is hard to beat with its price tag of virtually
3$
$v. However, on larger keyboards you may run out of the available pins and you have to consider other controllers.
Hither is a list of the most mutual controllers used by keyboard builders (whorl for caption and details):
Name | Pins | Price | Ali | MCU | Mem | Avail. | RAM | ROM | Desc. |
---|---|---|---|---|---|---|---|---|---|
Pro Micro | xviii(+2) | twenty$ | three$ | Atmega32U4 | 32K | 28K | 2.5K | 1K | |
Puchi-C | 23? | €17 | – | Atmega32U4 | 32K | 28K | 2.5K | 1K | |
Teensy two | 25 | 9$ | 7.five$ | Atmega32U4 | 32K | 28K | 2.5K | 1K | 30×18 |
Teensy 2.0++ | 46 | 24$ | 7$ | Atmel90USB1286 | 128K | 120K | 8K | 4K | 51×18 |
Raspberry Pi Pico | 26 | 4$ | – | RP2040 (dual-core Arm Cortex-M0+) | 256K | ?Grand | ?K | ?K | ? |
Adafruit KB2040 Keeboar | 18+2 | nine$ | – | RP2040 (dual-core Arm Cortex-M0+) | 256K | ?M | ?K | ?K | ? |
RP2040-Zero | 20+9 | $v | $11 | RP2040 (dual-cadre Arm Cortex-M0+) | 256K | ?K | ?1000 | ?K | ? |
Proton C | 23+ane | 18$ | – | STM32F303CCT6 | 256K | 248K | 40K | 4K | 3.3V! |
Aristocracy C | 24 | 18$ | – | Atmega32U4 | 32K | 28K | ii.5K | 1K | |
C Pro Micro | ? | ? | – | Atmega32U4 | 32K | 28K | 2.5K | 1K | |
nice!nano | 25 | 25$ | – | nRF52840 | 256K | 1M | ? | wireless with charging option, 3.3V | |
ShiroMicro | ? | ? | – | Atmega32U4 | 32K | 28K | ii.5K | 1K | Mid-mount USB-C |
Arduino Nano | 14 22? | 15$ | 2$ | Atmega328P | 32K | 28K | 2K | 1K | 45×18 – just for reference |
Goldfish | 23 | – | – | Atmega32U4 | 32K | 28K | 2.5K | 1K |
“Controller”
The term “controller” is used quite ambiguously in keyboard building. Both
microcontrollers
and
evolution boards
are referred to by this proper noun.
Microcontroller
The microcontroller is the cardinal chemical element of your circuit. The brain of your project, a really fascinating little thing.
A microcontroller is similar a computer on its own with integrated CPU, memory and storage space all in a tiny socket (7x7mm). It runs the
firmware
(your program) to find keypresses.
The nigh popular microcontrollers for keyboard projects present are the
Atmega32U4
and the
RP2040.
The
Atmega32U4
was the get-go popular ane offering integrated USB connectivity. An electronic project can be recognized as an bodily keyboard by your Bone without the need for an external USB interface to program it.
The
RP2040
is a very affordable chip. It’s quite an overkill for a keyboard but it’s able to run
CircuitPython and KMK
(eastward.m.
you lot can set it up in like two minutes).
Other microcontrollers are also available, but their features (higher frequency, larger memory, more pins) are more often than not
overkill
for a small keyboard project.
Development lath (too “controller”)
Development boards brand programming the microcontroller and access of I/O pins very easy.
Colloquially known as “controllers”, they are microcontrollers put on a pocket-size slice of PCB surrounded by all the necessary stuff (USB connector, voltage regulator, clock crystal, status LEDs, resistors, capacitors etc.) to be able to piece of work and communicate with information technology right out of the box.
There are several development boards for keyboard building with
Pro Micro
being the cheapest ($3) and probably well-nigh popular. For years, the Teensy family was your option when you ran out of the pins of a Pro Micro (Pro Micro vs. Teensy).
More expensive development boards (east.m. Elite-C, Proton C) differ mostly in the connector blazon (USB micro vs. USB-C) and the number of pins.
However, early 2021, a new contender entered the stage: the Raspberry Pi Pico board and the RP2040 microcontroller, plus the
Sparkfun
and
Adafruit boards
using the same
RP2040 bit.
The RP2040 is cheap, feature-rich and style more powerful than an Atmega32U4. At start sight it may seem an overkill for a keyboard project. Nevertheless, combined with CircuitPython and KMK firmware, information technology allows a different workflow for people regularly updating their keymaps.
The Pico lacks QMK support at the moment.
Pins
The number of easily accessible GPIO pins is probably the about crucial property of a controller/evolution lath in a custom keyboard project.
The number of pins defines the
maximal number of keys
in the keyboard matrix. While the Atmel32U4 has 26 I/O pins, merely 18 of those are hands accessible on Pro Micro.
To build
larger keyboards
you may demand to
hack the Pro Micro
or choose some other development board with more than pins.
Pinout
A pinout is a map of pin names and functions.
Pins are referenced by names (eg. A2, E5) in your firmware lawmaking, in documentations and data sheets.
Confusingly, pin names of the microcontroller and markings on the development board’s PCB may differ. Fortunately, nice pinouts are there to help.
Here is a
Atmel32U4 pinout
with pin names.
Trends & History
2019-2020
Diverse kits and builds appeared with
exposed through-pigsty components
featuring the good old
Atmega328P. Because of the lack of integrated USB support, these projects utilize
5-USB
and
USBaspLoader
to integrate the USB interface part in the bootloader.
2021
Raspberry entered the microcontroller scene with their
RP2040
and the Pi Pico board. Several boards followed (by Sparkfun and Adafruit) featuring this bit.
Open source development boards
Pro Micro
C Pro Micro
An
USB-C Pro Micro version
available at
booth.pm.
Goldfish
Some other Pro Micro pinout compatible board with mid-mounted USB C, this time past Dr_Derivative:
geekhack thread
and
GitHub repo.
23 IO pins, sturdy through-hole USB C connector, Pro Micro compatible pin footprint.
nRFMicro
Added Li-Po charger, USB Type-C and a physical ON/OFF switch.
GitHub repo
ShiroMicro
ShiroMicro
is a ProMicro clone with Mid-Mount USB Type-C connector by /u/elfmimi.
Moving picture:
https://imgur.com/a/7PU1Kje
Other alternatives:https://github.com/joric/nrfmicro/wiki/Alternatives
Alvaro
Pro Micro-uniform 32u4 Breakout Board. A heavily-modified Goldfish Rev. C. While the schematic, basic layout, pinout is essentially the aforementioned, information technology uses 0603 components instead of 0402 and has another changes.
https://geekhack.org/alphabetize.php?topic=109111.0