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

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.

Thanks hifir,

It will work from either external 3.3V rail or from GPIO.

But I don't think there is space on PCB for AES XLR connector. You can use an adapter if you really need AES.

Regards,
Ian
 
Member
Joined 2003
Paid Member
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

Ian, any plans for ak4137 SRC board to put it between this board and FifoPi ? :) ...
 
Member
Joined 2018
Paid Member
Good afternoon. Hope we are all well.

Having read a lot of this thread I feel I am nearing a time to purchase a Fifo board.

I currently run ethernet>Rpi Volumio>isolator v2>ian dual dac>ivstd.

So I have room for improvement by adding a fifo board. But which one should I go for? Is it a no brainer just to choose the FifoUltimate. I currently dont listen to any DSD files. I stream from Spotify and I internet radios via Volumio. I may some day add an external hdd.

Does the ultimate NOT do anything that Ian's earlier fifo boards may do?

I'm not really sure what crystal speeds I need/ listen to. I use the up sampling option in Volumio. Currently set at the 700 something option, was at 300 something setting for a while too. I cant hear much change. The ess controller always seem to say 192k and 12Mhz if playing internet radio but drops to 44k for Spotify.

Any advice for this less experienced user appreciated.
 
Ian, any plans for ak4137 SRC board to put it between this board and FifoPi ? :) ...

If I had time to design an AK4137 HAT, I'll make it running in SYNC mode for even better sound quality:).

It's already on my list but I'm not sure when I have time.

BTW, just run DSD64 and DSD128 from ES9038Q2M dual mono DAC HAT in true SYNC mode with success. DPLL stopped completely. The sound is really amazing with new improvement!

I'll post the steps later.

Regards,
Ian
 
If I had time to design an AK4137 HAT, I'll make it running in SYNC mode for even better sound quality:).

It's already on my list but I'm not sure when I have time.

BTW, just run DSD64 and DSD128 from ES9038Q2M dual mono DAC HAT in true SYNC mode with success. DPLL stopped completely. The sound is really amazing with new improvement!

I'll post the steps later.

Regards,
Ian
+1
Well, ak4137 in SYNCH with ak4499 combo would be welcome then ... I think :)
 
ShieldPi V2

What are the new improvements

1. ShieldPi V2 has double shield layers. The two shield layers are independent from each other. Both of them are connected to GND through one point at GPIO.

2. ShieldPi V2 also has an open window for XOs of FifoPi. So that taller XOs such as Pulsar can be used with it. The open window also makes it possible to swap XOs without disassemble the RPi/DAC stack.That's really great for evaluating different clocks, or changing XOs for music according to personal preference.

3. ShieldPi V2 uses gold plated PCB for better high frequency performance.

4. Gold bars are available along the edges of ShieldPi V2 PCB. Additional shield materials can be soldered to the bars.

5. Optional DC input terminal block footprint is reserved. Power supply can be feed directly into the GPIO through this DC input (DC power doesn't go through shield layers).

6. It can also be used as GPIO extender.

I've tried many different kind of GPIO connectors, so for the best is P/N: SSQ-120-03-T-D
They can be sourced either from Digikey or from Mouser.

I'll make the ShieldPi V2 PCB for free if I get chance to open a new GB by the end of this year.

Ian

ShieldPiV2_2
by Ian, on Flickr



ShieldPiV2_3
by Ian, on Flickr



ShieldPiV2_1
by Ian, on Flickr
 
Last edited:
What are the new improvements

1. ShieldPi V2 has double shield layers. The two shield layers are independent from each other. Both of them are connected to GND through one point at GPIO.

2. ShieldPi V2 also has an open window for XOs of FifoPi. So that taller XOs such as Pulsar can be used with it. The open window also makes it possible to swap XOs without disassemble the RPi/DAC stack.That's really great for evaluating different clocks, or changing XOs for music according to personal preference.

3. ShieldPi V2 uses gold plated PCB for better high frequency performance.

4. Gold bars are available along the edges of ShieldPi V2 PCB. Additional shield materials can be soldered to the bars.

5. Optional DC input terminal block footprint is reserved. Power supply can be feed directly into the GPIO through this DC input (DC power doesn't go through shield layers).

6. It can also be used as GPIO extender.

I've tried many different kind of GPIO connectors, so for the best is P/N: SSQ-120-03-T-D
They can be sourced either from Digikey or from Mouser.

I'll make the ShieldPi V2 PCB for free if I get chance to open a new GB by the end of this year.

Ian

ShieldPiV2_2
by Ian, on Flickr



ShieldPiV2_3
by Ian, on Flickr



ShieldPiV2_1
by Ian, on Flickr

The ShieldPi should be designed with a grounding terminal to allow the user to externally connect to the ground, such as a separate grounding box. The grounding box can be replaced by a high quality speaker cable that is mainly made of copper.
 
Last edited:
GPIO I2S/DSD terminator for RPi

RaspberryPi GPIO port was originally designed for I/O signals. Its impedance is not constant and not continues. By comparing with good transmission lines such as u.fl coaxial cables, RPi GPIO is not really ideal for transmitting digital audio signals.

Reflections, ringing, overshoot, ground bounce, all these kinds of things could happen when digital audio signals are transmitted over RPi GPIO. They will not only degrade the jitter performance but also introduce additional noise to the DAC ground through digital audio signals.

Though it is impossible to match RPi GPIO impedance as good as coaxial cables, but we can still make some compensation to the GPIO pins to make things better in some degree. GPIO terminator was exactly designed for these propose.

With GPIO terminator being plugged into the last piece of the stack (normally the DAC HAT) , the digital audio signal quality will be slight improved and the overall noise fed into DAC from the GPIO digital audio signal and ground will be reduce in some degree.

The attached waveforms show the real measured eye diagram of a DSD128 signal that received at ES9038Q2M dual mono DAC end from a FifoPi. The first one was without GPIO terminator, while the second one was with the terminator.

Real test also indicates that with the GPIO terminator, under the same condition, DPLL of an ESS DAC is easier to be locked at lower bandwidth.

GPIO terminator works for all kinds of RPi audio applications that use GPIO for I2S.


GPIO I2S/DSD terminator

GPIOterminator2
by Ian, on Flickr

How to use the terminator

GPIOterminator1
by Ian, on Flickr

GPIO DSD128 signal without terminator

WithoutTerminator
by Ian, on Flickr

GPIO DSD128 signal with terminator installed

WithTerminator
by Ian, on Flickr

Ian
 
RaspberryPi GPIO port was originally designed for I/O signals. Its impedance is not constant and not continues. By comparing with good transmission lines such as u.fl coaxial cables, RPi GPIO is not really ideal for transmitting digital audio signals.

Reflections, ringing, overshoot, ground bounce, all these kinds of things could happen when digital audio signals are transmitted over RPi GPIO. They will not only degrade the jitter performance but also introduce additional noise to the DAC ground through digital audio signals.

Though it is impossible to match RPi GPIO impedance as good as coaxial cables, but we can still make some compensation to the GPIO pins to make things better in some degree. GPIO terminator was exactly designed for these propose.

With GPIO terminator being plugged into the last piece of the stack (normally the DAC HAT) , the digital audio signal quality will be slight improved and the overall noise fed into DAC from the GPIO digital audio signal and ground will be reduce in some degree.

Ian

Ian
Did you determine the optimum resistor value to use for the termination?
Although I wonder if it depends on your actual stack? Maybe just from the fifopi up.

Randy
 
RaspberryPi GPIO port was originally designed for I/O signals. Its impedance is not constant and not continues. By comparing with good transmission lines such as u.fl coaxial cables, RPi GPIO is not really ideal for transmitting digital audio signals.

Reflections, ringing, overshoot, ground bounce, all these kinds of things could happen when digital audio signals are transmitted over RPi GPIO. They will not only degrade the jitter performance but also introduce additional noise to the DAC ground through digital audio signals.

Though it is impossible to match RPi GPIO impedance as good as coaxial cables, but we can still make some compensation to the GPIO pins to make things better in some degree. GPIO terminator was exactly designed for these propose.

With GPIO terminator being plugged into the last piece of the stack (normally the DAC HAT) , the digital audio signal quality will be slight improved and the overall noise fed into DAC from the GPIO digital audio signal and ground will be reduce in some degree.

The attached waveforms show the real measured eye diagram of a DSD128 signal that received at ES9038Q2M dual mono DAC end from a FifoPi. The first one was without GPIO terminator, while the second one was with the terminator.

Real test also indicates that with the GPIO terminator, under the same condition, DPLL of an ESS DAC is easier to be locked at lower bandwidth.

GPIO terminator works for all kinds of RPi audio applications that use GPIO for I2S.


GPIO I2S/DSD terminator

GPIOterminator2
by Ian, on Flickr

How to use the terminator

GPIOterminator1
by Ian, on Flickr

GPIO DSD128 signal without terminator

WithoutTerminator
by Ian, on Flickr

GPIO DSD128 signal with terminator installed

WithTerminator
by Ian, on Flickr

Ian

Similar to RAC mask

20130207162706-1s.jpg
 
Nowadays, the global audio market is sluggish, and many audio manufacturers have long stopped research and development. The ES9038 chip has been published for several years, and many DAC manufacturers have not developed the ES9038 DAC. However, Ian has not been affected at all, and still works constantly, which is really admirable.
 
Hello ,

I just bought I2SoverUSB viii and want to connect to Fifopi . Can you help to let me know how to connect :

There are two modes of connection on I2SoverUSB (I2S like protocols on board oscillators and I2S like protocols with external MCLK ). Which one should I use ?

Thanks in advance .