Added support for KY-040 rotary encoder #143
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I added a simple decoder class and some supporting logic to allow the use of a KY-040 Rotary Encoder in place of the Up/Down/Enter buttons. All code edits were marked //ROTARY: for easy review. The decoder class operation and implementation details are documented in the header file (dmRotary.h). The encoder can be enabled from the options.txt. A brief video of the encoder being demonstrated is available on YouTube at https://youtu.be/c83Rn3KvZ0g.
Disclaimer: This implementaton is working for me - but I'm no expert on RPi bare metal programming. Also, this code has only been tested on a RPi 3 and may or may not work on earlier models.