Skip to content

Latest commit

 

History

History
35 lines (18 loc) · 4.65 KB

README.md

File metadata and controls

35 lines (18 loc) · 4.65 KB

The TypeBoy & TypePak

The TypeBoy & TypePak Laying Next To Several GBA Cartridges.

The TypeBoy is a fairly standard split ergonomic keyboard with a very non-standard microcontroller setup. Your eyes don't deceive you: This is a keyboard that needs a Game Boy Advance cartridge to function.

More specifically, it needs a TypePak! I've been spending a lot of time in the Ergogen keyboard layout generator lately, and I recently finished building a Sanni Open Source Cartridge Reader. These two worlds collided in my head and it dawned on me that a keyboard's microcontroller stack could probably fit in the shell of a Game Boy cartridge. A bit of tinkering in KiCAD later, and suddenly this monstrosity the TypePak was born.

The TypePak, a microcontroller and black and white display inside of a Game Boy Advance cartridge.

The TypePak is a keyboard daughterboard with a XIAO nRF52840 Bluetooth microcontroller, a SN74HC595DT shift register, a LS011B7DH03 Sharp Memory Display, and a 401020 lipo battery designed to be housed inside of a standard Game Boy Advance cartridge. Every pin is broken out in case you find some novel use for SPI, or chose not to use the screen. The battery trace and reset pins are also broken out so that you can put a power and reset switch on the main keyboard. You'll need to use a tool similar to a Dremel in order to cut a USB-C port in the side of the cartridge shell.

The TypeBoy, a keyboard with a cartridge slot.

The TypeBoy is a typical split keyboard with a 6x4+5 column staggered layout. The big difference being that it has a 32 pin slot for the Game Boy Advance cartridge. The connector appears on both sides of the board, with traces and vias making the connector pinout reversible. The other notable feature is a SLLB510100 thumb switch.

The ZMK wireless keyboard firmware configuration for this board is relatively standard. The software doesn't have any clue that it's being housed on an odd removable cartridge. Items to note are the LS011B7DH03 display using ZMK's built in Display support instead of the Nice!View wrapper one may be more familiar with, 74HC595 shift register support to add additional column output pins, and a composite key scan driver for using both a traditional keyboard matrix and direct pin reading for the thumb wheel.

Acknowledgements

The TypeBoy isn't the first mechanical keyboard which takes microcontroller cartridges. mujimanic's Giga40 keyboard design and it's Famicom cartridges helped prove a low-profile Game Boy-centric version of this idea was worth pursuing.

The TypePak's display connector circuit is based off of karnadii's Sharp Memory Display breakout board design. The TypePak's PCB is based off of templates from djedditt's kicad-gamepaks library. The Game Boy cartridge slot KiCAD footprint was used from Martin Refseth's Game Boy KiCad Library.

As usual, thanks to the Absolem Club Discord and their #Ergogen channel for answering my endless onslaught of questions. Particularly special thanks to Pete Johanson for assisting with some ZMK troubleshooting when the low profile rotary encoders were giving me trouble. The ZMK firmware is heavily influenced by previous configs by GEIST, Pete Johanson, and JonMuller.

This keyboard is another derivative of Josef Adamčík's original Sofle Keyboard layout. I need to start experimenting with other layouts at this point, but it's hard to beat that thumb cluster.

Finally, another shout out to GEIST, Freya, Bubbleology for their work on the TOTEM keyboard's case. It was a big inspiration for this build, and they pulled the concept off way better than I did.