Asynchronous I2S FIFO project, an ultimate weapon to fight the jitter

Member
Joined 2008
Paid Member
Ian

I’ve only just begun to explore new digital options and also have a large CD collection with no interest in ripping them.

I have a Shigaclone with only spdif output and was interested in Ryan’s D3 tda1541 board which requires either I2S or Simultaneous input. As such I need a receiver in between and like others have only come across a few spdif to I2S receivers.

Any chance your receiver pi could take the spdif input and put out simultaneous? Ryan recommended it over I2S.
 
Ian

I’ve only just begun to explore new digital options and also have a large CD collection with no interest in ripping them.

I have a Shigaclone with only spdif output and was interested in Ryan’s D3 tda1541 board which requires either I2S or Simultaneous input. As such I need a receiver in between and like others have only come across a few spdif to I2S receivers.

Any chance your receiver pi could take the spdif input and put out simultaneous? Ryan recommended it over I2S.

ReceiverPi generates I2S signal. If you need simultaneous signals for TDA1541, you can use PCM board after ReceiverPi.

For best possible sound quality, I would recommend ReceiverPi + FifiPi +PCM board solution for you.

Regards,
Ian
 
I like my RPi DAC HAT and FifoPi combinations.With low jitter XOs, good power supply and sync mode, I really enjoy the sound quality and couldn't help listening music with them everyday.

But for many years, I have huge CD collections. I miss then so much and want to listen to them on my RPi DAC system(No doubt true bit-perfect through S/PDIF). As well, I also have a lot of music sources that can be accessed from PC through a USB streamer, such as Foobar2000, Youtube, and many more.

So I decided to design a ReceiverPi to extent the ability of RPi DACs to access more music sources. It will be the first S/PDIF, external I2S/DSD interface board for RPi based audio applications.

Besides the music from RPi GPIO itself, ReceiverPi will have three additional music inputs:

1. Coaxial S/PDIF through RCA ( isolated, up to 192KHz)

2. Optical S/PDIF ( up to 192KHz ,of course isolated)

3. I2S/DSD input for external USB streamer and other digital music sources, up to 768KHz



ReceiverPi by Ian, on Flickr

I'd also like the ReceiverPi to have follow features:


. Low jitter and low noise design for better sound quality.

. Seamlessly integrated with FifoPi and ESS DAC HAT(sync mode) by installing between RPi and FifoPi or between RPi and DAC.

. Can automatically switch to S/PDIF if presents

. Can automatically switch to USB streamer when powered

. Can run RPi DACs even without a RPi (RPi free mode)

. Run ESS DAC HATs directly at sync/async mode even without FifoPi (light weight mode)

. Possible to have a control panel

. Reserved GPIO port for possible or user designed Linux/Web based software control

. optional independent DC power input

. Can be easily configured as S/PDIF FIFO by integrating with FifoPi and TransportPi

. DIY friendly and plug and play


I'm having the a finished prototype PCB now. I'm working on it. More update will be posted soon.

Ian
COOL! I wanted this for years xD
 
Something for Ian to possibly consider thinking about:
Turns out that AK4499 sounds better than Sabre dacs. For synchronous operation, they require clocks at half the frequency of Sabre chips.

In particular, even though DSD512 uses a 22.5MHz DSD clock, AK4499 still uses 22.5MHz MCLK for that mode. The problem is that reclocking circuitry such as is used by FIFO-Pi requires clocking at twice the maximum bit clock rate. 45/49MHz clocks are needed for use with DSD512.

Thus, to use AK4499 with FIFO_Pi would require dividing the existing MCLK by 2.

Maybe its getting close to the time to start thinking about allowing for a divide by 2 MCLK function so that AKM dac chips can be used too. Just a thought... :)
 
Something for Ian to possibly consider thinking about:
Turns out that AK4499 sounds better than Sabre dacs. For synchronous operation, they require clocks at half the frequency of Sabre chips.

In particular, even though DSD512 uses a 22.5MHz DSD clock, AK4499 still uses 22.5MHz MCLK for that mode. The problem is that reclocking circuitry such as is used by FIFO-Pi requires clocking at twice the maximum bit clock rate. 45/49MHz clocks are needed for use with DSD512.

Thus, to use AK4499 with FIFO_Pi would require dividing the existing MCLK by 2.

Maybe its getting close to the time to start thinking about allowing for a divide by 2 MCLK function so that AKM dac chips can be used too. Just a thought... :)

Hi MarkW4,

What gonna be happened if use 45/49 MHz as MCLK for AK4499? Or, if it's really in need, you can install 22/24 MHz XOs into FifoPi sockets. Am I right? Or there is something else I didn't get?

Designing an AK4499 HAC HAT could be a good idea if it really sounds better than ESS DACs.

Regards,
Ian
 
Or there is something else I didn't get?

Yes, IIUC, there is a problem if we use 22/24Mhz clocks in FIFO_Pi since if we want to play DSD512 we need to pass the 22.5Mhz DSD clock through the D-Flip Flop reclocker in FIFO_Pi before the I2S signals get sent to the dac chip. The D-FF clock needs to run at twice the maximum I2S signal to be reclocked. That means FIFO-Pi can't play DSD512 if fitted with 22/24MHz clocks, IIUC. However, for DSD512 we need MCLK for AK4499 to be 22MHz, so the MCLK signal from FIFO_Pi is going to be too fast. It has to be 45Mhz to pass DSD512 though the D-FF. It will have to be divided by two then in order to make a 22MHz MCLK for AK4499. I already looked at the circuit and that is the problem I found.

Designing an AK4499 HAC HAT could be a good idea if it really sounds better than ESS DACs.

It definitely does sound better. It doesn't have the Sabre sound that one can never fully get rid of. I know other people who have heard AK4499 too and say the same thing, including a professional reviewer and audio design consultant in Japan. Of people in the US, Jam (who designed the Pass Labs HPA-1) lives near here and he has heard AK4499. He says its better than any Sabre dac he has heard including Benchmark DAC-3. Maybe the best dac he has heard of any if we use HQplayer to do the upsampling and conversion to DSD512 ("ADSM-7 512+" Modulator and Closed Form filter).

However, there are some complexities to using it. AKM uses a particular voltage regulator scheme on AK4499 evaluation board. Don't know how much of that is necessary to get the best sound quality. Also, one has to be careful not to damage the dac chip with I/V opamps when the dac is powered off. They say to sequence the power for the opamps so dac low voltage supplies are switched on first and switched off last, or use zener protection diodes. Info is in the data sheet.

The other thing in the works to consider is that Rohm is working on a new high end (for them) dac chip which may support 1-bit DSD (maybe no remodulating of DSD, something that other dacs like Sabre and AK4499 have to do since they use multi-bit dac stages internally). That Rohm dac may be interesting if the design turns out to be successful.
 
Last edited:
Hi Ian,

I'm looking forward to the ReceiverPi. My only comment would be on the connector location. Is it possible to put them on the shorter edge?

If one wanted to stack it along with the Raspberry Pi, and put the stack in an enclosure, it would be better to have the connectors in the same direction as the Pi connectors and the XLR connectors from the other boards in the stack for mounting to the panel. Currently they face the same direction as the single ended RCAs. But something like the Optical connector is not easy to extend and move offboard like an RCA can be.

Cheers,
Stefan
 
Something for Ian to possibly consider thinking about:
Turns out that AK4499 sounds better than Sabre dacs. For synchronous operation, they require clocks at half the frequency of Sabre chips.

In particular, even though DSD512 uses a 22.5MHz DSD clock, AK4499 still uses 22.5MHz MCLK for that mode. The problem is that reclocking circuitry such as is used by FIFO-Pi requires clocking at twice the maximum bit clock rate. 45/49MHz clocks are needed for use with DSD512.

Thus, to use AK4499 with FIFO_Pi would require dividing the existing MCLK by 2.

Maybe its getting close to the time to start thinking about allowing for a divide by 2 MCLK function so that AKM dac chips can be used too. Just a thought... :)

For what it's worth I've been running my AK4490 & AK4493 DACs "overclocked" to 45/49MHz for several years with no issues, either audible or measurable.

I do this on purpose since I've found that the benefit from reclocking with D-Flip-Flops far outweighs the "risk" of running the chips OCed.
 
For what it's worth I've been running my AK4490 & AK4493 DACs "overclocked" to 45/49MHz for several years with no issues, either audible or measurable.

I do this on purpose since I've found that the benefit from reclocking with D-Flip-Flops far outweighs the "risk" of running the chips OCed.

Hi Dimdim,

Thank you for sharing. That's a good news.
As long as it works and good for sound quality, I don't care anything else.

Regards,
Ian
 
Dear Ian,

How can I connect windows USB to ReceiverPi ? Is ReceiverPi support USB audio class 2.0?
Or I need to use a USB to I2S adaptor to connect to ReceiverPi ?

Thanks!

@ Daniel,

You can connect USB streamer's I2S output directly to the ReceiverPi's external I2S/DSD input. There will be no limitation on USB streamer.

You can switch to USB streamer music either manually by jumper switch (can be on front panel) or automatically by USB streamer's power on signal.

Regards,
Ian
 
Hi Ian,

Can the ReceiverPi accept DoP DSD (DSD64) via coax input, and decode to DSD native in FIFOPi?

Thanks

@trung224,

Yes, that's correct.

ReceiverPi can accept DoP through coaxial/optical/extI2S, and then FifoPi will decode it into native DSD.

ReceiverPi can also accept native DSD through external I2S input.

Regards,
Ian
 
@ Daniel,

You can connect USB streamer's I2S output directly to the ReceiverPi's external I2S/DSD input. There will be no limitation on USB streamer.

You can switch to USB streamer music either manually by jumper switch (can be on front panel) or automatically by USB streamer's power on signal.

Regards,
Ian

So I need a USB DDC between Windows USB port and ReceiverPi?
 
hi Ian,

Do you have an option for spdif output? I only have spdif input dac.

thanks

tubo

@tubo

TransportPi will have three S/PDIF outputs

1. Digital transformer Isolated 75 ohm S/PDIF coaxial output in RCA
2. Direct driven 75 ohm S/PDIF coaxial output in RCA or BNC (for lower jitter, as long as FifoPi has built-in isolator)
3. Optical S/PDIF output

In addition, TransportPi will also have a LVDS I2S/DSD output in HDMI, as same as my HDMIpi.

So, it could be a pretty powerful digital music transport.

Regards,
Ian
 
For what it's worth I've been running my AK4490 & AK4493 DACs "overclocked" to 45/49MHz for several years with no issues, either audible or measurable.

I do this on purpose since I've found that the benefit from reclocking with D-Flip-Flops far outweighs the "risk" of running the chips OCed.

Tried it. Getting AK4499 to reliably play DSD512 and or DSD256 using 45/49MHz clocks is tricky. Also, it doesn't sound as good as using the specified 22/24MHz clocks. Distortion is audibly higher when overclocked, not a lot but I can definitely hear it using Neurochrome HP-1 and Audeze LCD-X.
 
@tubo

TransportPi will have three S/PDIF outputs

1. Digital transformer Isolated 75 ohm S/PDIF coaxial output in RCA
2. Direct driven 75 ohm S/PDIF coaxial output in RCA or BNC (for lower jitter, as long as FifoPi has built-in isolator)
3. Optical S/PDIF output

In addition, TransportPi will also have a LVDS I2S/DSD output in HDMI, as same as my HDMIpi.

So, it could be a pretty powerful digital music transport.

Regards,
Ian
it would be nice to add aes output.
and that there would be the possibility of the board working from 3.3v (Lifepo4 power).

With Best Regards.