Nov 2018

Music Streamer

I've been considering a digital music server/streamer project for some time.

My thinking, being along the lines of, a Single Board Computer (SBC) with Network Attached Storage (NAS) and i2s output from the SBC to my PS Audio Stellar DAC/Pre Amp. This combination would take
the USB and SPDIF Bus's out of the music chain altogether and just use i2s and wired Gigabit Ethernet. The more I researched, the more I realized, this is a huge and complex subject, with many, many options in both software and hardware. The Forum threads are numerous, but not many are specific to my project. It seems the only way to prove the combination works, is to dive in and try assembling all the elements, solving issues along the way. I'm not even sure a SBC is up to the Job, lots of people have used them as music streamers, but I want a good interface, with quality output over i2s, which is not achieved by using a cheap HAT DAC. A HAT is an additional board that plugs into and sits on top of, a SBC through its 40 pin General Purpose Input Output (GPIO) connector.
The learning curve will be steep on this project, SBC's generally use lightweight forms of the Linux Operating System (OS), which is similar to Unix, it's 30 years since I last used that. Setting up a home Network is new to me and deciding which audio player software to use and getting it to integrate with my Web streaming service (Qobuz), is going to be a challenge.

OK, so lets kick off with, which SBC ?

I looked at the specs and popularity of various models, the OS options and Application Software (Apps) available for each and came up with two alternatives. The latest Raspberry Pie (RPi) model 3B+ and the Odroid C2. I favoured the C2 over its more powerful big brother, the XU4, mainly because of its cooling issues, I don't want to use the active cooling Fan and there are rumors that the optional passive heat sink isn't up to the job in a confined space. Here's a comparison of the two models, for the features I feel are important in a music streamer. Note, I'll only be using USB for adding communication devices, keyboards etc so USB 2.0 is fast enough for my needs.

* Available as external add-on modules through the USB ports.
   Magna Hifi sell an RPi based Music Streamer, they chose the RPi2 in preference to the RPi3.
   This was because, they considered having the wifi transmitters on the PCB (RPi3), inside a metal
   case, would:

   A). Reduce the transmission range.
   B). Bounce signals around inside the case and be a source of interference.
   So they went with the RPi2, which uses external USB modules, like the C2 does.

   As a piece of hardware, the Odroid C2 wins hands down, it's a considerably better spec'd unit.
   There is however, a bigger user base for the RPi, so in theory a bigger support network. The reality is that the majority of these users are not involved with high end audio use. The Odroid Forum has surprisingly good technical input and the company also gets involved in answering questions. I found more info about exporting i2s audio to an external DAC for the C2, than for the RPi, it was certainly easier to find something useful relating to the subject. There is a 95 page PDF manual for the C2 and it uses a popular flavour of the Linux OS, which means there is a good selection of Apps for it.
So my decision is to go with the Odroid C2.

My C2 arrived, with the stock heat sink installed and a basic 2 Amp wall wart PSU. A popular modification, is to install the "Blue" heat sink from the much more demanding XU4. I always find the cooling on computer CPU's is marginal, so I went with this mod and ordered the Blue heat sink. It certainly wont do any harm to have the processor running slightly cooler. The heat sink fixing pins are in identical locations, but you have to cut off the top row of cooling fins for it to fit the C2, as pictured above.

A spot of heat sink compound on top of the processor and the heat sink upgrade dropped in nicely.

As stated earlier, this is all new to me, so I decided to proceed cautiously, one step at a time. First step was to get the unit up and running in a stock configuration. This would prove the hardware I had purchased worked, more complex tasks, like setting up the Network, could be tackled later.
I ordered a 128GB eMMC card, with Xubuntu pre-installed and ready to run. Ubuntu is one of the most popular Linux Operating System flavours and Xubuntu is a lightweight version of this. It may not be my final choice of OS, but it will get me up and running, with a Graphical User Interface (GUI) desktop, which should avoid too much in the way of command line, typed input. I need to get my head round some of the system basics before tackling anything more demanding. I also ordered a keyboard and mouse, both simple wired USB items, so as to avoid having to install additional wireless drivers. I have a 21" HDMI monitor off an old desk top PC, which should get me started. I'm hoping this arrangement will fire up out of the box.
We shall see!

Power was applied to the board and it fired up, without a hitch.
I entered the default password and it launched a GUI with Windows style desk top, that allowed me to explore the file system and open the included utilities, such as a word processor.
I had already tested the new Keyboard and mouse on my laptop, so I knew they worked in advance. The monitor had been in storage for a couple of years, so it was nice to see it spark up, Auto detect the HDMI input and display an image, I didn't even have to adjust the resolution.
So, an eMMC disk with pre loaded Xubuntu OS, really will work straight out of the box. No command line input or changes to the configuration were required for it to launch the desktop - "Simples".

The basic hardware/software works, I now need to configure a custom set up, tailored for a music streamer - Not so simple.

I will flash the eMMC card with a different OS, which will be a minimal version of Ubuntu, without a GUI, it will be command line typed entry for any system changes. I also need to connect the C2 to the Internet for some App downloads and system updates/add on's. So I ordered a 15m cat6 (Gigabit) Ethernet cable and a Transcend USB card adapter. My Moddem/Hub is upstairs at the Back and the Hifi is downstairs at the Front, so a min 13.5m of cable is needed. I don't want to use wifi, a cable link will be faster, have better stability and higher resistance to interference. The card adapter will plug into my laptop and allow me to download the new OS and transfer it to the eMMC card.
Why no OS GUI ? I want the Streamer to boot up and launch the Music Player + front end App when power is applied. I believe the front end App has its own simpler GUI and I don't need a full desktop with office tools on a Streamer.
I've done a fair amount of reading and asked a few pertinent questions on the Odroid Forum, so I believe all of this is theoretically possible, I just need to work out how to implement it all.