Volumio, old radio and headless control

Hi!

I’m completely new to Volumio, so please bear with me if I have any misunderstandings or incorrect assumptions. I’m looking for advice on how to use Volumio without displays and using GPIO as controls.

I’ve been converting an old radio (Duett Hi-Fi EL84 Radio Radionette; Oslo, build 1960, 9 pictures |Radiomuseum.org) for web-based radio, AirPlay, and Spotify. The original buttons, variable resistors, and multipole selectors essentially function as a state machine—specific sets of values are translated into commands like “play web radio channel 1” or “start a specific Spotify playlist.”

Currently, I’m using Python to interface with Raspberry Pi Internet Radio (Raspberry Pi Internet Radio). I found Volumio a few days ago, and I’m really impressed with the setup.

I have two versions of this setup. In one, I’m using an RPI Pico, which handles all input and sends information to the Raspberry Pi. In the other, the input is handled directly by the Raspberry Pi itself. Both configurations work fine.

However, since Volumio is based on JavaScript, I’m struggling to find libraries for handling certain functions (for example, Adafruit Seesaw rotary encoders).

I’m considering three possible approaches:

  1. Handle input via the Pi Pico and communicate with a Volumio plugin.
  2. Handle input via a Python daemon and communicate with a Volumio plugin.
  3. Use JavaScript on the Raspberry Pi and create native code for the missing libraries.

The first option is the easiest but doesn’t offer any reusability within Volumio. The second option might cause either input or Volumio to break in interesting ways, and the third option is essentially a project on its own.

Do you have any recommendations, or does a similar plugin already exist? (And yes, I’ve searched, but I might have missed something!)