Building a Raspberry Pi Roon end-point

geekery hifi

I learned recently that you can turn a Raspberry Pi into a networked DAC which can act as a Roon endpoint. I’ve always wanted to play with a Raspberry Pi so it seemed an ideal easy project to try it out, and also to replace the ageing Squeezebox player which I currently use as a Roon endpoint. I ordered all the bits and put it together on Sunday — it was fun and successful (the best kind of project)!

I’ve been a Roon user for quite a while now and love it. It is a great way to play high resolution audio files and streams, and it constantly makes interesting connections within my own collection, but also suggests new artists and albums that I end up enjoying. I run the core server on a small Intel NUC computer (you can read more about that here), which is connected to my main hifi in the living room. I can play the music in my collection via the Roon iOS app on my phone, but to play through decent speakers, I need another Roon endpoint which connects wirelessly with the core. I listen most often in my office, and was using an old Squeezebox attached to my powered speakers on the desk.

Since the speakers only have RCA inputs, I needed to build a DAC with the Raspberry Pi, running a specially-created operating system called RoPieee. This would enable the Pi to appear to Roon as an endpoint. There are quite a few boards available for the Raspberry Pi in ‘HAT’ form: these are boards which push onto the Pi’s GPIO pins so that no soldering is needed, and sit — like a hat — on top of the Pi. You can get DACs, digital boards that give you S/PDIF outputs or even amplifiers (if you have passive speakers). I went for a DAC that has some good reviews, and wasn’t too expensive: the HiFiBerry DAC+ Pro. Here’s the full list of components I used:

Putting it all together using the instructions on the RoPieee site was pretty easy.

It all works amazingly well. I think that sound is somewhat better quality than the old Squeezebox, and the unit is so tiny that it takes up barely any space on the desk. I also enabled the ‘XL’ version of RoPieee, which means I can use it for Airplay too, which is a bonus. There’s a slight annoyance involved in this which is that the current volume within the Roon player sets the upper limit for Airplay playback. In practice, this means that Airplay is far too quiet unless you go into Roon, set the volume to max, then go back into whatever you were playing in Airplay (remembering to set the Roon volume back to sane levels afterwards!) Since I don’t use this much, but it is handy on occasion, this is a reasonable work-around for me.

The Raspberry Pi is a beautiful, cheap, deceptively powerful and eminently hackable thing. I’ve got the bug now, and am thinking about adding a 7” touch screen to this setup for control and also display of the currently playing track (which is supported by RoPieee).