Skip to content
Simple dual rotary encoder plugin for Volumio 2.x
JavaScript C++ Makefile Python HTML Shell C
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
images upload images Jan 17, 2018
node_modules_2.413 Major update Jun 26, 2018
options Scroll config fixed Jul 22, 2018
.gitignore New package Jul 23, 2018
LICENSE Update Aug 4, 2018
UIConfig.json Major update Jul 2, 2018
config.json Major update Jul 2, 2018
index.js Scroll config fixed Jul 22, 2018 Minor typo Jul 9, 2018
package.json Initial commit Jan 17, 2018 New package Jul 23, 2018


Volumio 2 plugin to configure two simple rotary encoders.

Some notes

  1. A lot of HATs use GPIO 17, don't use it for the encoder when this is the case!
  2. The click requires pullup for that specific GPIO pin, the encoder will just compare the previous values and shouldn't require pullup or -down

Quick start

  1. Connect your rotary encoder(s) and write down the pins you have used
  • CLK = pin A
  • DT = pin B

Alt text

The rest of the pins is self explanatory.

  1. Install the plugin
  2. Configure your encoder(s) using the pins you wrote down.
    • Configure CLK to 0 (zero) to disable the encoder
    • Configure SW to 0 (zero) to disable the (push) button on the encoder
  3. Choose your logic (default (gray coding) or 4x speed, which decreases sensitivity by 25%)

Alt text



Should you encounter any problems with the encoder try the following:

  1. Add HW (hardware) debouncing; I've ordered 0.1uF capacitors to place between CLK and GND and/or DT and GND
  2. Try other rotary logic; I've tried to minimize the amount of double reads for my KY040 encoder, now the default gray coding should work, otherwise try the 4x speed setting.

I'd advise to use HW debouncing as most people seem to have solved their problems using that solution.

You can’t perform that action at this time.