Tag Archives: dac

Analogue Hi-Fi System with Raspberry Pi

Over the years my MP3 collection has been increasing in size but I didn’t have a good setup that would allow me to effortlessly listen to my MP3s on a quality system. I had a relatively decent Sony “micro Hi-Fi” system to which I could stream music from my laptop or phone via bluetooth or just plug a USB with music, but the bluetooth range was poor, the connection unreliable and navigating through music on a USB flash drive is not really a comfortable operation.

I recently decided to rip all of my CDs to MP3 and setup a system that would allow me to listen to them on a quality system and have a flexible way to control it.

The equipment that I already had is:

  1. QNAP TS-269 Pro NAS server. I use this server for many different things, and this includes a centralized library of MP3 music. My new setup would have to play music directly from the NAS so that my full collection can be accessed.
  2. An old analogue Pioneer A-656 amplifier plus a pair of old Sony speakers
  3. A local ethernet network (cables, switch)

After reviewing different available options, I decided to go for a system based on Raspberry Pi, the credit card-sized computer, running RuneOS. RuneOS is an Arch Linux based system that can act as a headless audio player, meaning that you don’t need a monitor and keyboard to control it, in other words it can be remotely controlled by clients running on different devices in a network, like laptops, smartphones and tablets around your home.

The following diagram from the RuneOS website describes my new setup:

runeos-how-it-works

The box labelled “rune audio” in my setup represents the Raspberry Pi computer running on RuneOS (Rune Audio).

So, I got me a Raspberry Pi 2, which can output audio in two ways:

  • analogue through a headphone jack
  • digital through HDMI

Since my amplifier is an analogue one, I couldn’t use the preferred digital output. On the other hand, almost all reference I found about the analogue RPi output suggest the usage of an external DAC (Digital-Analogue-Converter) since the internal DAC on the RPi is apparently not up to the task, i.e. it doesn’t produce sound of acceptable quality.

This means that I had to shop for an appropriate DAC. Fortunatelly, I found a thorough list of DACs specifically tailored for the RPi. Being from Serbia, I naturally chose the Raspy Play4 DAC for $39 (they ship worldwide). As they say:

“This add-on board features the PCM5122 DAC with excellent dynamic performance for audiophile-worthy reproduction of your favorite music, on a budget”

This is the Raspy Play4 alone:raspyplay4

And here it is connected to the Raspberry Pi:

rpi_raspyplay4

Now that I had all the hardware, I wanted to put it into a nice casing (although some may argue that the bare bone system looks very attractive too!). I opted for a Serbian designed casing called RaspyPlay4 Layerstyle. The design is open source so you can download it and cut your own case, or you can order from them directly (it costs around $10 without shipping).

This is what the box looks like once (almost) assembled:

rpi_raspyplay4_case

In order to complete the hardware setup, connect this little computer to the analogue amplifier using a standard RCA audio cable.

With the hardware setup complete, what remains to be done is to setup the software, which consists of flashing the Rune OS image on an SD card and configuring it. These steps are nicely documented on the Rune Audio site.

So, what did I get with this?

  • I got a system which can play my whole music collection from a NAS server in my home
  • The sound quality is great
  • I can control the music (playlists, volume, etc) from my laptop, smartphone or tablet
  • Rune Audio allows me to configure web radio stations, so I can listen to those too