• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Building an open embedded audio applicance.

For quite some time I have been interested in streaming direct from an embedded system to an Asynchronous DAC.

I did this many moons ago using a beaglebone, and later beaglebone black, but while the results were great - I was not entirely happy with the complexity. I basically had a custom kernel and ALSA modules. In short more than I was happy to share, and it took far more effort than the average Joe would care to undertake.

Recently however the folks behind Raspbian and especially Florian Meier with his contributions to I2S modules have made me take a much closer look at the raspberry pi - particularly "model B - revision 2". The addition of P5 and the newest Raspbian and Volumio builds make it possible to have an incredibly good I2S based music appliance by simply adding a great DAC - such as the Buffalo III-SE - which works perfectly - but you could just as well use any asynchronous I2S input DAC.

Using the raspberry pi with the B3SE is very simple. I have tested two scenarios - each with distinct advantages.

First pi -> DAC direct.

This is really simple:

just wire P5 to the DAC appropriately - as show in the attached picture. Pin 1 is indicated on the rpi by the square pin. And P5 is located right next to P1 (directly below with P1 oriented at the top).

The best news is once configured you can use the pi as an airplay receiver (with a mac) for audio (at 44.1khz) and as a direct audio appliance at up to 192/32bit sample rate (the limit of ALSA at the moment).

I have mine streaming directly from NAS (an ASUS RT-AC66U with a USB SSD drive) at up to 192Khz sounding superb! No complaints. The sound is incredible.

The second method I will introduce if there is enough interest.

Here is detail you will want if setting up Raspbian, or Volumio for B3SE.

make your /etc/modules file looks like this:

Code:
snd_soc_bcm2708
snd_soc_bcm2708_i2s
bcm2708_dmaengine
snd-soc-pcm1794a
snd_soc_rpi_dac

I am happy to help anyone who has any further questions on how to make it work.

You won't be disappointed with the results.

I have developed two different USB -> I2S modules, and I have yet to find any reason to use one of those over this much more direct approach. Especially for the Buffalo III-SE.

Cheers!
Russ
 

Attachments

  • Screenshot (1).png
    Screenshot (1).png
    4.8 KB · Views: 10,254
Last edited:
This is very interesting, could you elaborate on the jitter performance? The pi is known for having less than great jitter output.
Can the pi be powered from the 5v placid psu or should a separate psu be used for the pi?
 
Last edited:
This is really peculiar - just yesterday I was googling on how to use one of embedded systems (Raspberry or BeagleBone) with my BIIISE's, omitting PC and USB, and now here is Russ's post 🙂

Russ, did you try outputting DSD?

Thanks,
Fedor
 
It would be interesting to point volumio/runeaudio/raspbian developers to this thread so they could integrate the code Russ detailed above in the releases. This Way the users would not have to code anything, which can be quite daunting for most people, myself included!

Russ,many stability, gapless playback, pop sounds or noise issues?
 
What about jitter? Or ESS DPLL/ASRC will take care of that well?

Yes - indeed it takes care of it quite well.

In any case there is no reason the effective jitter should be worse than that introduced by a digital isolator (carrier frequency aliasing) or processor such as XMOS. You can also tweak kernel configuration to your liking.

In any case - it works and sounds great!
 
It would be interesting to point volumio/runeaudio/raspbian developers to this thread so they could integrate the code Russ detailed above in the releases. This Way the users would not have to code anything, which can be quite daunting for most people, myself included!

Russ,many stability, gapless playback, pop sounds or noise issues?

That's a great idea!

I have had some minor issues with using the device as a apple tv appliance, but none at all when streaming from NAS - even at 192khz. It works flawlessly and sounds superb.
 
I covered your first question earlier.

Yes - you can supply the pi from the P5 header. I would not necessarily use Placid. You will need to supply 700ma or so.

But if the p5 headed is connected to the dac board, then is power coming from there too?

This would be the simplest option but the pi might inject noise back to the b3se.

If not, then a simple 7805 for the pi should be enough right?
 
But if the p5 headed is connected to the dac board, then is power coming from there too?

This would be the simplest option but the pi might inject noise back to the b3se.

If not, then a simple 7805 for the pi should be enough right?

Any PS rated for > 1A *should* be just fine if properly heatsinked.

I have been powering mine through the usb connector as usual, but I am working on a board that will likely incorporate a 5V supply - as well as other goodies.
 
Any PS rated for > 1A *should* be just fine if properly heatsinked.

I have been powering mine through the usb connector as usual, but I am working on a board that will likely incorporate a 5V supply - as well as other goodies.

Will this board be available in the future?
Is it some sort of backplane board where all the other boards plug into? This would be really aweome!!!
 
Exciting stuff.

Hopefully this board will allow full control of some of the Buffalo DACs (in place of the unavailable AC2).

I have exciting news there too!

Look for another thread coming soon. I actually have something far better than AC2 already working. Brian and I are just finalizing the design.

Here is a teaser...
 

Attachments

  • ble1.png
    ble1.png
    74.8 KB · Views: 2,774
  • ble2.png
    ble2.png
    115.5 KB · Views: 2,731