TypeBoy Is an Ergonomic Keyboard Powered by TypePak, a Game Boy Cartridge with an nRF52
XIAO nRF52840 running ZMK for a split 58-key keyboard.
Custom computer keyboards come in all shapes and sizes. At their core, they are a matrix of switches connected in a matrix that a microcontroller scans. The TypeBoy is an ergonomic mechanical keyboard packing a unique microcontroller design. The project creator, Stu (AKA FlatFootFox), designed an nRF52 module called the TypePak to fit within a Game Boy Advance cartridge that plugs into the keyboard!
"Your eyes don't deceive you: This is a keyboard that needs a Game Boy Advance cartridge to function." — FlatFootFox
This project has multiple pieces: the keyboards and the microcontrollers. The split keyboard is called TypeBoy. Each has 29 keys wired in a matrix, meaning the complete ergonomic keyboard has 58 keys. TypeBoy does not have any intelligence. Instead, it has a socket that mates with a Game Boy Advance-style cartridge. The socket's routing makes it reversible, so a single PCB works for the keyboard's left or right half.
TypePak contains the microcontroller and looks like a Game Boy Advance cartridge. Inside is a custom PCB with a Seeed Studio's XIAO nRF52840 board. The Nordic Semiconductor nRF52840 supports Bluetooth Low Energy (BLE) and 5.0. A Sharp LS011B7DH03 Memory-In-Pixel (MIP) LCD displays status information like Bluetooth signal strength and battery life. The enclosure has enough space to accommodate an 80 mAh LiPo battery.
The XIAO's form factor has limited GPIO pins. So FlatFootFox added a 74HC595 shift register for additional IOs. The result is that TypePak's 32-pin edge connector has all of the XIAO's pins broken out and enough IOs to scan the keyboard matrix.
The TypePak runs an open source firmware for keyboards called ZMK. It is a Zephyr-based RTOS with critical keyboard features. For example, it has built-in support for low-latency BLE, split boards, macros, and much more. You can see the extensive ZMK feature list here.
While the microcontroller runs the stock ZMK firmware, moving TypePak from one keyboard to another is not a straight plug-and-play swap. If the keyboard matrix differs, you must re-flash the firmware first. Regardless, TypePak is a compact solution for adding logic to a custom keyboard design.
The boards and components needed to build one are relatively inexpensive. The KiCad design files, gerbers, and ZMK configurations are in the TypeBoy and TypePak GitHub repository. FlatFootFox has provided extensive build notes in this blog post.