-
-
Notifications
You must be signed in to change notification settings - Fork 40.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 Request] Add Keychron Q3 #16812
Comments
As soon as it hits firmware it should work in configurator. |
Some of the delay of getting Q3 into Firmware might be because those of us with Q3 keyboards with encoders are reporting that the encoder is skipping events when the Q3 is loaded with compiled-from-source .bins. (It's not sampling the encoder fast enough to detect the required pulse edge transitions that indicate encoder turn direction.) |
Yes, i'm aware of it. I am actually waiting to receive the knob version and will work towards a fix if one isn't present by the time i get it. the knob issue is across al Q knob keyboards |
That's good to know. I've troubleshot the problem down to the pin sampling level in encoder.c and witnessed the missing A and B line transition states, but I'm not sure how to increase the sampling rate. Is the culprit the overall matrix scan frequency of 188-191 for my board? |
great, can you mark the function for me? will be easier to find when i get the keyboard. Thanks! |
encoder_read: qmk_firmware/quantum/encoder.c Line 140 in 8de4065
encoder_update called by encoder_read: qmk_firmware/quantum/encoder.c Line 107 in 8de4065
This is the line in encoder_read that reads the pins. qmk_firmware/quantum/encoder.c Line 144 in 8de4065
And for this encoder, it needs to see 4 separate edges on the pulse on a counterclockwise turn: I'm using the format of (pin A state, pin B state)
Sometimes it just misses the edge, usually the 3rd or 4th state where pins A and B are rising. |
@ibootstrapper The issue is clearly related to the matrix scan frequency. I played around with the ChibiOS settings CH_CFG_ST_FREQUENCY and was able to get the matrix scan frequency up from 191 to 600+ by turning off features and saw that the number of dropped encoder ticks was reduced but not eliminated. So we just need to get the scan frequency up above this. The keyboard advertises a 1000Hz polling rate. One would think that this would mean that the keyboard scan rate could also achieve this level . . . |
So, the issue is indeed caused by the matrix scan rate. The low scan rate is caused by 3 factors.
If I compile QMK or Keychron's fork with the RGB Matrix disabled, the custom matrix excluded, and CH_CFG_ST_FREQUENCY set to 10k, my matrix scan frequency jumps up to 2400Hz and that is well above the level needed for the matrix encodes to start working. @lalalademaxiya1 FYI |
@IBNobody i just got my Q3 with knob, are you on keychron's discord? |
There's a KC Discord? I'm on the QMK and SonixQMK ones. Throw me an invite. I'm also /u/IBNobody on Reddit. |
https://discord.com/invite/HAYbRrTsjN, sent you a friend invite. |
Please check if this PR solves your problem:
|
Please refer to PR #16954 to fix encoder issue. |
Yes, I can confirm that this fixes the issue on Q3. Now I just need a repo branch that has both the encoder fix and the EEPROM/VIA fix. |
It's already done in playground branch of keychron fork. |
Excellent. This will be great to have. |
I'm very new to mechanical keyboards and QMK. I acquired the Keychron Q3 with the hopes of getting into it.
Cheers! |
@Cr8zyIvan this project is not related to keychron. They make pull-requests and try to get their code into the project. In their fork they can commit what they see fitting and latest code code for the q series is there. It may take time for the code to be merged to this repository. |
They have a q3 branch: |
Thank you! |
I spent some time over the past few days to make such a branch: https://github.com/FWest98/OS-QMK_Firmware/tree/keychron/q3_fwest |
this looks good! I was thinking about trying to set per-key colors and per-layer effects by modifying QMK itself directly, rather than using VIA. but I don't know a lot about working with QMK, I'm new to it. I've seen some really cool videos of effects people have achieved on other keyboards by modifying QMK. |
I'm not familiar with compiling QMK; I don't have a build environment prepared yet. But I'd be happy to help review the merges and such. I'd like to see some of the intended QMK features working on the Keychron Q3. I'm sure many of the changes will also apply to the other Q-family boards, layout aside. |
Is there any progress here? |
I worked on my own fork here and what i had now support the model with the knob Please let me know if you experinece any issues |
The keychron fork used by default in the keyboard works properly now. |
@ibootstrapper if I’m not mistaken Q3 support is being added in this PR: #16912. Maybe the work you’ve done on your fork would be useful there? Or as a separate PR? |
thanks, i'll check it out |
Up to Keychron to submit a PR. Until then we can't do anything about it. |
A pr was just submitted, I think this issue should be reopened, or at least changed from not planned. |
Hi Guys, @tzarc Any idea on when the feature will be added? I see the PR is ready to merge. Thank you for all your work ! |
And why is this closed if it's not in the main repo? |
This is being implemented in #16912. |
Sorry, missed the comment above. Thanks for pointing out. |
great, can you mark the function for me? will be easier to find when i get
the keyboard. Thanks!
…On Fri, Apr 15, 2022 at 10:06 AM IBNobody ***@***.***> wrote:
That's good to know. I've troubleshot the problem down to the pin sampling
level in encoder.c and witnessed the missing A and B line transition
states, but I'm not sure how to increase the sampling rate. Is the culprit
the overall matrix scan frequency of 188-191 for my board?
—
Reply to this email directly, view it on GitHub
<#16812 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAK7YVE6VZOWQCZIJ24TAQLVFGAWPANCNFSM5SXZIMKA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Support for KeyChron Q3 Keyboard
The text was updated successfully, but these errors were encountered: