EncoderTool
The EncoderTool is a library to manage and read out rotary encoders connected either directly or via multiplexers to ARM based boards. Encoder push buttons are supported. Callback functions can be attached to encoder changes and button presses to allow for event driven applications
Install / Use
/learn @luni64/EncoderToolREADME
EncoderTool

Bounce-Free Rotary Encoder Library <br> + Standard or Multiplexed Wiring <br> + Push Button Support <br> + Callback System
<br> <div align = center><kbd> <br> Examples <br> </kbd> <kbd> <br> Boards <br> </kbd> <kbd> <br> Documentation <br> </kbd> <kbd> <br> Contributors <br> </kbd>
</div> <br>
Supports
<br>-
All common encoders with and without push buttons
-
Directly connected encoders (A+B+Button to pins)
-
Multiplexed encoders using
-
Easy to adapt for your preferred multiplexer
-
Interrupt based or polled readout strategies
Board Compatibility
<br>-
PJRC Teensy (Teensy-LC, Teensy 3.x, Teensy 4.x, MicroMod)
-
SAMD (SEEED XIAO, Nano33 ...)
-
8bit Arduino AVR (UNO, Nano, Mega...)
-
ESP32
-
Fallback solution for other boards (using slow digitalRead/Write)
Features
-
Fully bounce free readout without additional hardware
-
Provides hard and cyclic count limits
-
Supports and debounces encoder push buttons
-
Modern callback system for event driven applications
-
Encoders can be connected directly (A / B / Btn connected to pins)
-
Encoder connection using various multiplexers (up to 32 encoders on only 4 control pins)
-
Schematics and Gerbers available for multiplexed encoder boards (Eagle/KiCad).
Related Skills
openhue
351.4kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
351.4kElevenLabs text-to-speech with mac-style say UX.
weather
351.4kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.6kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
