-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Add zmk_kscan_gpio_demux kscan driver & NIBBLE keyboard #292
Conversation
0c8d44d
to
4e32e66
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.
Fabulous start! One or two minor notes, and them some specific questions on the IO stuff.
Thanks!
Fantastic feedback, thanks! I'm going to work on a rewrite over the next few days focusing on removing the unneeded features discussed above and adding the configurable polling rate. I'll push and update the PR when it's ready to go. |
a661e95
to
e3219bc
Compare
Alright! Made the changes discussed above. In summary:
|
e3219bc
to
7e7594b
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.
This is really close. A few remaining comments.
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.
Thanks!
@jaygreco Some merge conflicts since someone else added a board recently too. Can you quickly rebase w/ fixes for the setup scripts, then we'll merge? Thanks! |
@jaygreco Looks like this rebase didn't quite work as intended. Happy to help you on Discord if you need it. Thanks! |
+ zmk,kscan_gpio_demux is now a compatible kscan option + kscan_gpio_demux is based heavily off of the implementation of kscan_gpio_matrix, modified to address cols using an n-to-1 demultiplexer chip instead of discrete IO + Added zmk,kscan_gpio_demux.yaml file * modified CMakeLists to include new source files
+ Added required files for nullbits NIBBLE
- Revert accidental VS code settings change
- Remove kscan_gpio_irq_callback - Remove kscan_gpio_irq_callback_handler - Remove irq_callbacks + Add TODO noting timer and sleep state interactions
213b08c
to
8a98212
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.
Looks great!
Add zmk_kscan_gpio_demux kscan driver & NIBBLE keyboard
Add zmk_kscan_gpio_demux kscan driver & NIBBLE keyboard
Is this possible to support analog multiplexers (e.g. CD74HC4067) that output analog values (work with hall effect sensors and magnet switches)? |
Added NIBBLE keyboard folder and keymap. The biggest change is the addition of a new kscan driver, zmk_kscan_gpio_demux, along with some driver cleanup while porting from the standard matrix driver. I also added some comments to the driver.
The demux chip is active-low
and the driver allows for both row2col and col2row configurations. Currently, polling is the only method that has been tested as working, but hooks for interrupt-based scanning were left in as well for the future.Tested locally on a NIBBLE keyboard with nice!nano MCU.