-
-
Notifications
You must be signed in to change notification settings - Fork 40.2k
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
[Core] Allow custom timings for WS2812 PIO driver #18006
Conversation
7205957
to
c80004e
Compare
c80004e
to
488310c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't test with this, as I don't have any RP2040 boards on hand while travelling, but it makes perfectly good sense and looks very compile-time flexible. One other "huh I'm surprised qmk_firmware doesn't...." note below, but it doesn't affect adopting this change.
cc86b14
to
4c00b6a
Compare
Yay ARRAY_SIZE |
13846fe
to
e526c9b
Compare
@sigprof If you happen to have some spare time I would like your opinion on this implementation 🙂 |
e526c9b
to
d2d17d3
Compare
d2d17d3
to
bb4836c
Compare
Tested and running stable since ~2 months on my RP2040 keyboard |
Description
Allows setting of custom WS2812 timings using the defines found in
ws2812.h
, it also uses these timings as it's default now. Furthermore the reset timing is now applied correctly before starting a new transfer. Due to implementation details the waiting times are rounded to 50ns intervals.WS2812 default timings
T1H + T1L
T0H + T0L
Reset
SK6812 timings
T1H + T1L
T0H + T0L
Reset
Deviation from 80us due to the driver choosing the longer
T0H + T0L
orT1H + T1L
period which is irregular in this case.Types of Changes
Issues Fixed or Closed by This PR
Checklist