You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marc Poulhiès 6caa42cc20
2 years ago
firmware fix race condition 2 years ago
images Images and updates of the md files 2 years ago
pcb/kicad wip: update readme, fix ERC errors 2 years ago
.gitignore first compiling firmware 2 years ago
.gitmodules change LDO, add filter on USB, move capacitors 2 years ago
LICENSE Initial commit 2 years ago Update 2 years ago


The firmware is Keyberon, a pure rust firmware.


  • 60 keys, using Cherry MX switches, only 1U keycaps;
  • USB-C connector;
  • 1 STM32F072 MCU, with hardware USB DFU bootloader and crystal less USB;
  • Only onboard SMD component (except for the switches).


  • Keyseebee for being the «I will change it quickly and have something ready in an hour» base project (even if I ended up redoing most of the hardware design).
  • Steamvan for some KiCad design ideas;
  • help-14 for making a nice list of existing keyboard;
  • Masterzen and many others for writing online tutorials for newbies like me.

Bill Of Materials

Item Package Qty Remarks Price

Compiling and flashing

Install the complete toolchain and utils:

curl -sSf | sh
rustup target add thumbv6m-none-eabi
rustup component add llvm-tools-preview
cargo install cargo-binutils
sudo apt-get install dfu-util


cd firmware
cargo objcopy --bin pouetpouet --release -- -O binary pouetpouet.bin

To flash using dfu-util, first put the board in dfu mode by pressing BOOT, pressing and releasing RESET and releasing BOOT. Then:

dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D pouetpouet.bin

The fist time, if the write fail, your flash might be protected. To unprotect:

dfu-util -d 0483:df11 -a 0 -s 0x08000000:force:unprotect -D pouetpouet.bin