Touchscreens, network shares, NAS box extended support


Sorry in advance for the length of this post, but I wanted to explain my goals, usage scenario, and my previous failed efforts first. Hopefully, my feature requests will make more sense in this context.

I’ve been playing with Volumio for a couple of months and I’m really loving it. Well, I love it most of the time. The exception is when I’m trying to use it to build a complete touchscreen stand-alone music player. By this, I mean a high-tech table radio or boom box. These devices wrap rechargeable battery systems, high-quality speaker drivers, clean amplifiers, DSP processing, EQs, electronic crossovers, solid-state storage, microcontrollers, software, custom electronics, and other modern technologies in a portable package which requires no WiFi or Bluetooth to play the music stored inside.

So, my final end goal is to create a fully-self-contained and portable music playback system using Volumio with a touchscreen as the interface.

My preliminary experimental goal is to get it working as a self-contained touchscreen network music player which streams music from a network share. Both goals use Volumio as a front-end music player rather than a headless music server.

The biggest reason I’m having a lot of trouble making Volumio work the way I want is that I’m a Linux noob. So, please excuse any questions or comments which may highlight my lack of understanding and/or my extensive ignorance. Let’s just say, I have spent a lot of time watching often-contradictory YouTube videos or reading nearly indecipherable pages of obtuse command line instructions while trying to get Volumio to work the way I desire. Most of the time, the tips I find online either don’t work or even worse, they ruin previous progress that I’ve already made. I’ve had to burn a fresh image of Volumio to start over so many times I lost count.

One major problem has been getting the user interface to display on a touchscreen physically connected to the Pi. My first attempt used the official 7" touchscreen and I was ecstatic to find that the plugin for it worked almost immediately. Unfortunately, the low-resolution and tiny interface elements on that 7" screen made it frustratingly difficult to use. The lack of momentum “flick” scrolling, plus the tiny scroll bars, and lack of an alphabetical quick-jump bar exacerbated the difficulty of navigating my large music collection. I was also never able to figure out how to store music on the expensive 256GB microSD card I installed Volumio on. Lastly, Volumio even refused to mount my network share. But getting a larger touchscreen to work was my first hurdle to overcome.

So, I purchased a couple of 10.1" Sunfounder touchscreens to use for my next attempts (and eventually in the final projects.) I immediately noticed that these displays connected to the Pi differently. They used the HDMI port plus a USB port. Thankfully, they worked out of the box with the command line interface. Unfortunately, they did not work with the touchscreen plugin. The display would switch video modes when I flipped the active toggle on the plugin, but the screen was always either completely blank or displaying the command line. I spent days online trying various suggestions but never got past the blank screen, which I was sure should have been displaying the GUI. I looked at the specs and the larger screen was also higher resolution than the “official” one. This made me think I probably needed to change the resolution somewhere. I searched for that and found a tip showing a file that needed to be edited. I made that change (while the touchscreen plugin was inactive) then rebooted to finally see the GUI after about a week of trying. This larger display made Volumio much less frustrating to use, but my other issues remain unresolved (to be posted elsewhere.)

Now, to the point:

My biggest feature request is to extend the functionality of the touchscreen plugin so that it can support the various resolutions, sizes, and features of a larger subset of the available Raspberry Pi touchscreens. In particular, I’d like it to support displays which use HDMI+USB as the display interface. There seem to be quite a few displays like that and from what I’ve been hearing, they are somewhat consistent in their interface code across brands and sizes.

My second feature request is to offer the user the option to either set most of the unused space on their microSD card as on-device music storage or to expand the filesystem. I believe most would choose to use the extra space to hold music since the filesystem really shouldn’t grow much in normal usage of Volumio.

My third feature request is to add more intelligence to the code which connects Volumio to network shares and/or NAS devices. When it fails to connect, there is no suggestion as to why it failed or what we can fix to make it succeed. Ideally, Volumio should be able to try the most common fixes on its own and simply keep trying to connect after it fails the first attempt.

Thanks for listening! This is a great program with the potential to reign supreme among audio hobbyists. There are a lot of us out here who see Volumio as a potentially ideal interface for custom-built music players.