DAC+ADC precise timing between input and output

Hi, we are working on a product that requires precise synchronization (based on externally generated pulses) of multiple HifiBerry cards in different locations. The offset between different HifiBerry outputs must be below 1 microsecond (about 0.2 samples @ 192 kHz), and that includes any errors in our own code.

We are getting pretty close; we can synchronize to the pulses and once we have manually adjusted offsets to get two Pi's with HifiBerry's in sync we can keep them in sync within less than 0.5 microseconds. So far so good.

But, when I restart the software on any of the Pi's, there is a often a different offset between them, so it needs to be manually adjusted again. It looks like the offset between the input and output is not exactly the same on each start. It's typically a difference of a few microseconds (although I have seen bigger numbers as well, occasionally, upto about 100 microseconds).

We have done tests with several pc sound cards before, and most of the cards that we tested (but not all!) always have the same delay between input and output. But, we want this to work on a Pi.

Is there any way to force the delay between input and output to be constant? By the way, we're currently using a normal DAC+ADC, not a DAC+ADC Pro - would that make a difference? I see on your site that it has a different clock design.


Please sign in to leave a comment.