I’ve been running a mix of headless Ropieee and homegrown Roon Bridge Pi’s around the house for a while as Roon endpoints, life is good. In some locations, like the Pi feeding my Schiit headphone stack, I would really like a headless GUI option mostly for visuals from Roon but also for media control if/where avail. Ropieee only supports the 7" touch screen which is too big for my env so I picked up a few 3.5 TFT + case combos, really nice compact screen streamers.
Auto-loading Roon’s display via chromium-browser works great, easy build and nice to have Roon’s now playing on the tiny screen. The TFT is a touch screen, though, and I’d love to be able to control Roon for very basic commands like pause and last/next track from the Pi streamer (no need for full library browsing from the controller, just the basics). I went down the path of this Web Controller:
And v2 Alpha worked pretty well (1.x didn’t) and looked great, but it wasn’t really usable; it didn’t really fit the screen and I couldn’t figure out if/how to pass in defaults on launch/boot so it would choose the right Schiit zone and go straight to now playing (required a manual click-through to get there which really isn’t desirable). Since that project has died not really much option on that one being updated.
Are there any other web controller options floating around that I’m not finding? All of the older DietPi docs for Roon Extensions and web controllers reference selecting “Web / Controller” from the extensions (after installed and registered in Roon) drop-down and selecting Install but current extensions no longer include “Web / Controller” and I can’t find any reference to when/why it was removed and there are no controller options listed in the Git extensions catalog. I’m assuming it’s no longer available.
So right now I’m basically stuck with the web display headless streamer, which is cool, but could be cooler.
Install Roon Extension Manager on your Pi, then install Extension snapshots, from where you can install the old web controller 1.2.13 version.
I had that running with full functionality on RPi3B+ with a Kuman 3,5" touch screen display recently for a while on Raspbian and the display scaled properly, as well as using functional Chromium extensions for on-screen keyboard and full screen toggling.
Maybe that could fit your bill…
Thanks @Marin_Weigel, that did it! I hadn’t stumbled upon Snapshots but it + Web Controller did the trick on the 3.5 TFT; screen fits, actions work, auto-start on boot with saved settings works, exactly what I was looking for. Thanks!
Been up and stable for a few days and all is good, but have run into two small issues I’m not finding resolutions for on the web, thought it was worth asking them here since the project and threads here are no longer maintained by the original creator.
“Disable screen saver while playing” is enabled in the web controller but not working. Xscreensaver still kicks in after my configured 30 mins while streaming Roon through the Pi.
The node app binds 8080 to all interfaces (*:8080) and I want it to only bind to localhost, but I can’t find any ref to the config file either on the Pi filesystem or in the extensions docker containers. Anyone know of a way to force binding to only localhost and/or where to drop the config?
I currently use DietPi on two RPi’s with 7" touchscreen and the setting works as intended. Following software installed in addition to the base system:
To reliably survive Roon core shutdown/startup cycles every day with endpoint grouping intact, I finally installed extensionmanager on both Pi’s and above cited kiosk.sh is called from /var/lib/dietpi/postboot.d
PORT=$(ss -l | grep ‘:8080’)
while [ -z “$PORT” ] ; do
echo “Roon Web Controller not running…”
sleep 1
PORT=$(ss -l | grep ‘:8080’)
done
xinit /root/kiosk.sh – -nocursor
The reason why I dropped the 3.5" Kuman touch display is that its back light can’t be turned off and screen blanking doesn’t completely block back light leakage.
Thanks for the details. I’m running straight Rasbian with a basic desktop (their Buster release). xscreensaver is configured running xscreensaver-demo with an idle kick-in time of 30 mins and configured not to blank the screen or use dpms. I did manually install xscreensaver via apt after installing the OS so I’m wondering if there are now two configs floating around. I’m going to wipe the SD card and do a fresh install and see if the setting to disable the screen saver works. Otherwise everything is running great; I’m launching kiosk mode on boot as well via LXDE autostart.
I hear you on the backlight issue. I have an email into the manufacture to see if there’s any way at all to dim/off the backlight. Not sounding like it’s possible from other feedback and they’ve yet to respond after 3 days so I’m not hopeful. I don’t like that you have to shutdown and completely unplug to lose the light.
The 3.5 TFT manufacturer confirmed there’s no way to blank the screen. Not a huge issue for me where the streamers are located.
A fresh rebuild and still having the same issue, xscreensaver kicks in at the configured time when streaming through the Pi and setting web console to disable screensaver when playing.
Still haven’t found a way to bind the console to localhost so it’s not exposed outside of the device. May have to solve this one with iptables…