keybytes README

The project's README from github.com/notaroomba/keybytes. As one markdown file: README.md.


Keybytes

A truly modular keyboard with rearrangeable keys, magnetic cases and Bluetooth!

KiCad STM32 RISC-V Onshape Blender

Key Features • Video Demo • Connecting Keybits • PCB • Case • Credits • License

Keybytes

Video Demo

https://github.com/user-attachments/assets/19bec26d-6e01-4ee0-906e-7e69bace2f9c

Typing over USB:

https://github.com/user-attachments/assets/b6abd347-b68b-40f1-8e2d-c50744b8104e

Key Features

Connecting Keybits

Going around a keybit, the pogo pins on the N and W sides are 3.3V, SDA, GND, SCL and on the E and S sides they are SCL, GND, SDA, 3.3V. So two keybits only work together when an N or W side touches an E or S side, which gives every joint two ways a keybit can be turned and still work: the usual way, or a quarter turn so the other matching side faces its neighbour. The left and top of the keyword take an E or S side and the right takes an N or W side.

If every keybit is the same way round any shape works, like a square with the keyword in one corner. A keybit turned the wrong way gets 3.3V on its SCL and GND on its SDA, so it gets no power and nothing behind it shows up until it's turned.

Status LED:

Updating keybits: the keyword carries the keybit firmware. After updating the keyword, put every keybit on the programming pins once and wait for green. Keybits on different firmware versions don't talk to each other, so do all of them.

PCB

Designed in KiCad! There are two boards, the Keybit and the Keyword, and both are 1u (19.05mm x 19.05mm).

Keybit

A single key with a Cherry MX switch and a CH32V003. Every side has pogo pins for 3.3V, GND and I2C so it can connect to the keyword or to other keybits, and the pads on the corners are for programming.

Schematic:

Keybit Schematic

Layout:

Keybit Layout

Keyword

The main board that the keybits connect to. It is split into two PCBs that stack on top of each other. The top one has the STM32WB55RGV6, the antenna and the flash, and the bottom one has the USB-C, the charger and the buck-boost converter. The 3 pogo pins on the top are for programming the keybits.

Schematic:

Keyword Schematic

Layout:

Keyword Layout

3D View:

Keyword 3D View Keyword 3D View

Case

Custom designed cases in Onshape, the STEP files are in the cad folder.

Keybit and Keyword cases assembled in Onshape

Credits

This project uses:

You may also like...

License

MIT


notaroomba.dev  ·  GitHub @NotARoomba  · 

keybytes (notaroomba/keybytes)

bluetooth-low-energy
Searching Database…

What is this?Keybytes is an open-source modular mechanical keyboard where every key is its own tiny replaceable PCB (a Keybit) with a built-in RISC-V microcontroller, connected via pogo pins and held together by magnetic cases, with Bluetooth and USB support.
How do I actually build one?Order the Keybit and Keyword PCBs (files are in the repo, designed in KiCad) from a fab service like JLCPCB, 3D-design or cut the magnetic cases from the Onshape STEP files in the cad folder, solder on the Cherry MX switches and pogo pins, then flash each keybit over its programming pads.
What tools and parts do I need to put this together?You need KiCad to view/modify the PCB files, Onshape for the case STEP files, STM32CubeMX for the main board firmware, a PCB fab/assembly service like JLCPCB, and basic soldering skills, since the Keybit uses a CH32V003 and the Keyword a STM32WB55RGV6.
Does rearranging the keys just work out of the box?Only if each keybit is turned the right way: pogo pins on the N/W sides carry power and I2C, and if a keybit is turned the wrong way it gets 3.3V on SCL and GND on SDA, so it stays dark. Keybits also must all run the same firmware version or they won't talk to each other.
How do keybits talk to the main board and each other?They communicate over I2C through pogo pins on all four sides, wired so power, SDA and SCL only line up when a keybit is correctly oriented against its neighbour or the main Keyword board.
What does the status LED on each keybit mean?White means idle, fast white blinks mean it joined the keyword, blue flashing means it's on the programming pins, green means it's flashed and up to date, and red solid or blinking patterns flag a stuck update or a wrongly-turned keybit.
How do I update the firmware on all the keybits?The Keyword board holds the keybit firmware; after updating the Keyword, you place each keybit on its programming pins in turn and wait for the green LED, since keybits on mismatched firmware versions won't communicate.
Has the creator built other open-hardware projects like this?Yes, the README links related projects by the same author: Ember, a Bluetooth-enabled reflow hotplate; Cyberboard, a Pico-sized STM32 dev board; Trace, a PCB ruler; and Linea, an EMR tablet.
Creator
notaroomba
Size
202 MB
Stars
420
Updated
CommitNov 01
Age
10mo
Commits · 90 Days