Similarily we can built a keyboard with just
1. Handwiring
2. Using a PCB
You wire the keyboard to a microcontroller based on a matrix style of wiring the switches.
You just have to solder the switches and microcontroller and you can have a working keyboard pretty easily
The firmware/software actually makes the keyboard a lot more extensible.
1. QMK (C)
2. ZMK (C)
3. KMK (Python)
4. Pico Ruby (Ruby)
5. Keyberon (Rust)
6. Circuitpython(Python)
https://github.com/qmk/qmk_firmware
Is the defacto firmware for keyboards. QMK supports
You have to write the keymaps and functions in C to configure the keyboard
QMK also has a web+GUI solution too called Via (closed) and Vial (Open Source) for configuration
Vial: https://vial.rocks
Via: https://caniusevia.com
Learn more about Mechanical Keyboards at
If you're more interested in Keyboards, find me somewhere here and I'll show you my keyboard collection
Find me on