in , ,

Pi-Fi! Build a Spotify & Tidal touchscreen streamer for €200

  • In the first installment of this Touchscreen Pi series, we hooked a Raspberry Pi into the back of the official Raspberry Pi 7″ Touchscreen display, dropped the two-fer into a Digitalrise standing case and ran a RoPieee operating system for a touch-enabled ‘now playing’ screen. We effectively built a Roon (‘Bridge’) streamer with a 7″ touchscreen for €200. Later, we saw how an upgrade to RoPieee XL added Spotify Connect functionality but visually-speaking left Roon’s ‘now playing’ screen as a placeholder:

    In this article, we will see how to add ‘now playing’ touchscreen possibilities to Spotify (Connect), Tidal and Qobuz, all by way of Volumio OS running on a Raspberry Pi. While we’re at it, we’ll change up the case for an open-backed varietal to leave room for the addition of DAC and S/PDIF HATs used by many Pi-Fi enthusiasts.

    Hardware

    We start by popping the back panel on the Digitalrise case…

    …and then carefully removing the Pi + Touchscreen from its shell:

    This brings us back to basics so if you’re starting from scratch with this Pi Touchscreen project, know that you’ll need 1) a Raspberry Pi 4 and 2) the official Raspberry Pi Touchscreen (and no other touchscreen).

    You’ll also need an open-backed frame (case) like this one from Pimoroni (Pibow?). I bought it from Amazon.de for €15 but UK folk can also get it here. Note the abundance of colour options. Stateside folk should try their luck on Amazon.com.

    The Pimoroni frame piles up in three layers. The first layer requires the Raspberry Pi 4 to be completely removed from the assembly. We then have to unscrew the touchscreen’s control board from the back of the screen in order to fit it through the cut-out hole of the first Pimoroni layer. BUT! There’s no need to detach the tiny ribbon at the very top.

    Once that’s done, we can reattach the touchscreen’s control board to the back of the screen and add the second Pimoroni frame layer. Next, we reattach the Raspberry Pi 4 to the back of the touchscreen’s control board and reconnect the two with the ribbon cable and black/red power cables (as we did in the first build). Before we add the third and final Pimoroni layer, we need to add the feet: push each foot’s mounting ‘hook’ into the corresponding hole on the frame and slide downwards. The four supplied plastic screws hold the frame and feet together. (More detailed instructions can be seen here). This is the result:

    When building the RoPieee Touchscreen Pi, we discovered that powering the touchscreen’s control board and the Raspberry Pi from one power source resulted in an underpowered Pi. We solved this by separately powering the screen and the Pi via their respective microUSB and USB-C sockets. This means we can do away with the red and black power cables that can be annoying to tuck away tidily. I also added a JustBoom S/PDIF HAT board to show what’s possible from the Pimoroni frame case (that wasn’t with the Digitalrise case). This HAT is essential if the downstream DAC has only coaxial and/or TOSLINK inputs and no USB. Well, almost essential — we’ll come back to that but here’s what our finished hardware looks like:

    Software

    Now it’s time to download Volumio OS from the Italy company’s website. Like RoPieee, this is a free download. Unlike RoPieee, Volumio charges on a subscription basis to add ‘Premium’ features such as multiroom, native streaming for Qobuz and Tidal plus Tidal Connect and the Italian company’s new Manifest UI. Premium pricing clocks in at around €6/month but the first 15 days are free.

    We write Volumio OS to a microSD card using the Balena Etcher app before saying a big hello to a key advantage of mounting our Touchscreen Pi ‘inside’ an open-backed case: we don’t need to remove the case in order to gain access to the Pi’s microSD card slot. This makes trying out different operating systems that bit easier.

    Time to fire her up!

    Connect a 5V feed to the Touchscreen’s microUSB socket and a separate 5V feed to the Pi 4’s USB-C socket. If we’re connecting the Pi to a USB DAC, now is the time to make that connection so that Volumio can ‘see’ the DAC when it first boots and we can select it as an output device. DAC HAT or S/PDIF HAT users should select their model from the dropdown after turning on ‘I2S DAC’ in Volumio’s settings. It’s in here that we also install a selection of third-party plugins:

    • Spotify
    • Spotify Connect
    • AirPlay (Shairport)
    • Roon Bridge

    These are easy to find on the ‘Plugins’ page and should be installed one by one. Do so methodically and without haste. Make a cup of tea if necessary. It’s always a good idea to reboot the Volumio device after installing plugins. (I think) Tidal Connect is installed by default but only activated when logging into Volumio as a Premium user. Wondering how to do any of this? Inside a web browser running on the same network, click to volumio.local to access the Volumio web interface. If that doesn’t work, you’ll need to find your Pi’s IP address using an app like Fing and enter that into the web browser. Easiest of all: install the Volumio app to a smartphone and use its automatic device discovery.

    The plugin that handles the touchscreen interface is tucked away under the ‘User Interface’ tab. After a reboot, we will use that plugin’s settings panel to flip its output by 180 degrees (no more Mr. Upside Down!) and set any screen timeout values to taste. We should now be operational with the Pi Touchscreen running Volumio OS and ready to play some music. Click to this video for a more thorough detailing of Volumio’s user interface and settings panels.

    We activate the Pi as a Roon endpoint inside Roon but pressing play on music delivers a dose of disappointment. Volumio doesn’t do at all what RoPieee does so well: a Roon now playing screen. Music play but the Volumio screen will remain as is. That all changes when we punch in something from Spotify Connect. Presto: a touch-enabled ‘now playing’ screen! Ditto with Tidal Connect.

    Volumio also offers native support for Spotify and Tidal (and Qobuz). That means using the Volumio app (or Volumio web interface) to navigate our chosen streaming service. Browsing Spotify and Tidal in this way isn’t quite as elegant or visually rich as the Spotify or Tidal apps. This is why I remain a big fan of ‘Connect’-type services. They keep us inside the app we’d otherwise use when outside of the house, which then allows us to hand off the stream to the loudspeaker system with the click of a button as soon as we get back home. Qobuz users have Hobson’s Choice: native or nothing, which means bouncing between the Qobuz app (when outdoors) and the Volumio app (when back at home).

    The other big advantage that Volumio holds over RoPieee is UPnP streaming capabilities. We get a touch-enabled ‘now playing’ screen here too. Know that I almost never use UPnP. Why not? Gapless playback support as implemented by hardware manufacturers is too hit and miss and UPnP control apps – like Volumio – can’t get close to Roon’s spit and polish (or its Signal Path detailing). Then again, Volumio Premium isn’t quite as costly as Roon. And if you only use UPnP for local streams, Volumio is free. Pointing it at a local UPnP server will be a trivial matter for anyone finding the settings panel. Read: everyone.

    Squeezebox Server users will be please to learn that there is also a plugin that lends our Volumio-based Touchscreen Pi full Squeezebox functionality. For me, this is where the smart money lives as not even Roon can match the myriad modularity of Squeezebox Server’s back end: hello Mixcloud, SoundCloud, BBC radio, etc. Volumio also offers plugins for Mixcloud and Soundcloud playback.

    Remember: RoPieee gives us a touch-enabled ‘now playing’ screen to Roon and nothing else, save the large date/time screensaver which I would dearly like to see added to Volumio.

    Let’s talk viewing angles. The official Raspberry Pi touchscreen’s is narrower than its 140-degree spec suggests and trounced by most tablets. Placing it at the right height and according to the supporting case backward’s lean is crucial to ocular satisfaction. Even more so with Volumio’s blown-up-n-blurred cover art backgrounds. The Digitalrise case’s slight backward puts the screen at its clearest when sat on a 50cm high side table. However, the Pimoroni frame’s shallower recline means it must sit lower in order to get the viewing angle right for the listening position. I put mine atop a Mytek Brooklyn+ DAC on the middle shelf of a hi-fi rack but it’s still not low enough. At 15cm, the bottom rack shelf proved even better but not enough to keep me from reverting to the Digitalrise case, removing the JustBoom HAT in the process.

    I fed the Brooklyn+ DAC with a S/PDIF coaxial signal but it didn’t come from the JustBoom HAT piggybacking on the Pi. No, Sir. It came from an interceding Topping D10S (reviewed here) that converts the Pi’s USB output into coaxial (or TOSLINK). It also shows the audio stream’s sample rate on its orange glow display; that’s useful for bit-perfect obsessives. You can see it atop the Vinnie Rossi LIO in this photo:

    If you’re a Roon tragic – as I am – you’ll be hard-pressed to move from RoPieee’s singular expertise as a touch-enabled ‘now playing’ screen provider. However, if you don’t do Roon, or you favour UPnP, or you’re predominantly a Spotify user, Volumio pulls the same stunt across multiple platforms. And I thank readers for understanding that I supply this guide to setting up a Touchscreen Pi with Volumio but without any follow-up technical support. Go forth and try.

    Further information: Volumio

    Written by John

    John currently lives in Berlin where he creates videos and podcasts for Darko.Audio. He has previously contributed to 6moons, TONEAudio, AudioStream and Stereophile.

    Darko.Audio is a member of EISA.

    Follow John on YouTube or Instagram

    KIH #98 – The Inbetweeners