Awesome
KeySeeBee
KeySeeBee is a split ergo keyboard. It is only 2 PCB (so the name) with (almost) only SMD components on it. It's only a keyboard, no LED, no display, nothing more than keys and USB.
The firmware is Keyberon, a pure rust firmware.
Features
- 44 keys, using Cherry MX or Kailh choc switches, only 1U keycaps.
- USB-C connector on the 2 sides.
- TRRS cable for connecting the 2 halves (for power and UART communication between the 2 halves).
- 2 STM32F072 MCU, with hardware USB DFU bootloader and crystal less USB;
- Only onboard SMD component (except for the switches and TRRS connector).
- Plate files (optional).
Inspiration
- Plaid for "show the components"
- GergoPlex for "just a keyboard" and "only a PCB with SMD components"
- Lily58 for the thumb cluster
- Kyria for "don't be affraid of pinky stagger"
Gallery
v0.1, build by TeXitoi
v0.1, build by TeXitoi, Gateron silent clear (MX footprint), 3D printed plate
v0.2, build by eropleco, with 1.2mm anodized aluminium plate
v0.3, build by TeXitoi, Gateron silent clear, 3D printed fat plate
Bill Of Materials
Price is for 5 keyboards including shipping.
Item | Package | Qty | Remarks | Price |
---|---|---|---|---|
Left PCB | 1 | Ordered at JLCPCB | ||
Right PCB | 1 | Ordered at JLCPCB | 33.14€ | |
USB-C connector | 16 pins | 2 | 1.44€ | |
1N4148WS | SOD-323 | 44 | Price is for 1000 | 2.82€ |
PJ320A TRRS connector | 2 | 1.01€ | ||
STM32F072CBT6 MCU | LQFP-48 | 2 | STM32F072C8T6 would also work | 9.65€ |
XC6206P332MR regulator | SOT-23 | 2 | Price is for 50 | 1.93€ |
SMD switch | 3×6mm | 4 | Price is for 100 | 1.35€ |
5.1kΩ resistor | 0805 | 6 | Price is for 100 | |
1µF capacitor | 0805 | 4 | Price is for 100 | |
100nF capacitor | 0805 | 10 | Price is for 100 | 3.46€ |
Bumpers | 5×2mm | 10 | Price is for 100 | 1.75€ |
Cherry MX compatible or Kailh Choc switch | 5 pins (PCB mount) | 44 | ||
1U keycap compatible with the chosen switches | 44 | |||
TRRS cable | Jack 3.5mm | 1 | 4 contacts needed | |
USB-C cable | 1 | USB-2 is enough |
About 60€ without switches, keycaps and cables for 5 keyboards (12€/keyboard).
Compiling and flashing
Install the complete toolchain and utils:
curl https://sh.rustup.rs -sSf | sh
rustup target add thumbv6m-none-eabi
rustup component add llvm-tools-preview
cargo install cargo-binutils
sudo apt-get install dfu-util
Compile:
cd firmware
cargo objcopy --bin keyseebee --release -- -O binary keyseebee.bin
To flash using dfu-util, launch it with:
dfu-util -w -d 0483:df11 -a 0 -s 0x08000000:leave -D keyseebee.bin
Then, put the board in dfu mode by pressing BOOT, pressing and releasing RESET and releasing BOOT. The upload should began as soon as the computer detect the board in dfu mode.
The first time, if the write fail, your flash might be protected. To unprotect:
dfu-util -d 0483:df11 -a 0 -s 0x08000000:force:unprotect -D keyseebee.bin
Ideally both sides needs to be flashed, but for changes that only affect the layout it's strictly not needed as the side connected with the USB cable will determine the layout. In fact, you can have different layouts stored on each half, meaning you can switch back and forth between two layouts by moving the USB cable between the two halves.
What's the layout
Here is the empty keyboard-layout-editor describing the layout.
I use the ergol layout, so this is the main layer when I type.
The layer 1 is activated by holding space
.
The layer 2 is activated by holding Layer 2
.
The layer 3
is activaded by holding space
then Layer 2
.