Upgrade to Volumio 3 - GPOI plugin missing

Hi, I upgraded to volumio 3 and now I cannot find the GPIO button plugin.
I am using a raspberry pi 2 and I am using GPIO pin 17 to shut down the device.
Is there a way to install the GPIO plugin or another way to setup GPIO pin 17 for shutdown?
Thanks, Rainer


If you are confident with the command line you can install it manually.
All though the node modules will also need updating

this worked for me on a fresh install of 3.163

If all goes well, when completed it will appear in the installed plugins secton of V3 and you will need to activate it.

sudo apt-get update

sudo apt-get -y install build-essential

cd ~

wget http://plugins.volumio.org/plugins/volumio/armhf/system_controller/gpio-buttons/gpio-buttons.zip

mkdir ./gpio-buttons

miniunzip gpio-buttons.zip -d ./gpio-buttons

cd gpio-buttons

volumio plugin install

## when installation is finalized, press CTRL+C ##

cd /data/plugins/system_controller/gpio-buttons/

npm install --save onoff@6.0.0


Note that though it is not forbidden to do this manually, but we advise against it.
Especially when updating node modules!
You will loose OTA, so for any following version you would need to reflash.
It goes without saying, that manually modified installations are not supported.

I totally agree. You should not be messing and not expecting the worst. Trying first on a spare SD card backup installation IMO is the sensible option

But please forgive my ignorance, but how can the above mess up the OTA.
All I can see is I am installing a set of tools extra to the original OS then using them to modify/update some files in the plugin directory only.
To test this I just updated from 3.163 to 3.173 via OTA, all seems fine, with modded plugin still availabe and functional.

Hmm that isn’t strictly true. Plugins only mess around with the /data part and install all node modules locally.
The OTA checker is only for the /volumio partition…

How does the Volumio Team know what gets installed?
Unless it is authored and put in the plugin store you will not get support for it.

@ashthespy Agree with the OTA issue, did not realise that.

This should be more streamlined

sudo apt-get update
sudo apt-get -y install build-essential
cd ~
wget http://plugins.volumio.org/plugins/volumio/armhf/system_controller/gpio-buttons/gpio-buttons.zip
mkdir ./gpio-buttons
miniunzip gpio-buttons.zip -d ./gpio-buttons
cd gpio-buttons
npm install --save onoff@6.0.0
volumio plugin install

PS: please be aware that the current plugin ecosytem is under heavy churn. There are some plugins (mainly audio playback) that will be broken on Volumio 3. There are some like this that just need modules rebuilt.

So as usual - be aware that you might break your system when not using the officially tested plugins that are in the store.


This plugin is one of the most important one because it is used on on streamer built.

1 Like

Did you contact the author?

1 Like

If its OK to do it this way around. ie not installing it first.
Why cant it be done, re zipped and put into the plugin store for everyone to use.
Obviously more to it than that, or it would already have been done I suppose

1 Like

Well that is the point - each plugin’s author needs to put in the work, and then upload it to the new plugin store.

However, there is a new testing and approval process – see Volumio3 Plugins store issues and discussion for the details.

The authors (tomatpasser) GitHub page says “This repository is not up to date, development has moved” and points to the Volumio GitHub Page
So was assuming it was now managed by Volumio team

Good point – up for adoption I guess? ¯\(ツ)

If the developer does not want to spend time on porting the plugin, but the plugin works fine anyhow (with some additional steps, as rebuilding the node modules), better to take care of the porting and to publish it on the plugin store, to avoid people messing around with ssh.

GPIO plugins are the perfect example for what I mean

I installed the GPIO plugin according to your post. It worked! Thanks a lot,


Thanks @ashthespy, your streamlined installation instructions worked for me too.

Yep the installation went smooth, however only the shutdown seems to be working. >, |< and >| fail.

Anyone with V3.175 and GPIO Buttons and have the >, |< and >| working?

If I look in the log:

info: Enabling plugin gpio-buttons
info: Loading plugin "gpio-buttons"...
info: GPIO-Buttons initialized
info: PLUGIN START: gpio-buttons
info: GPIO-Buttons: Reading config and creating triggers...
info: GPIO-Buttons: playPause on pin 23
info: GPIO-Buttons: previous on pin 25
info: GPIO-Buttons: next on pin 24
info: GPIO-Buttons started
info: Done.

It shows the GPIO from the non working ones, the one that is workinig (Shutdown) is missing.

As simple script to test that the buttons are correct wired:


from gpiozero import Button
from time import sleep
import subprocess

ButtonPlay = Button(23)
ButtonNext = Button(24)
ButtonPrev = Button(25)
Debug = 1

while True:
    if ButtonPrev.is_pressed:
        if Debug == 1:
            print("ButtonPrev is pressed")
        subprocess.call(["volumio", "previous"])
    if ButtonPlay.is_pressed:
        if Debug == 1:
            print("ButtonPlay is pressed")
        subprocess.call(["volumio", "toggle"])
    if ButtonNext.is_pressed:
        if Debug == 1:
            print("ButtonNext is pressed")
        subprocess.call(["volumio", "next"])


1 Like

Hello, in my case, the installation is ok but the plugin won’t start, do you have any idea why?
Thank you and happy new year!

Are you trying this with just the GPIO Buttons plugin, as this method does not work with all plugins.

but for me the only time the plugin failed to activate was before I rebuilt the node modules, either by me forgetting to do the last section, or it not completing.