mini Streamer/DAC Project Build

Here's a new mini streamer/DAC project I recently completed. It's currently being used in my shop and I'm listening to as I write this. I wanted this project to include subsystems I already owned, but weren't using. For the past year or so, I've been using RaspPis and DAC HATs configured as roon end-points, so I've gotten a fair bit of experience getting these DAC/streamers up and running. But, I wanted something more contained with all cables coming off the back panel rather than 3 sides of most RPi setups. From a software standpoind, I've been a big fan for over a year now of the roon digital audio, whole-house streaming eco-system. This software is a pleasure to use. Once you have your digital library online (NAS), and capable roon server hardware, you're ready to go. Plus, it's pretty painless to configure and get it up and running too. Roon allows you to purchase their customized back-end server, that runs on a variety of hardware platforms. It also has what they call end-points. These are streamers and DACs that play the music from your network. If you build you own end-point (like this project), also available is 'roon Bridge' which will configure the end-point(SBC) running Linux to work with roon Server. Another Linux solution for an end-point is to use DietPi. It offers an option to automatically configure 'roon Bridge' with from a single software selection.

This project is a hybrid of hardware/software subsystems matched to provide a very small footprint that can be used wherever you have an amp, speakers and network access. It can easily be setup using a USB WiFi dongle for access as well, if you'd rather go that route. You'll see how I've mixed and matched the various hardware systems below. Now that I have a fully assembled unit, I thought I would share the project with the DIY community. The following are the individual hardware/software pieces I used and necessary links.

Hardware:

(1) For the DAC I chose a Toneboard (TB) from Khadas. This little DAC is based on the Sabre, ESS9038Q2M chip, and has been designed well, and provides excellent sound for only $99USD. It can be used as a stand-alone DAC with USB, or coaxial input. I'm using the 'generic' version, but I ended up soldering an extended 40-pin header to it as it was a prototype for using their SBC (VIM 2) - which I am not using at the moment. The 40-pin header is not needed for this project.

https://www.khadas.com/tone

(2) As I wanted streaming capabilities, I need to pair the DAC with an SBC that had ethernet capability and USB. I could have used I2S, but opted not to for this streamer. Besides, the USB-in on the TB DAC uses the well-known XMOS chip so you're getting a well-established interface from the get-go. The SBC I chose was the NanoPi NEO2. This little guy has a very small form-factor and works perfectly for this project. It has all the necessary elements required for streaming duty. The following link is to the newer 'black' version than the one I had (a couple years old), but is essentially the same PCB using Allwinner’s 64-bit H5 quad-core SoC (ARM Cortex-A53) SoC. The NanoPi Neo2 costs $20USD. More information can be found here;
http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2

https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=273

As you can see from the web-page for the NEO2 there are a couple extra parts I used, and you may find them there to purchase along with the SBC.

(3) Since I was going for a complete, single and fully self-contained unit, I needed a suitable and reasonably attractive looking enclosure that could house both the SBC and DAC, and still looking good sitting in a rack, or shelf. So, I had remembered a year or so ago, FriendlyELEC was having a sale on an enclosure that was designed for a single 2.5" harddrive NAS box, using the NEO2 SBC. At the time, I was intrigued enough to buy one as they were only $12USD for the PCB and aluminum case! Quite the bargain I thought. In addition, it was specifically deigned for the NEO2 form factor and connectors! Voila. I had a solution. Now if I could get everything to fit into the case, along with a minor amount of modding - necessary for the DAC and some RCA jacks on the back panel. You simply plug the NanoPi into the dock and you're ready to go. You get a 12VDC power jack, an extra USB (2.0) port and an on/off switch. If you don't have a suitable 12VDC PSU, you can purchase one for $10USD on their website. Here's the link to the enclosure.

https://www.friendlyarm.com/index.php?route=product/product&path=89_93&product_id=222

As of late Feb 2020, looks like they are still available on their site for $13USD each. A bargain even if you didn't get the included electronics that turns into a little NAS box. But we're not using it for that purpose. As I write this I'm testing a good 12VDC linear wall-wart from Jameco. This should help to improve the sound. I think it sounds better than an iFi PSU.

Software:

As I mentioned above, I chose to use roon as my digital streaming software. Actually, roon is a whole eco-system for digital streaming. However, with a little bit more effort and other software, you should be able to get any Linux version that runs Volumio, or Moode functioning as the MPD, if you setup a backend server like LMS (Logitech Media Server) to access a NAS library. I started out trying to get Volumio working with an LMS a couple years ago prior to discovering roon. It worked, but not reliably so I abandoned that approach. Now I use roon exclusively and have an Intel NUC running the server and end-points throughout my house. I will say roon is expensive at $600 now for a lifetime license/subscription. This offer may be going away at some point too. Now is the time to pop for it if you can. Here's the link to everything roon.

[COLOR="blue"]https://roonlabs.com/[/COLOR]

The second piece of software we'll be using is Dietpi. I discovered it a couple years ago, and if you like to play with SBCs and Linux, Dietpi is where all the action is. It's free to use and allows the Linux noobie like me to configure just about any kind of software/application using a menu system! And, it's available on just about every SoC SBC board on the market from Raspberry Pis to ARMs and other CPU based boards. Why is it important for this project? One of the options it provides is to turn your SBC into a roon end-point with about 3 keyboard strokes. Literally? It's that easy, so that's why I chose it for this ARM SBC end-point. I believe this is the correct/latest version of DietPi for the SBC (Cortex A35).

https://dietpi.com/downloads/testing/DietPi_NanoPiNEO2-ARMv8-Buster.7z

Attached below are some pictures of my build at various stages.
 

Attachments

  • SBC-2.jpg
    SBC-2.jpg
    411.2 KB · Views: 242
  • HighRes Generic TB.jpg
    HighRes Generic TB.jpg
    139.7 KB · Views: 256
  • NAS_PCB in Alum Case.jpg
    NAS_PCB in Alum Case.jpg
    599.7 KB · Views: 240
  • BP-Audio-1.jpg
    BP-Audio-1.jpg
    529.1 KB · Views: 109
  • PCB w-USB Cable-1.jpg
    PCB w-USB Cable-1.jpg
    626.9 KB · Views: 126
  • P1020114.jpg
    P1020114.jpg
    535 KB · Views: 231
  • Dock w-TB-2.jpg
    Dock w-TB-2.jpg
    515.1 KB · Views: 244
  • BP-4.jpg
    BP-4.jpg
    379.5 KB · Views: 92
  • PCB w-RCA Cables-2.jpg
    PCB w-RCA Cables-2.jpg
    450.3 KB · Views: 111
  • Strmr FP-2.jpg
    Strmr FP-2.jpg
    401.8 KB · Views: 107
Looks like a very nice project, and very well planned and executed. I am toying with a similar idea, using the Khadas Toneboard.

A few questions:
- Is there a "pop" noise when you turn on the device (assuming of course, that your amp is already on)? That's about the only complaint I have seen someone mentioning about the Khadas board.
- How is the NanoPi holding up? E.g. when you are indexing your library, I can imagine an RPi 4 would be a lot quicker.
- What's the boot-up time?
- And finally... how do you turn it on and off? Technically, it shouldn't be "cut off" from power... just like any other computer wouldn't like that. There are ways to run Linux in read-only mode, and with a couple of other tweaks, make it invulnerable to a "hard" power off. I have done that on my RPi where I am running piCore Linux.


'hope that's not too many questions :)
 
Looks like a very nice project, and very well planned and executed. I am toying with a similar idea, using the Khadas Toneboard.

A few questions:
- Is there a "pop" noise when you turn on the device (assuming of course, that your amp is already on)? That's about the only complaint I have seen someone mentioning about the Khadas board.
- How is the NanoPi holding up? E.g. when you are indexing your library, I can imagine an RPi 4 would be a lot quicker.
- What's the boot-up time?
- And finally... how do you turn it on and off? Technically, it shouldn't be "cut off" from power... just like any other computer wouldn't like that. There are ways to run Linux in read-only mode, and with a couple of other tweaks, make it invulnerable to a "hard" power off. I have done that on my RPi where I am running piCore Linux.


'hope that's not too many questions :)

Hi drtebi,

1) The only 'pop' noise I hear is a tiny little 'tick' sound when turning it on/off. However, I leave it on constantly, so that is not an ongoing issue. I have it running into a small integrated, DIY amp I built using an ICEPower class D module.

2) Keep in mind, the NanoPi is only used as a roon end-point. So, there's not a lot of processing going on. I have an Intel i3 NUC that acts as the back-end server, running roon's ROCK Linux app.

3) Boot-up time is around 40sec, give or take a couple. Since I leave it on this is not a problem. I have found no heat-related issues by leaving it on, and the case is barely warm.

4) See #3

Attached is a photo of the setup in one of my shops. Hope this helps.
 

Attachments

  • P1020158.jpg
    P1020158.jpg
    386.1 KB · Views: 56
Thank you for your answers. A small "tick" I can certainly live with.

Looks like a great setup. I may go a similar route, but I think I will use a raspberry Pi 4, since I am more familiar with those (I use Linux since 20 years :)). My idea is also to make it "self-efficient", e.g. add a small SSD drive or large memory card, so that I can use it where no internet is available.

Once I get into it... which may be months from now... I will post here about it.