No description
- Nix 100%
|
|
||
|---|---|---|
| .sworm | ||
| boards/shields/sofle_hybrid | ||
| config | ||
| patches | ||
| .env.example | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Sofle Hybrid dongle firmware
Personal ZMK firmware for Sofle Hybrid rev5 using nice_nano_v2 controllers and a dedicated USB dongle central.
Hardware topology
dongle: split central and USB HID endpoint.left: split peripheral with matrix, OLED, and encoder mouse-scroll.right: split peripheral with matrix, OLED, and 5-way switch.- Host connection is USB through the dongle.
- BLE remains enabled only for split traffic between dongle and halves; host Bluetooth profile advertising is disabled.
Repo layout
config/sofle_hybrid.keymap: canonical keymap.config/sofle_hybrid.conf: shared user config.boards/shields/sofle_hybrid/: custom shield definitions for left, right, and dongle builds.config/secret_macros.dtsi: generated placeholder for local text macros.uf2/: generated firmware output; ignored by git.
Build
Primary build:
nix run
This builds all targets, reads local text macro bindings from .env when present, and writes:
uf2/sofle_left.uf2uf2/sofle_right.uf2uf2/sofle_dongle.uf2uf2/settings_reset.uf2
Useful checks and individual builds:
nix flake check
nix build .#left
nix build .#right
nix build .#dongle
nix build .#settings_reset
Local text macros
Secret text macro bindings stay outside git:
cp .env.example .env
$EDITOR .env
nix run
Values are raw ZMK binding lists, for example:
SOFLE_TEXT_MACRO_1_BINDINGS="&kp H &kp I"
Unset macro bindings compile to &none.
Flashing
For normal updates, flash dongle first, then left and right halves.
For clean reset:
- Remove old
SofleBluetooth pairings from hosts, if any. - Flash
settings_reset.uf2to dongle, left, and right. - Flash
sofle_dongle.uf2to dongle. - Flash
sofle_left.uf2andsofle_right.uf2to halves. - Plug dongle into host over USB.
- Power halves and wait for split reconnect.
ZMK Studio
ZMK Studio is disabled on the dongle for Windows USB stability. Re-enable only after base USB HID and split BLE are proven stable.