This repository has been archived by the owner. It is now read-only.
Control volumio2 on RPi with GPIO buttons
Clone or download
Latest commit ad7ea38 Aug 4, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
app/plugins/system_controller/gpio-buttons Move preference folder altogether May 31, 2017
.gitignore One button config working Jul 16, 2016 Update Aug 4, 2018


NOTE: This repository is not up to date, development has moved here:

Work in progress for a GPIO button plugin for volumio2 on the raspberry pi. Uses node js library 'onoff'.

Currently 6 actions can be attached to gpio pins: Play/pause, Vol+, Vol-, Next track, Previous track and shutdown.

GPIO Buttons interface


  • Download zip for install in volumio2 here:
  • Got to Plugins -> Upload plugin and upload the file
  • Each action can then be enabled and the GPIO pin selected.

The pin numbers entered should be GPIO pin numbers. The GPIO pins have an internal pull-up/pull-down resistor. The default value for each pin is shown below. As of now it is not possible to control the pull in the configuration.

Remember never to connect 5V to the GPIO pins, only 3.3V or ground.

Connection of a GPIO to a voltage higher than 3.3V will likely destroy the GPIO block within the SoC.

The button should be wired between the GPIO pin and opposite voltage as the default pull. The plugin will detect any change on the GPIO pin.

Example: If using GPIO pin 17, the button should be wired between the pin and 3.3V (high) because the default pull is low for GPIO pin 17.

GPIO Pin Default pull GPIO Pin Default pull
2 high 15 low
3 high 16 low
4 high 17 low
5 high 18 low
6 high 19 low
7 high 20 low
8 high 21 low
9 low 22 low
10 low 23 low
11 low 24 low
12 low 25 low
13 low 26 low
14 low 27 low

Schematic showing wiring example for pin 17


  • Control of internal pull resistor
  • Support for rotary encoder to control volume
  • Custom commands