snsten / Klein-zmk

ZMK Firmware for Klein keyboard
MIT License
29 stars 29 forks source link

Left split encoder zmk support? #7

Open idesignstuff opened 1 year ago

idesignstuff commented 1 year ago

https://github.com/infused-kim/zmk

There appears to be working code for left side split encoder support. On my build with the Xiao BLE board, I've wired the left half up to use the NFC pins (gpio mod) for EC11 signal lines, so the OLED can be on I2C and the left encoder can coexist. Obviously, the push switch wiring on the PCB is already there anyway...

Figured out after that hardware move that left split encoder software support isn't in the main branch of ZMK: https://github.com/zmkfirmware/zmk/pull/728

I don't know how difficult it will be to add this infused-kim branch to support left split encoders, but maybe you'll be able & willing to look at it? I'm really interested in getting it working, but kind of out of my depth. Thanks!

snsten commented 1 year ago

I looked at the infused-kim/zmk repo it doesn't seem to have the seeeduino_xiao_ble board defined at infused-kim/zmk/tree/sofle/app/boards/arm.

To get this working I need a seeeduino_xiao_ble compatible fork, or the original pr merged with the main repo. The split encoder pr is very old and would require a rebase with the current code changes.

snsten commented 1 year ago

Ignore the previous comment I was on the wrong branch on the infused-kim/zmk repo. Fixing that now both encoders seems to work correctly, you can check the details in the latest commit.

idesignstuff commented 1 year ago

Thanks for looking again! I've made the changes you suggested, but my GH actions fail. I'm sure it's a typo I made...

idesignstuff commented 1 year ago
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/__w/Klein-zmk/Klein-zmk/build -S/__w/Klein-zmk/Klein-zmk/zmk/app -GNinja -DBOARD=seeeduino_xiao_ble -DZMK_CONFIG=/__w/Klein-zmk/Klein-zmk/config -DSHIELD=klein_left
Error: Process completed with exit code 1.

Same type of error for all three artifacts. Am I missing the connection to my klein config repo?

idesignstuff commented 1 year ago

warning: ZMK_SPLIT_ROLE_CENTRAL (defined at /__w/Klein-zmk/Klein-zmk/config/boards/shields/klein/Kconfig.defconfig:6, /__w/Klein-zmk/Klein-zmk/config/boards/shields/klein/Kconfig.defconfig:6) defined without a type

Where do I define a type?

snsten commented 1 year ago

Replace the ZMK_SPLIT_ROLE_CENTRAL with ZMK_SPLIT_BLE_ROLE_CENTRAL in Kconfig.defconfig. It seems to be renamed from the docs but the dual encoder pr still uses the old name.

idesignstuff commented 1 year ago

That change got it to build. How do I make sense of the errors to diagnose? Not very clear...

idesignstuff commented 1 year ago

ok, to get the right encoder to work too, I needed to add

CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y

to klein_right.conf

With that change, they are both behaving. Thanks so much!