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

Ian,

I have re-read all the manuals, but what I did not found was a hint for a clk select input, which I would need to integrate you Fifo or your clocks with the Beaglebone Black with Botic Drivers. Is there none or is it not needed ?

My amateur understanding:
-We want the best i2s quality. The BBB is capable of using external Masterclock as an input, your clock can out the masterclock, all good.
- Nevertheless, the BBB need to tell your clock which frequency he expects to get, therefore there is a clock select output from the BBB, which acko uses in his S03-board http://www.diyaudio.com/forums/atta...ro-isolator-reclocker-gb-akl-amn-s03-bbb2.png, so we need a clk sel input somewhere in theory at your fifo or the clockboards, right ?

As I own three of your fifos and four of you clockboatds, I would like to use them to integrate them with the BBB and not use the internal clocking of the BBB as that is set only right for 48khz and is anyhow not at the same quality, plus it has been reported using the same clocks brings audible advantages...
 
Ian,

I have re-read all the manuals, but what I did not found was a hint for a clk select input, which I would need to integrate you Fifo or your clocks with the Beaglebone Black with Botic Drivers. Is there none or is it not needed ?

My amateur understanding:
-We want the best i2s quality. The BBB is capable of using external Masterclock as an input, your clock can out the masterclock, all good.
- Nevertheless, the BBB need to tell your clock which frequency he expects to get, therefore there is a clock select output from the BBB, which acko uses in his S03-board http://www.diyaudio.com/forums/atta...ro-isolator-reclocker-gb-akl-amn-s03-bbb2.png, so we need a clk sel input somewhere in theory at your fifo or the clockboards, right ?

As I own three of your fifos and four of you clockboatds, I would like to use them to integrate them with the BBB and not use the internal clocking of the BBB as that is set only right for 48khz and is anyhow not at the same quality, plus it has been reported using the same clocks brings audible advantages...

Hi Blitz,

I have a BBB. Can you please let me know which software do you use for this slave mode playing back?

Dual XO II might be possible for this job, but I have to do some test to figure out how to pass the control signal.

Regards,
Ian
 
Is there any risk of digital ground loop because the MCL link would be above the Isolator (gnd direct between the BBB and clock board, so no isolation anymore ?)

Could be fun if so to look at if the good Odroid C1+ (because it's above 192 K Hz layout behavior) can be slavered as well :)
 
Hi Ian

Are you saying that bit errors are not just old wives tales then? :)

As the FIFO is the last down the chain of software player/ OS/ spdif/ usb / Rpi/etc, may i suggest a feature for the next edition?

An algo checking the entire chain is bit perfect. Say you short a jumper and the processor gets into testing mode. A test file, or files for various sampling rates and dsd is played at the source and the FIFO lights an LED indicating a correct checksum. Shouldn't be hard to implement.

What do you think? One less worry in a poor audiophile's life :D

If one is happy with checking just pcm up to 192kHz, a small board with a tranceiver chip should suffice. Convert the i2s from the fifo output to spdif, loop it back into a PC and voila, you can do bit comparisons. But it is work :)

Hi analog_sa,

That's a very good idea.

Actually I did this to every FIFO KIT on my test fixtures when I was doing finial test before shipment.

I designed two FPGA based test fixtures with built in I2S testing pattern generator,I2S receiver and error detector.

One is 32bit for FIFO KIT I2S loop test, the other is 24bit for FIFO KIT S/PDIF loop test (has S/PDIF board in system). If any bit was wrong during test, error indication LEDs with be lit.

To extent this testing chain to with audio file - player - driver .. included, we need a testing patter .way file. With it we can do bit perfect test to whole system rather than FIFO only.

I can do this test right now if we can record my testing pattern digitally into a .wav file. Either in 32bit from I2S or in 24bit from S/PDIF

I'll take it into consideration to see if I can include this bit perfect testing feature into my new multi-channel I2S/DSD FIFO project.

An alternative way to achieve this kind of bit perfect test is to play a dts file, if the DTS light on the receiver which is placed at the end of the digital audio chain is lit, bit perfect will be confirmed.

Thanks again for your good idea.

Regards,
Ian
 
I think it would be a great feature, just to ease concerns people might have.

Just out of curiosity, did you come across many conditions causing actual bit errors in your tests?

Hi Julf,

My test was @ 32bit 384KHz for 2 minutes. 98% can pass the test. 2% failure caused by SMT assembly issues such as short or disconnection in production. Nothing unstable in between. All of those that pass 2 minutes test will pass 2 hours test without problem. That's the power or digital audio hardware:).

According to my experience, most of non-bit-perfect issues were caused by software, such as compressing, DSP enhance/effect/filtering, up-sampling and digital volume control. I this case, to do bi-perfect verification from very beginning of the audio stream chain would be very important.

Ian
 
Last edited:
My test was @ 32bit 384KHz for 2 minutes. 98% can pass the test. 2% failure caused by SMT assembly issues such as short or disconnection in production. Nothing unstable in between. All of those that pass 2 minutes test will pass 2 hours test without problem. That's the power or digital audio hardware:).

That was pretty much my expectation :)

According to my experience, most of non-bit-perfect issues were caused by software, such as compressing, DSP enhance/effect/filtering, up-sampling and digital volume control. I this case, to do bi-perfect verification from very beginning of the audio stream chain would be very important.

I agree. I always keep wondering about how many audiophiles who obsess about cables and power supplies might actually have a non-bit-perfect software chain without realizing it.

Of course, some things like digital volume control and up/resampling are "mostly harmless" but definitely not bit perfect - by definition.
 
New board feature request

Hi Ian,

A further feature request for the new board, if I may:

I am looking to use the board with dual mono Twisted Pear Bufallo IIISE. Part of the drive to use your new board is to enable DSD playback. However, I've discovered a limitation with the DAC board (specifically, the internal channel mapping within the ESS DAC chip) that means that by default a dual mono BIIISE will play back in mono! The problem is identified in this post:

DSD problem on Doble Mono configuration

and a solution is discussed from here in the same thread:

DSD problem on Doble Mono configuration- Page 2

The current solution uses a switch here:

OTTO-II 2:1 Switching Module

However, this solution introduces signal propagation delay and I was wondering whether a more elegant solution would be possible to integrate into your new FIFO project to allow DSD/PCM playback without adding further elements into the signal chain?

All the best,
Crom
 
The current solution uses a switch here:

OTTO-II 2:1 Switching Module

However, this solution introduces signal propagation delay and I was wondering whether a more elegant solution would be possible to integrate into your new FIFO project to allow DSD/PCM playback without adding further elements into the signal chain?

Just a note... the propagation delay through the OTTO-II is <.25ns (>4GHz), and should equal across the four channels. I don't think this is something you need to worry about.
 
Result... im not the best at drilling big holes in steel. But the sound is great :)
 

Attachments

  • 23629.jpg
    23629.jpg
    116.4 KB · Views: 551
  • 193616.jpg
    193616.jpg
    52.1 KB · Views: 546
It's possible. Can you give me more details about that?

Regards,
Ian

It has nothing to do with the B3SE DAC board layout. :) The ES9018 applies the MONO register only to stereo signals such as PCM or SPDIF. It does not touch DSD signals - the MONO register has no effect on DSD signals - you have to apply the mono signal yourself to all appropriate inputs (D1, D2 etc).

Thanks Russ and Brian for your comments here. Apologies if you interpreted my comment as a slight on the BIIISE board. It was certainly not my intention to imply this and that would have been unwarranted. You will see that I detailed the problem as originating within the DAC chip itself rather than the board.

Nevertheless, it is a limitation and it struck me that a solution might be a simple addition to the forthcoming FIFO board. Such a solution would also avoid lengthening the signal cables further and introducing another board into the chain.

Cheers,
Crom
 
Thanks Russ and Brian for your comments here. Apologies if you interpreted my comment as a slight on the BIIISE board. It was certainly not my intention to imply this and that would have been unwarranted. You will see that I detailed the problem as originating within the DAC chip itself rather than the board.

Nevertheless, it is a limitation and it struck me that a solution might be a simple addition to the forthcoming FIFO board. Such a solution would also avoid lengthening the signal cables further and introducing another board into the chain.

Cheers,
Crom

I didn't take it as a slight at all... just want to be clear about what the issue is so it can addressed appropriately. :)
 
:) Cool !

WHat was finally the problem you debugged ?

Cheers :)
The issue was one of the initial clocks (that drives most of the audio on my NAS) was broken. It was that simple :) but hard to debug. It was by accident that I upsampled everything with Volumio, that it started working (using the other clock).

You did good job. Congratulations!

Ian

Thanks! The result is awesome, thanks to your awesome work :)
 
Hi,

Does this nice project offer a way to isolate and reclock a Multichannel I2S interface from a USB to I2S board such as MiniDSP USBstreamer? Can that be used with a master clock to run an Es9018 in synchronous mode?

Hi joiip,

My new multi-channel I2S/DSD FIFO project will do it. It will have 8DSD/14I2S channels and run multi-channel DAC or multi mono-block DAC at sync mode.
It works with multi-channel devices such as MiniDSP and multi-channel USB streamers. On-board built-in multi-channel isloator will also be equipped.

https://twitter.com/iancanadatt

Regards,
Ian
 
Last edited: