Raspberry Pi streamer -- tips, tricks, tactics

I finally dipped my toes in the water with obtaining and configuring a Raspberry Pi as a streamer for Roon.

I’ve used a Mac Mini, as well as Chromecast Audio dongles, and they both work great, but I’m always looking for improvements, like anyone else. (I do LOVE the CC dongles because you can easily group zones for parties, whole-house audio, etc, but their SQ is limited. Mac Mini’s are great, but many say they’re probably not optimal for sound, as is, they’re expensive to upgrade to make them so, plus they seem kinda like overkill.)

I’m an old guy, so I approached it with a bit of trepidation, but I figured it was a cheap enough, low-risk endeavor, so why not?

QUICK recap (skip if you don’t care)…

Bought Canakit rasp pi kit. 8GB kit that included pi, case, power supply, heat sinks, tiny fan, and 32 GB micro SD card for the OS. Approx $100.

Chose Ropieee OS (download) as it works seamlessly as Roon-ready endpoint. I chose the “XL” version as I use HQPlayer/NAA.

Used “Etcher” (download) to “flash” the disk image to the micro SD card. This sounds harder than it is, as it’s simply:

download Ropieee > download Etcher > open Etcher > select Ropieee OS bin file > choose destination (SD card) > click “Flash”… the Etcher app walks you through all this. Your SD card will now be loaded with the Ropieee OS.

Assemble Pi (stick on adhesive-backed heatsinks, attach fan, put in case, insert micro SD card, connect ethernet cable, connect power supply)

Connect Pi to a USB DAC

Find the Pi on your network (on a mac, use terminal with the “arp -a” command to find all the devices on your network, and you’ll see its ip address)

Open a browser on a computer on the same network, and enter that ip address. You’ll see the Pi’s management interface.

Enable HQPlayer if desired (there’s a tab on the web interface for it)

Open Roon, find the Pi as an audio zone.

Start streaming.

Anyway, it’s pretty easy. The software is free (though donations are appreciated).

I’ll take some time to test it and compare to my Mac Mini, and I’m also going to get the Pi2AES “hat” that plugs into the top of the Pi, and uses AES/SPDIF vs “noisy” USB. I don’t know that it will make much difference, as I’ve plugged the USB into my Matrix X-SPDIF 2, and it seems pretty darned good. But it’s all in the interest of science, right?

Anyway, anyone else here using a Pi for streaming? Just curious what you’ve discovered and what best practices you might have. Upgraded power supply? Some use batteries vs AC to clean up the signal. Any particular “hats” you’ve tried? Allo Signature, etc…?

4 Likes

Yes, though with different, er, everything to your choices:
RasPi 3b
HiFi Berry Digi Pro plus digital out (SPDIF and optical - my preference being optical)
Steel case to fit both the above.
Squeezelite and JvLite to do the playing and displaying (on a 4 inch “reversing screen” with analogue video input).
Ethernet connection (though I’ve used WiFi successfully too).
LMS server component running on a dedicated linux VM hosted on a Linux workstation in the other room,

Sounds great I must say :slight_smile:

1 Like

Thanks @terzinator! Nice write up and a good prompt. I’ve been toying with the idea of getting a RaspberryPi for a second system and this has given me the nudge to start looking again. I might even get crazy and add a touchscreen :slight_smile:

2 Likes

I set one up several years ago - now a bit dated. RPi 2b with a HiFiBerry DAC, and I use Volumio to control it (I can access my JRMC on my LAN, or stream from the net). This is on a second system and I have never bothered to put it in the main system to compare SQ and operation. I’ll wait for the long dark covid winter of discontent to try this out! :mask:

2 Likes

A few months ago I bought the 4g Labist Rpi4 kit. I struggled to find answers to very basic questions but eventually got there. I tried to use Runeaudio but it wasn’t stabilized for Rp4. Next I tried Volumio and while it too isn’t perfect, it works! I do feel it sounds better than my Mac Mini but it’s subtle.

I have my music on a Samsung ssd ( definitely faster than standard hard drive) and use usb 3.0 out to my Schiit Modius dac.

I can also easily stream Qobuz from the app to the pi.

2 Likes

Raspberry Pi 4 with 32Gb SD card, running RopieeeXL, a six inch long Wireworld USB cable directly into the Schiit Bifrost 2 Multibit. Constantly runs day in and day out without a hitch. It’s as stable as a rock.

If only I can get stupid Win 10 Pro to stop doing auto updates and auto reboots on the machine that Roon Core is on, I’ll be set. Microsoft is a royal PITA.

2 Likes

Mine’s working great into the X-SPDIF 2, but with a couple other DACs (without X-SPDIF 2) it’s not as happy.

TEAC UD-501: cuts out when upsampling using HQPlayer. I can use the filters and keep sample rate at 44.1, but if I upsample, it cuts out every couple of seconds.

Parasound HINT6 integrated built-in DAC: volume is super low. It’s maxed out on HQPlayer/Roon, and no way to turn it up. If the Parasound volume is maxed, it’s only at “normal listening volume.” There must be a setting somewhere I’m missing, but weird that volume is fine with mac mini on that USB input, and fine with the Rasp Pi into other DACs. :roll_eyes:

1 Like

This link on editing your update policy may be of use to you.

Trust me, I’ve done everything possible. Edited the registry, modified files and actions, all of the stuff “behind the scenes” if you will. And that’s along with all of the normal things to do within Windows.

Microsoft doesn’t care though. They simply override anything you do to the system to push their stupid updates through no matter what.

There’s hundreds of people online that have been constantly complaining about this, and because they rely heavily on their computers for processing data for days, weeks or months on end without interruptions, they end up losing a LOT of time, and in a lot of cases, losing money because of these stupid forced updates and reboots.

Roon ROCK is zero fuss. I too got tired of MS updates though I still use it to host music files I don’t run anything else on it. ROCK for the win!

I run it on an old 2014 mini PC, it need not be a NUC.

1 Like

RPI 3 and Hifiberry Dac+ has been running Ropieee for a year in my kitchen. No problems whatsoever - a bit unusual these days…

2 Likes

after a brief power outage mine got flaky, and couldn’t find it on the network, it kept rebooting, etc…

had to reflash the micro SD a few times, and eventually it booted fully and I was able to get it going again.

Could be that the SD card is going bad, which is what they’ve said on the Roon RoPieee subforum. Ordered a couple backup cards; they’re cheap enough.

Other than that, it’s working really good. If it’s better than the mac mini, well, it’s subtle., But it’s DEFINITELY got better SQ than the Chromecast Audio, as much as I love those little things.

I’m guessing the matrix X-SPDIF 2 is doing its job cleaning up the USB signal. I should test without. I tend to get impatient because I can’t always discern tiny changes, especially when I have to move cables around between tests. I’ll see if I can have two USB cables connected; one to the Matrix, one directly to the DAC, and try to switch the paths within Roon. Hmmm.

1 Like

The Linux-based OS can be corrupted, the boot sector specifically, by a non-graceful shutdown too. I like to keep a couple SD cards both loaded with the same working setup so that I have a recovery option if one fails or an update goes sideways.

3 Likes

one advantage of picore player (and other distros) is it loads into RAM and runs it from there, significantly reducing the risk of filesystem corruption. i often just flick the switch on the pi and no problems have ensued.

2 Likes

I flashed a new card (no errors) and installed it and it went without a hitch.

Chalking things up to a wonky card. :slight_smile:

1 Like

Here’s a handy utility log2ram for those builds that don’t work completely from ram. It moves /var/log to ram saving the poor SD card.

2 Likes

yeah that’s a good call :slight_smile:

1 Like

Here is my list of tweaks which in the end provided (relatively slightly and noticeable only after removal of B2 card from DS DAC) improved SQ in comparison to Bridge2 (also connected to network via galvanic isolation).

  • Power RPI with appropriate LPS (e.g. ideally 3A +)
    • Basically you do not want to have any switching power supply on audio power line
  • Do have Galvanically isolated Ethernet
    • Either PinkFaun ethernet isolator
    • Or Optical transceivers with LPSs (Linear Power Supplies)
    • not just to RPi, but to any device galvanically connected to your audio chain (like PowerPlant to ethernet)
  • Use Matrix Audio SPDIF2 or similar USB isolator + reclocker (however this one is most praised here)
    • Matrix Output module Powered by SuperCapacitor, which is powered by LPS (to make sure you have cleanest power on the most critical part)
    • USB needs Y-split cable - data from RPI , power from LPS (preferably filtered and ideally also on SuperCapacitor)
  • Use properly shielded USB and HDMI cables
    • eg. shield is connected only one one side!
    • basically applies to any shielded cable
  • Use RAM-loaded OS - like piCore linux
    • You can further optimize inside the OS, like:
      • Reduce RPI Voltages and Clocks, to reduce RFI you don’t have properly shielded RPI case
      • Update schedulers to FIFO + few other parameters and vm tweaks
      • Bind critical processes to separate CPU cores and all other processes to one “common” core, for example:
        • Roon Bridge processes on Core1
        • Roon RAAT process on Core2
        • UpNP process on Core2
        • All other processes (and eventually interrupts) on core3
          • And of course make sure only essential processes are running after boot
        • Set highest priority for audio-related processes, lower for supporting processes and default for all the rest
        • Set audio-processes attributes to real-time
      • Set network interface to static IP address
  • Remove all unnecessary galvanic connections from your audio system
    • Tip: if you have multiple digital sources (like TV, console etc) connected to audio chain, try to have them all connected via optical TOSLINK only (there are even manual optical switches available which doesn’t need power - best solution for me as i don’t mind SQ on such inputs much - although it actually doesn’t sound bad, it will inherently have some imperfections in optical interconnections)
1 Like

This looks to be one of the better implementations. I like the idea of the separate clean and dirty boards

I think I’m going to try this one and use in a second system with a border patrol SEi DAC

1 Like

@cudfoo I like allo DigiOne Signature too (very good SQ for considerably lower cost than my above i2s route), however:

  • it have only SPDIF output, e.g. not going to get DSD128
  • when i compared my friends DigiOne Signature with previous iteration of my current setup (Singxer F-1 instead of Matrix) , the Singxer route had just slight advantage in SQ over DigiOne , however Matrix is to my ears better than Singxer F1 (both I2S route do DS DAC). Needless to say that DigiOne had disadvantage in lower class SPDIF cable we used and not fancy SPDIF cable which been forgotten at other place :slight_smile:

With my friend we will be doing shootout between Matrix vs DigiOne (hopefully soon) so will post then.