https://github.com/crolbar/yuki
my keyboard
https://github.com/crolbar/yuki
ergonomic-keyboard firmware keeb keyberon keyboard keyboard-firmware rust split-keyboard stm32 stm32f401 usb yuki
Last synced: 5 months ago
JSON representation
my keyboard
- Host: GitHub
- URL: https://github.com/crolbar/yuki
- Owner: crolbar
- License: gpl-3.0
- Created: 2024-04-07T12:06:36.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-27T20:15:08.000Z (11 months ago)
- Last Synced: 2025-04-04T08:51:16.548Z (11 months ago)
- Topics: ergonomic-keyboard, firmware, keeb, keyberon, keyboard, keyboard-firmware, rust, split-keyboard, stm32, stm32f401, usb, yuki
- Language: Rust
- Homepage:
- Size: 20.6 MB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
YUKI

Made with [Keyberon](https://github.com/TeXitoi/keyberon)
### Layers
| Layer | Description |
|-------------------------------------------------------------------------------------------|--------------------------|
| [layer 0](http://www.keyboard-layout-editor.com/#/gists/67aaf9d778e9b2ddf6e25b263cbe5ed5) | Firmware Dvorak |
| [layer 1](http://www.keyboard-layout-editor.com/#/gists/5f7a4db98ea4d0b959304c4fe80d1d7f) | Numbers & Symbols |
| [layer 2](http://www.keyboard-layout-editor.com/#/gists/3af9d73abaec154f56b99b5a6c55cf5e) | Less used keys & Macros |
| layer 3 | Mouse movement & buttons |
| layer 4 | Qwerty |
### Features
- 44 keys, v0.1 - Cherry MX & v0.2 - Kailh Choc V1 switches
- Uses only 1U keycaps
- TRRS connection is used for communication between the two halves
- 2 USB-C connectors, with a choice from which the keyboard should send keystrokes
- Mouse control
- OLED display (not installed in the v0.2 picture)
# Bill of Materials
| Product | Qty | Note |
|---------------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| YUKI PCB | 2 | [KiCad](https://kicad.org/) project files can be found in `yuki_pcb` directory. I ordered them from [JLCPCB](https://jlcpcb.com). They are reversible so you will use the same pcb for both left and right. |
| STM32F401CCU6 | 2 | Can be found on aliexpress. I have ordered mine from a local vendor. |
| TRRS jacks | 2 | `PJ-320A` |
| TRRS cable | 1 | 3.5mm jack cable, with 3 stripes. |
| Switches | 44 | Cherry MX for v0.1 and Kailh Choc V1 for v0.2. Ordered from [splitkb](https://splitkb.com/collections/switches-and-keycaps/products/kailh-low-profile-choc-switches) |
| Keycaps | 44 | 1U keycaps. Ordered from [splitkb](https://splitkb.com/collections/switches-and-keycaps/products/blank-mbk-choc-low-profile-keycaps). |
# Flashing the firmware
You will need rust installed so:
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
cargo-binutils for stripping unused data from the rust binary and other optimizations:
```
rustup component add llvm-tools
cargo install cargo-binutils
```
dfu-util for flashing:
```
sudo pacman -S dfu-util
```
add the rust target for the MCU:
```
rustup target add thumbv7em-none-eabihf
```
then to compile the firmware:
```
cargo objcopy --bin yuki --release -- -O binary yuki.bin
```
for the right board add `--features right`
to flash enter dfu by holding BOOT clicking RESET and releasing BOOT and enter (can be tricky):
```
dfu-util -d 0483:df11 -a 0 --dfuse-address 0x08000000:leave -D yuki.bin"
```
After that to enter dfu just hold button 05 and 33 click reset and release the buttons.
### Nix
if you are on NixOS you could use the devShell:
enter the dev shell:
```
nix develop
```
and use the flash script that can be found in `flash.nix`
```
flash right
```