Rotary switch for inputs

Hi is it possible to use a rotary switch connected to gpio to change the inputs on volumio? Like a knob to change from spotify to Bluetooth or rca or hdd, etc?

Its a pi4 4gb with hifiberry dac+
Nothing built yet. Just want to get a parts list. So I know what I’ll need.


How would you imagine the UX? Everything controlled via one encoder + a small screen?

I would be controlling it thru my phone. But the chassis I’m using has 2 spots for rotary switches so I want to make use of them an not leave them just holes. And it goes along with the theme of my stereo 70’ pioneer. I’m using an old reverberation amplifier chassis and faceplate.

The songs to play i would choose thru the app. But the input i would use the dial

Hmm, I am having trouble imagining how this would be used - how would one map the “source select” feature of amps with the “digital” sources we have here?
When you use the the app to select and play a song, the “source switch” is pretty much flipped digitally, so the physical selector switch is redundant right?
Or do you want to disable the other sources when the rotary switch is in say “Spotify” position?

An idea might be to have a motorized rotary switch, that tracks what “source” is currently playing and changes.

I mean like if I want to play music from my phone. I would have to select Bluetooth/aux. Or if I want to play from an attached hard drive I would have to select those sources to play those options would I not?

Nope – Volumio automatically handles the “source switching” for you via software.
i.e you can pick a track from “Music Library” (aka your HDD,NAS etc) it will play it from there.
If you pick something from Spotify/Tidal/Qobuz, it will automatically switch over, and start playing from there.
If you switch over to Spotify Connect for example, it will again stop the previously playing “source” and switch over to Spotify via connect on you app.

I just saw your previous post (Source buttons?) as well, and don’t mean to sound rude - but have you tried installing and using Volumio yet? If not, First steps with Volumio - Volumio Documentation might be of interest to you :slight_smile:

1 Like

I initially had thought of using a rotary encoder, but not as a source selection, instead to help navigate menus as well.

In my case I have a small 5" touchscreen, which from an accessibility standpoint isnt ideal to access some of the menu options. I’m modifying the CSS to make it a bit better (buttons larger / out of the corners etc), but a rotary encoder that would switch the cursor/focus between the screen buttons and allowing you to “click” on them might be better.

I liken the approach to say a car stereo, these days they all have touchscreens, but often also have a rotary knob to switch between menus as well. My family truckster (BMW X1) has a large knob in the centre console that makes this sort of navigation really fast.

Food for thought anyway, I’ve gone with a pure touchscreen myself for now and will spend more time making the theme/css more small-touchscreen-friendly.

Yea i have a vision of what i was making. Im using this chassis and the faceplate

The lighter silver rectangle to the left comes out and I was going to use a screen like this.

It is only off by acouple mm.

I’m going to reuse the original power button. But its got 2 dials still. Not sure what I can use them for now.

Could I use one for output volume? Like output from dac to amplifier?


I believe there is a rotary encoder plugin for volume control, but it will depend on which HAT / output you use if there is actually volume control available.

In my case I use a digital-only output direct to an external DAC (Schiit Modi3+), which does not give me volume control from Volumio. If you use a DAC HAT (RCA/XLR out), then volume control should be functional and hence the rotary encoder physical volume control might be cool for you.

Slick case though, and I looked at that same LCD…

You can build a simple encoder onto a seeeduino xiao, and use that as a usb keyboard, sending macros, keystrokes, whatever…

I dont know what any of that means sorry lol I’m kinda new to this world.