A NOS 192/24 DAC with the PCM1794 (and WaveIO USB input)

Dimdim's Blog has a good post about the RPi I2S.

The article puts the finger on the sore spot with regards to using the RPi:

" .. So, the theory is sound and the RPi’s clock is not up to snuff by strict standards. What this means is that the RPi’s I2S output is not capable of “Hi End” audio transmission.."

The Kali board will not solve this native RPi clock issue. This is why the BBB (as it accepts a external MCL feed) has seen continual intrest over the last 2 years and works great as a NAA together with the HQPlayer/Roon combination as an embedded appliance for the DDDAC

My 2 cents:

But if one's not intrested in upsampling in HQplayer and prefers the convienence/free option of for example Volumio/Runaudio then the RPi/Kali combo seems like a great compromise.
 
Last edited:
Imagine there's only:

1. ARM processor
2. a DAC called "HiFiBerry DAC+"

Roon can talk to that ARM processor by means of "Roon Advanced Audio Transport"

"HiFiBerry DAC+" can also talk to that ARM processor.

"HiFiBerry DAC+" outputs the I2S that is buffered/squared/impedance optimised to drive I2S line towards DDDAC motherboard.

It appears there's no USB audio protocol used

That ARM processor is located on an Raspberry Pi PCB.

Nick
 
The article puts the finger on the sore spot
The Kali board will not solve this native RPi clock issue.

can you please explain that? I would suppose, that kali (or any other reclocker with a buffer) should solve the jitter / clock problems of the RPI. As long as the output from RPI is bitperfect (which should be the case).

I use Kali together with odroid C2 with great results, but was not able to compare to BBB setup yet...
 
can you please explain that? I would suppose, that kali (or any other reclocker with a buffer) should solve the jitter / clock problems of the RPI. As long as the output from RPI is bitperfect (which should be the case).

I use Kali together with odroid C2 with great results, but was not able to compare to BBB setup yet...

Hi, it's all in the article. The RPi's 19.2MHz crystal can not accuratly reproduce a 44.1KHz/48KHz familie bitrates. So some bits are not going to be recoverable by a reclocker later. To what extend this is audible depends, so I would not get to hung up about it.
 
Imagine there's only:

1. ARM processor
2. a DAC called "HiFiBerry DAC+"

Roon can talk to that ARM processor by means of "Roon Advanced Audio Transport"

"HiFiBerry DAC+" can also talk to that ARM processor.
Hello,
I'm pretty sure "HiFiBerry DAC+" can work only with Raspberry processor and is using RPi's internal i2s connectors.
I don't think Roon is doing anything special in this area.

By the way, best resource I read on RPi's i2s so far:
https://hifiduino.wordpress.com/2014/11/13/raspberry-pi-b-digital-audio/
 
Last edited:
Ok, I've given it some more thought & your right. I didn't know the Kali had a 4MB buffer. When we did a head to head comparision between the RPI and a BBB with a reclocker (Acko S03 board, without a buffer), the BBB was prefered. So maybe the Kali improves on this.The buffer should be able to overcome the jitter introduced by the RPi's 19.2MHz crystal not being able to accuratly reproduce a 44.1KHz/48KHz familie bitrate.

Sorry Doede for going off-topic.
 
So, would it be possible to use an I2S --> I2S reclocker to "improve" the I2S signal from the WaveIO? Or are there any other (better) USB --> I2S converter modules out there?

Ok, I made some progress. I got a Kali I2S reclocker(*) and installed this in between the WaveIO (isolated I2S) and the DDDAC:
  • I2S (BCK, LRCK and DATA) from WaveIO-I2S-out to Kali-I2S-in, and from Kali-I2S-out to DDDAC-I2S-in. I didn't use MCLK.
  • WaveIO-I2S-GND to Kali-GND
  • DDDAC-5V to Kali+5V and DDDAC-GND(digital) to Kali-0V (note that the old red DDDAC mainboard has 3.3 VDC, but I updated mine for 5 VDC like on the newer blue DDDAC boards)
  • The Kali-0V and Kali-GND are connected to each other on the Kali board, so the WaveIO-I2S-GND is connected to DDDAC-GND(digital).
  • DDDAC-5VDC to WaveIO-VDD (otherwise the WaveIO will not output anything on the isolated I2S, as described in the WaveIO manual).

So far my setup is very quick and dirty, but it seems to work fine! I haven't listened to it very carefully yet, though, so I can't comment on the sound quality yet.


(*) Note that the Kali board was designed as an add-on card for a RPi or similar single board computer (SBC). However, it does not depend on any drivers or hardware control from the SBC and therefore works fine with the WaveIO as an I2S input. The Kali receives the I2S signal from the WaveIO, buffers the data in memory, and sends the I2S data out to the DDDAC using a new clock, which is specified to less than 3ps jitter (!).
 
Eagerly awaiting your sound quality impressions mbrennwa.

Well... the Kali is promising; I can certainly understand the reports of more "realistic" sound reproduction with the Kali. But something is not yet right. I get a very faint crackle when music is playing. No crackling when music playback is stopped.

I had a very similar crackling when I upgraded my red-board DDDAC with the 1/2-clock delay, but didn't upgrade the Vdd from 3.3 V to 5.0 V. Back then, this was (seemingly) fixed by upping the Vdd to 5.0 V as on the newer blue boards. Mostly, anyway. I did get some crackling out of the blue a few months back, which magically went away after a while...

Since I was stealing the 5 V supply for the Kali from the DDDAC Vdd supply, I suspected I ran into a similar problem with the Vdd supply on the DDDAC. So I added a dedicated 5 V supply for the Kali, leaving the DDDAC Vdd alone. The crackling was still there, no change. If I revert to the standard WaveIO-DDDAC setup without the Kali, the crackling goes away. This might mean something is wrong with the Kali/setup, but I am not totally convinced. Something might be slightly wrong with my DDDAC, since it does have a "crackling history"...

Does anybody have any suggestions where to look and how to debug this?

Does anybody have a (blue!) DDDAC mainboard to spare that I could swap out with my old red mainboard, which is full of ugly modifications?
 
Last edited:
Do you think that using a different audio software/OS on the Rpi could solve the problem? Or the other remedy that was tried of using filter caps on top of the boards?

I don't use an RPi! My whole idea is about using an USB audio input (the WaveIO) instead of the RPi. I need to send the audio data to the DDDAC using a USB connection, not a computer newtwork / streaming set up. Like this:

Computer --> USB cable --> WaveIO USB to I2S converter --> Kali reclocker --> DDDAC
 
Do you think that using a different audio software/OS on the Rpi could solve the problem? Or the other remedy that was tried of using filter caps on top of the boards?

I've had problems with crackling/pops with different softwares on both RPI and BBB so I think that is a good thing to point out. On the BBB I had to use Botic to make it work, and the RPI has been flaky with different software. Moode seems to be the best alternative there ...

So far I has only been able to use the USB-input and would be really interested to see a complete 'step-by-step' on how to set up a streamer with I2S and the waveio/DDDAC ...
 
When you are tired of all this cracling/pops, buy a good streamer, hook it up to waveio and enjoy the dddac in all it's glory.

That would be wrong for me for at least two reasons. Firstly, I don't want (can't use) a streamer, as described in an earlier post. Secondly, I want to achieve lower jitter in the WaveIO-I2S-output using an I2S reclocker (Kali).
 
Last edited:
That would be wrong for me for at least two reasons. Firstly, I don't want (can't use) a streamer, as described in an earlier post. Secondly, I want to achieve lower jitter in the WaveIO-I2S-output using an I2S reclocker (Kali).

Not that I want you to do anything else; but isn't a streamer just another (simplified) computer? I mean; I could use a streamer like Sotm sms-200, RPI or BBB, all of witch have USB outputs, or I could hook up a mac mini or similar. The main difference would be how I control the music playback, as far as I can tell ... Just curious ... :)
 
Not that I want you to do anything else; but isn't a streamer just another (simplified) computer? I mean; I could use a streamer like Sotm sms-200, RPI or BBB, all of witch have USB outputs, or I could hook up a mac mini or similar. The main difference would be how I control the music playback, as far as I can tell ... Just curious ... :)

See post 6023.