Toslink SPDIF delayer to sync audio


New member
Hi all,

I ran into a problem with my Amazon Echo Links, where they output to two different speaker systems via toslink optical digital audio. One speaker system had a ~200 ms delay, due to some internal processing, whereas the other had little delay.
This resulted in music which was out of sync between the two systems. Amazon refused to allow me to adjust (delay) the toslink output to one of the Links!

I designed a PCB and sketch for Teensy 4.0 to take in SPDIF from toslink (from the Echo Link), delay it by an adjustable amount, and then output again via toslink.


It was basically trivial to do this with the Teensy 4.0!
Here is my github with PCB files (Eagle 9, sorry) and sketch:

To use it, you press the button (digital input), the LED comes on (digital output), you adjust the delay using the potentiometer (analog input), and then press the button again when the delay sounds good. The delay value is then fixed and stored to EPROM so it's read back in at power on.
There's an SSD1306 OLED display to show the current status.
It uses ~30% CPU when clocked at 150 MHz.

I think this will be useful for many situations, such as the common problem of out-of-sync TV / soundbar.

Best, Dr. Haas.