RaspyFi/Volumio - Turn raspberry Pi into Audiophile audio Player

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi Mikelangeloz

One thing I am not clear on - is I2S supported on the BBB with Volumio at present? My board is due any day now, so would be nice!

I am using Pi and I2S and very impressed with the sound. Outperforms a tricked-out windows pc setup by a considerable margin.

Many thanks

Mark
 
I'm planning to use Pi (or later a more powerful embedded one) as a network player and only need digital output. Hifiberry Digi would be an easy option but availability is unsure. I'm ordering some PCBs so thought I could make my own simple board since driver support exist and I2S in general is familiar.

The problem is that I2S functionality on Pi is still not very clear for me after reading lots of posts, the information is so shattered. How should I configure my SPDIF-transmitter if I want to use RPi-DAC (or Hifiberry) drivers? I assume Pi is used as I2S master at least in RPi-DAC but where does the MCLK come from and what is the frequency? One option seems to be using BCK but isn't that 64xFs while PCM1794 requires at least 128x? There is also a place for an oscillator but MCLK needs to be synchronous, right? And what happens when Fs changes?

Schematic for Hifiberry is not available but as far as I know they use WM8804 and thats all I know and probably all I get.

And my intentions are not to copy the designs of other but to be able to use the provided drivers :) So if someone could point some info on that I would appreciate. It would be also nice to have them somewhere in one place, or if they are I didn't find.
 
I'm planning to use Pi (or later a more powerful embedded one) as a network player and only need digital output. Hifiberry Digi would be an easy option but availability is unsure. I'm ordering some PCBs so thought I could make my own simple board since driver support exist and I2S in general is familiar.

The problem is that I2S functionality on Pi is still not very clear for me after reading lots of posts, the information is so shattered. How should I configure my SPDIF-transmitter if I want to use RPi-DAC (or Hifiberry) drivers? I assume Pi is used as I2S master at least in RPi-DAC but where does the MCLK come from and what is the frequency? One option seems to be using BCK but isn't that 64xFs while PCM1794 requires at least 128x? There is also a place for an oscillator but MCLK needs to be synchronous, right? And what happens when Fs changes?

Schematic for Hifiberry is not available but as far as I know they use WM8804 and thats all I know and probably all I get.

And my intentions are not to copy the designs of other but to be able to use the provided drivers :) So if someone could point some info on that I would appreciate. It would be also nice to have them somewhere in one place, or if they are I didn't find.

As far as I can tell, there is no externally available master clock on the RPi. There is a master clock internally generated according to the datasheet on the Broadcom chip (Look for PCM_MCLK) You can only use DACs that do not need a Master clock such as the ESS DACs.
 
Well, RPi-DAC uses PCM1794 and Hifiberry Digi WM8804 which both need some kind of master clock. That's why I'm inquiring about the solutions. They both need integer multiple of Fs as MCLK and at least in PCM1794 it needs to be in sync with the I2S.

I need to check WM8804 more carefully, since it has PLL, if I could use it. Still I think I would need some information about the Fs in use and when it changes.
 
I'm using volumio with the rpi/i2s into a Doede pcm1794 dac, and I'm very happy. But Doede has a "motherboard" on which the dac(s) sit and do the i2s interfacing with the outside world, so you don't talk to the dac boards directly. I had a waveio fed from an eepc/mpdpup hooked up to it before. I think the sound is more detailed and dynamic using the rpi/i2s.
 
Well, RPi-DAC uses PCM1794 and Hifiberry Digi WM8804 which both need some kind of master clock. That's why I'm inquiring about the solutions. They both need integer multiple of Fs as MCLK and at least in PCM1794 it needs to be in sync with the I2S.

I need to check WM8804 more carefully, since it has PLL, if I could use it. Still I think I would need some information about the Fs in use and when it changes.

It is possible that the PCM1794 can operate at 64fs (can you trace the MCLK line to see where is it connected to?).

The WM8804 has a mode that generates its own clock.
 
It is possible that the PCM1794 can operate at 64fs (can you trace the MCLK line to see where is it connected to?).

The WM8804 has a mode that generates its own clock.

From the RPI-DAC website:

"

What about the SCLK signal on DAC chip?

Actually, DAC chips have an SCLK signal. This is the system clock needed to be provided so that the DAC can work.

The Raspberry Pi (RPi) does not provide such a signal, it outputs just the other I2S signals: LRCK, DATA and BCK, but not a system clock.

The benefit of using a PCM1794 is: it has internal PLLs and can generate the needed internal clocks using the SCLK signal as reference for the internal PLLs.

The PCM1794A works well if the SCLK signal is connected with the BCK signal which is done on the RPi-DAC board via a jumper (SCLK is BCK).

"
 
From the RPI-DAC website:

"

What about the SCLK signal on DAC chip?

Actually, DAC chips have an SCLK signal. This is the system clock needed to be provided so that the DAC can work.

The Raspberry Pi (RPi) does not provide such a signal, it outputs just the other I2S signals: LRCK, DATA and BCK, but not a system clock.

The benefit of using a PCM1794 is: it has internal PLLs and can generate the needed internal clocks using the SCLK signal as reference for the internal PLLs.

The PCM1794A works well if the SCLK signal is connected with the BCK signal which is done on the RPi-DAC board via a jumper (SCLK is BCK).

"

Thanks, that's what I was also interpreting from the PCB layout. However, I still don't buy it completely. There is no mention of PLL in PCM1794 datasheet, only that it requires system clock of integer multiple of Fs and at least 128x, and that it has autodetect for that. After all, I am sure it works since people are using it :)

But for my requirement, as I only need a digital output and thus SPDIF-transmitter with PLL to generate the clocks, WM8804 seems to be the way to go.
 
Ok, it seems I cannot do it without writing some of my own RPi code (a no go) or without knowing how to plug the WM8804 since it is using I2C (and some other?) connections from Raspberry Pi. I could try just connecting it... or just wait till I can get Hifiberry Digi or that someone let me know how to connect it to use the same driver.
 
I'm using volumio with the rpi/i2s into a Doede pcm1794 dac, and I'm very happy. But Doede has a "motherboard" on which the dac(s) sit and do the i2s interfacing with the outside world, so you don't talk to the dac boards directly. I had a waveio fed from an eepc/mpdpup hooked up to it before. I think the sound is more detailed and dynamic using the rpi/i2s.

Could you please provide the pinout for how you connected the rpi to the DDDAC motherboard?

Did you just load the volumiobeta1.2 SD image, or was there more to it?

I'd like to give this a try, thanks.
 
Could you please provide the pinout for how you connected the rpi to the DDDAC motherboard?

Did you just load the volumiobeta1.2 SD image, or was there more to it?
Hi. I connected from rpi's P5 to doede's waveio connector:

P5 Doede's _____________WaveIO header
3 PCM_CLK ------------------------ BCK
4 PCM_FS ---------------------------LRC
6 PCM_DOUT ----------------------DATA
7 GND ------------------------------- Any of the GNDs

I'm using volumio 1.2b. When I used it connected like the above and with the Mudorf caps for output I found it sounded with lots of detail and dynamics but harsh (metallic or overly bright?). I replaced the Mundorf caps with Lundhal LL1684 I was using in my Buffalo iiise configured as described by Doede in his thread and the sound is much nicer.

I'm feeding the rpi with a diyinhk regulator (5v). Good power to the rpi cleaned up the sound.

The pi's only connections are ethernet and power. I'm waiting for the wireless dongle to test it (Tracking down noise sources on a Raspberry Pi | Crazy Audio).

I mount a samba share from one of my other computers in the house for the music.

I installed volumio. Configured it for static ip, mounted the remote and enabled i2s from the volumio webgui. Then I hand edited the /etc/modules file and put Russ White's (http://www.diyaudio.com/forums/twis...en-embedded-audio-applicance.html#post3806457) list of modules (replacing whatever the webgui had put there):

snd_soc_bcm2708
snd_soc_bcm2708_i2s
bcm2708_dmaengine
snd-soc-pcm1794a
snd_soc_rpi_dac

However, "snd_soc_bcm2708" is not found anywhere in the distribution, so I commented it out and it still works.

Check out Doede's dac thread (http://www.diyaudio.com/forums/digi...-nos-192-24-dac-pcm1794-waveio-usb-input.html) and search for my name and you'll see my comments on the setup.

Check Russ White's thread above for their plans for a reclocker/isolator for the beaglebone black. Looks like the beaglebone black will be a better bet in the future, but for now there's no ready i2s output from it.

Hope this helps.
 
Last edited:
Hi Palmito,
Do I need to edit these
snd_soc_bcm2708
snd_soc_bcm2708_i2s
bcm2708_dmaengine
snd-soc-pcm1794a
snd_soc_rpi_dac

If I am going to use the ESS9023 DAC ? Or Which module I need for the 9023?

Thanks
I have not tested a 9023.

I would use the setup I mentioned above for starters, I assume if it worked for the 9018 it will work for 9023? Russ' /etc/module setup above was tested on his buffalo iiise. Remember the rpi doesn't have mck ouptput, so the 9023 has to have a clock - can't be like the diyinhk which comes without a clock and assumes you will supplying an external one (it does have the pads for the on-board clock but you have to put it in).
 
I have not tested a 9023.

I would use the setup I mentioned above for starters, I assume if it worked for the 9018 it will work for 9023? Russ' /etc/module setup above was tested on his buffalo iiise. Remember the rpi doesn't have mck ouptput, so the 9023 has to have a clock - can't be like the diyinhk which comes without a clock and assumes you will supplying an external one (it does have the pads for the on-board clock but you have to put it in).

Yes, I am using a 50mhz crystal as onboard clock.
 
Hope this helps.

Very much, thanks. This is exactly what I was after. Your experience is very encouraging. I'll make sure to use a HQ 5Vdc source.
Interesting to read the Mundorf’s, made the high’s turn more detailed dynamics but harsh. These caps are very highly regarded so I'd question they are the root cause. Maybe some HF harmonics are at play here. Doede has made provision on the new mainboard for a small HF filter cap, that might be worth a try.
 
Btw, it’s counter intuitive to me that Wifi would create less interference then Ethernet. I’m currently putting as much distance between wireless transmitters and my audio equipment as they create audible interference in my system. I’m curious to learn what your experience will be with the Wifi dongle. If the Rpi has inherently noisy Ethernet, then this might not be the right platform in the long run, for an embedded set-up.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.