This is my first foray into custom built mechanical keyboards. I designed this as a mini project to get into pcb design and embedded code in rust
.
It has been awesome.
This board takes a lot of inspiration from the Corne and Kyria boards.
I really liked the 3 rows from the Corne, as well as the rotaries from the Kyria. I wanted a single row thumb cluster and a column stager that fitted my hands. In then end, I ended up with what is in this repo.
Before I really had much info about open source keyboards, I decided I wanted to write my own firmware in rust
. A well supported chip and board is the (WeAct MiniSTM32F4x1)[https://github.com/WeActTC/MiniSTM32F4x1] aka "the blackpill".
This board has a different footprint to a Pro Micro, which in hindsight has probably made this board very niche. I know of other blackpill boards (like the Grandiceps), but they seem limited at the moment.
The firmware is custom, written in rust
using the keyberon as a base. At the moment, it manages communication between each side, the ssd1306 displays and has code to enable media keys in a second usb HID report. The most important feature is bongo cat animated displays. Thank you to dancarrol for the inspiration.
- Install rust (see here)
- Install the compile target for the black-pills
rustup target install thumbv7em-none-eabihf
- Install binutils to create a binary file
cargo install cargo-binutils
andrustup component add llvm-tools-preview
- Build the binary
cargo objcopy --release -- -O binary out.bin
- Put the black-pill in dfu boot loader. Hold the
NRST
andBOOT0
buttons at the same time, then let go ofNRST
while still holdingBOOT0
button for a second longer. - Check you can see it with
lsusb
- Flash with dfu-util or similar
- Repeat for both sides