-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature(split): add split-side encoder support #728
Conversation
774a0ac
to
e549a62
Compare
@petejohanson friendly ping - could you take a look at this when you have some time? i've been happily using it on my kyria split for a couple weeks. |
I can't comment on the code, but I used this branch successfully on my v1 Sofle; haven't had any issues. I do not have oled or underglow so I can't regression test those. |
I also just noticed that this also worked for having different encoder keys defined per layer. Very nice! |
I've been using without issue on Sofle keyboard - thanks @stephen ❤️ |
I have test it with sofle and worked great. thanks |
Didn't work on my BT nice!nano wireless Kyria. I'd test wired but i think it shorts the battery if I attach a TRRS cable. |
I have tested this for a month+ on Rollow and it works great. I did need to have both halves encoders on different pin out's, other than that everything works as assumed. |
Works great on nice!nano Kyria.
Somehow the &right_encoder parameter was ignored. I had to change the .dtsi file to have desired encoder resolution. |
Are you running this on a wireless nice!nano Kyria setup @yannickjmt ? I wasn't able to get it working on my wireless nice!nano Kyria and I'm wondering if I did something wrong while building it. Thanks for the encoder resolution tip btw, I was wondering why my left encoder took 2 clicks per key press.
|
Yes, be careful to have the proper bindings, like for example
I also put
in kyria_left.conf, kyria_right.conf and app/prj.conf (not sure if all are necessary) |
Amazing work @stephen , I've NEARLY got it working on both sides. OK my bad, wasn't working but I had changed the encoder.status to 'okay' in the kyria.dtsi because I was trying to get them working but that was stopping them from being recognized independently! All working now :D |
|
Yeah got it all working thanks! |
Working great on my Corne! |
worked well on my Bluetooth Sofle, please bring it to the main 🙏 |
I have it working on my Sofle v2. When I rotate the encoders, they don't pick up every tick. This an issue for anyone else? |
Working well on my modified ferris sweep! @linkdevk You might have to change your resolution to a lower value, that's what I did and it fixed it. |
Put this into your keymap file, below
|
I'm tried using this after the latest update and I can't build . |
Did the latest update break it? I know the original developer of this PR is not planning on working on it anymore. RIP dual encoders for now |
I get this error when i switch to this PR -- Configuring incomplete, errors occurred! I switch back to main and I could build again |
I rebased this PR (it was a clean rebase) and pushed it to https://github.com/caksoylar/zmk/tree/split-encoder. I don't have a board with encoders but at least one user on Discord reported it working with the Github Actions workflow using https://zmk.dev/docs/features/beta-testing/#testing-features. I'd imagine that building locally would be no different -- it could be an issue with Zephyr version differences if you switched from |
Just tested this with a Sofle RGB using nice!nano. Working as intended! |
Are you on 2.5? |
Yeah. Just forked it yesterday morning. |
Up 😭😭😭 |
On the left half, I currently have: https://splitkb.com/products/linear-rotary-encoder > This encoder actuates thirty times on a full cycle, so one full twist will > perform thirty actions. > The resolution of this encoder in QMK is 4, which is the default setting for > encoders. And on the right: https://splitkb.com/products/industrial-rotary-encoder > This encoder actuates thirty times on a full cycle, so one full twist will > perform thirty actions. > The resolution of this encoder in QMK is 2. According to https://github.com/zmkfirmware/zmk/blob/01d2102c2326b86b0f87bb008c2a3eb3871e3963/app/boards/shields/kyria/kyria.dtsi#L61-L77, the default resolutions in ZMK for the Kyria are set to 4 for both halves, but I'm only seeing 15 actuations per full cycle with the left encoder, so hopefully this change fixes that. (Perhaps the units differ between ZMK and QMK.) Note that I haven't tried the right encoder yet, as it isn't functional (zmkfirmware/zmk#728 hasn't landed yet).
Doesn't work for me, the right side with encoder works, but none of the keys on my left side (central) side works |
Hey folks, I've rebased infused-kim's branch and updated the shield config for my Waterfowl keyboard. I hope it can be useful to someone else: |
Thanks a lot! |
@schmjop yes, all 4 encoders (2 each side) are working fine in Waterfowl within my branch. Maybe check my last commit for how I updated the shield files and check whether the equivalent ones for Kyria are set up properly too. |
I have mine working from your branch on a Sofle RGB from Keyhive. However, I noticed that if I set the encoders to |
Yes, that's how it's described in the docs and I had to do the same change to have my keyboard working. |
With #1499 merged and having read
In case any specific tasks are required I'm sure people in here are happy to help out... |
@FrostKiwi I did a rebase of the previous work onto the merge. Had to do a few things to get everything to compile but the encoder on my split is not working. I will continue to work on it to see if I can get things running. |
@DiogoDoreto thank you for the advice. I just checked and it already seems to be configured correctly both in your fork and the official ZMK repo: Any other ideas? |
Rebase work at 2023-04-26 base source. https://github.com/tklzg/zmk/tree/encoder If you want to apply the change in the version you are currently using, simply apply infused-kim's patch and if the build is successful, you can just change the two below. [app/include/zmk/split/bluetooth/uuid.h] [app/src/split/bluetooth/service.c] |
Works on aurora lily58 with nice!nanov2 Thanks for the fix |
This is following zmkfirmware/zmk#728 and narze/zmk#2
e549a62
to
760a881
Compare
760a881
to
0612d49
Compare
Please everyone test #1841 which is updated and is targeted to merge once code reviewed. |
0f9ba15
to
4f45ae2
Compare
Could you please share the zmk-config you used for this? I'm trying to get my Keyhive Sofle RGB to work but my right encoder is still not working. |
This commit adds a new GATT characteristics on the peripheral side and wires it up to read sensor values. The central side subscribes to this new characteristics and replays sensor values on its side. Co-authored-by: Peter Johanson <peter@peterjohanson.com>
* Don't accept data for the same behavior on multiple layers more than once, to avoid duplicate/extraneous triggers.
585c7f6
to
1672524
Compare
This PR adds support for encoders on the peripheral side. It adds a new characteristic on the GATT service that the central subscribes to.
I only tested this on my own split Kyria.