IanCanada's Latest RPi GB Goodies Impressions... and your tweaks, mods and hints...

Top of page 8.

DocumentDownload/FifoPiUltimateManualV1.0.pdf at master * iancanada/DocumentDownload * GitHub


@ Greg Stewart. On the GPIO schematic, pin 4 shows 2 functions. Also on the DAC manual.

R58 and 59 are pads, no resistor installed, so they are pretty easy to find. I just installed a tiny wire across the pads, quick and easy.


FWIW, when I was using a DIYinHK USB to I2S board, I added a potato semi 74G374 octal FF to reclock I2S data, lr clock and bit clock. I used master clock to clock the FF. Haven't used that board in a while, but may resurrect it and give USB a try again, for same reason as bisesik, to get higher DSD frequencies. When I was doing this, I was using the DIYinHK board for PCM, but should work for DSD too.
I placed the 374 as close to the DAC I2S input pins as possible, wires were about 1 inch long.

Randy
 
I don't think I've seen anyone do this before, it turns out the NDK clocks fit perfectly in a sot23-6 adapter, which in turn solders right into Ian's crystek clock adapter.

I soldered clock right only the pads on the adapter. Then I put solder on the Ian's adapter pads, some solder in the sot23 adapter holes, heated and done.

Adapters were bought from ebay a while ago, I'm sure they are readily available.
 

Attachments

  • IMG_4075.jpg
    IMG_4075.jpg
    494.2 KB · Views: 623
  • IMG_4076.jpg
    IMG_4076.jpg
    786.8 KB · Views: 624
@Markw4
Mark (or anyone else who has connected an i2s to usb board to an ian DAC),
From previous posts, looks like you connected an I2SoverUSB directly to the DAC board, so seems like you removed the fifopi, and used master clock from the I2S board.
I already have a diyinhk usb to i2s board, and starting thinking about dusting off my audio ps and use it to drive usb to my existing usb/i2s board.

Hoping you could confirm how to connect up the usb/i2s board to the DAC.

Dac J1 signal
27 i2s data
28 i2s bclk
35 l/r clk
40 DSD/PCM

J6 u.fl masterclock

Thanks
Randy
 
@Markw4
Mark (or anyone else who has connected an i2s to usb board to an ian DAC),
From previous posts, looks like you connected an I2SoverUSB directly to the DAC board, so seems like you removed the fifopi, and used master clock from the I2S board.

I think it should be doable with or without FIFO_Pi. GPIO pins for I2S are the same with or without it. I would just recommend to keep I2S wires very short length. And try to use one ground wire per signal wire, ideally ground and signal wires twisted tightly together (unless maybe wires are too short to make that possible).

Also, I2SoverUSB can be configured to output 45/49MHz and 22/24MHz clock signals, one or the other or both at the same time. DSD512 is normally clocked at 22.5MHz, although HQplayer can also produce DSD512 at 24MHz.

Taking the example of 22.5MHz DSD512, clocking ES9038Q2M at 45Mhz would allow for synchronous operation, but only if jitter is low enough and I2S signals have fast enough rise-times. Chances of getting Sabre dacs to successfully work in synchronous mode is probably better if using FIFO_Pi. It does a good job generating very nice-looking I2S signals. OTOH, running wires around in between I2SoverUSB and the dac board will probably degrade signal quality enough for Sabre to fail synchronous mode locking, but maybe not. You could try it.
 
Last edited:
I think it should be doable with or without FIFO_Pi. GPIO pins for I2S are the same with or without it. I would just recommend to keep I2S wires very short length.

Also, I2SoverUSB can be configured to output 45/49MHz and 22/24MHz clock signals, one or the other or both at the same time. DSD512 is normally clocked at 22.5MHz, although HQplayer can also produce DSD512 at 24MHz.

Taking the example of 22.5MHz DSD512, clocking ES9038Q2M at 45Mhz would allow for synchronous operation, but only if jitter is low enough and I2S signals have fast enough rise-times. Chances of getting Sabre dacs to successfully work in synchronous mode is probably better if using FIFO_Pi. It does a good job generating very nice-looking I2S signals. OTOH, running wires around in between I2SoverUSB and the dac board will probably degrade signal quality enough for Sabre to fail synchronous mode locking, but maybe not. You could try it.


Great, thanks for the input, I starting thinking I'd want to use the fifopi so I can easily keep the controller too.

I figured out my previous pins were incorrect, should be
Dac J1 signal
12 bclk
35 l/r clk
40 data

I would remove the 45 MHz clock I have, and run a u.fl cable from the usb/i2s board to input the clock here. Need to make a little adapter.
 
The u.fl cable and adapter will likely degrade clock signal quality some (also depends how long the cable is), but you could try it both ways: I2SoverUSB as clock source, or use your existing clock.

I was thinking I should use the same 45 Mhz clock everywhere, but maybe it doesn't matter if the fifopi is running on a different clock since its designed to do that.
That also makes it easier, just have to hook up the three i2s signals then.

If I get motivated I'll make a little adapter and see how it sounds with one clock. I should be able to keep the cables short. These boards are small so its easier.

EDIT:
To be clear, I'm using the diyinhk USB to I2S board because I already have one.
It has a potato semi octal flip flop on a little adapter board wired to the i2s signals to reclock the i2s signal as they exit the board.
I'm going to wire from the adapter board to the ian fifopi

Thanks
Randy
 
Last edited:
The I²S connection was not intended to be used via cables, and most integrated circuits will not have the correct impedance for coaxial cables. As the impedance adaptation error, associate with the different line length, can cause difference of propagation delay between the clocks line and data line, this can result in synchronization problem between the SCK, WS and data signals, mainly at high sampling frequency and bitrate. As the I²S doesn't have any error detection mechanism, this can cause important decoding error.

I2S - Wikipedia
 
I'm not running i2s through a cable, its through really short wires. My bad for choice of language in previous post lol

If you're using a usb to i2s adapter, you're likely running i2s through wires. Unless your DAC is designed to accept your adapter, I know of DACs designed for Amanero boards.

pic

I was lazy, so just attached a link to a pic from when I had the usb/i2s adapter going through FF's to reclock to a soekris dac. Blue board is usb/is2, green board is dac and the vertical board between them has the FF.

I'll have to have longer wires on the fifopi because the pins are spaced farther apart. They are long enough to have to go twisted pair I think, these were so short it didn't matter.
 
Last edited:
Hi guys , just got my fifopi and Allo Shanti for my Pi4.I have a number of options dac wise and am looking for some input on connectivity. I can install the pi unit internally in either of the dacs or use Ian's hdmipi send and receive boards to allow the Pi to be mounted in it's own case. I am assuming that short direct I2S cables into the I2S header on the dac is the best method however I like the idea of having the Pi it's own case so my question is is their much difference in performance using the hdmipi boards compared to a direct I2s connection between fifopi and dac?
 
Which dtoverlay driver for >192k playback?


This has been bugging me for a while and I hope someone can help. I've been loving Ian's fifopi which is connected via I2S to a twisted pear 9028-based dual mono Dac but I have never managed to get native DSD to play without significant noise. Nor have I managed to get the DAC to be recognised as capable of playing anything above 192k. However, previously when I used USB connections I was able to play DSD up to 256 and much higher bitrate PCM. So...what gives?


I am assuming that as Ian's card should be able to play native DSD out to my DAC that the problem is the dtoverlay driver I'm using on the pi which is currently set to "rpi-dac"


I've had another go trying to sort this out over the last few days and I've found that the rpi-dac overlay is limited to 192k PCM and won't work for DSD...


Can anyone shed any light on this please?
Thanks,
Crom
 
Which dtoverlay driver for >192k playback?


This has been bugging me for a while and I hope someone can help. I've been loving Ian's fifopi which is connected via I2S to a twisted pear 9028-based dual mono Dac but I have never managed to get native DSD to play without significant noise. Nor have I managed to get the DAC to be recognised as capable of playing anything above 192k. However, previously when I used USB connections I was able to play DSD up to 256 and much higher bitrate PCM. So...what gives?


I am assuming that as Ian's card should be able to play native DSD out to my DAC that the problem is the dtoverlay driver I'm using on the pi which is currently set to "rpi-dac"


I've had another go trying to sort this out over the last few days and I've found that the rpi-dac overlay is limited to 192k PCM and won't work for DSD...


Can anyone shed any light on this please?
Thanks,
Crom

With a pi, you have to do DOP. Pi's don't support DSD, hence the noise.

I use
dtoverlay=hifiberry-dacplus

works with DOP up to 128. From what I understand, Pi's don't support higher than 128. Not sure what max PCM rate is, 384 maybe?
 
With a pi, you have to do DOP. Pi's don't support DSD, hence the noise.

I use
dtoverlay=hifiberry-dacplus

works with DOP up to 128. From what I understand, Pi's don't support higher than 128. Not sure what max PCM rate is, 384 maybe?


Gah, thanks Randy...so even though Ian's board supports all sorts of exciting format&bitrates, I'm being held back by the Pi...I didn't realise that, thanks! I will try hifiberry-dacplus.


In case it's of interest, I read earlier that the "Audiophonics ES9028/9038" is also worth trying...apparently it's dtoverlay=i-sabre-q2m
I'll try both and report back.
 
Gah, thanks Randy...so even though Ian's board supports all sorts of exciting format&bitrates, I'm being held back by the Pi...I didn't realise that, thanks! I will try hifiberry-dacplus.


In case it's of interest, I read earlier that the "Audiophonics ES9028/9038" is also worth trying...apparently it's dtoverlay=i-sabre-q2m
I'll try both and report back.

FYI, this blog by soundcheck does a good job explaining the Pi DSD limitations
soundcheck's - audio@vise: RaspBerry PI - The Audio Engine - Part 6 - DSD

BTW, I'm going to try connecting a USB/I2S-DSD converter to my Ian fifopi/dac to see how that sounds to get around the pi i2s limitation. I

Randy
 
Last edited: