Differential line receiver for Behringer Ultranet
Prototype receiver circuit based on AM26LV32 chip:

The MagJack - a Bel Stewart SI-52008-F has datasheet here: http://www.farnell.com/datasheets/1731561.pdf
The IC cleans up the edges of the incoming signals.

With some level-shifting and AC coupling, the signals are OK to pass into an SPDIF receiver.
XMOS StartKit - write performance of Sandisk memory card
Here’s a graph showing the write performance to a Sandisk Class 10 memory card.

The reason for the sharp dips in performance, are that the FAT filing system has to go off and allocate a new cluster every N writes. For example 512 byte sectors, 32Kbyte clusters, means a new cluster is needed every 64 writes.
Another factor on the XMOS board is whether the code is running in ‘debug’ or ‘release’ mode. This can make around 2x difference.
XMOS StartKit - reading and writing to SD card
Being able to read/write information from an SD card is probably the easiest way to get large amounts of non-volatile storage into an embedded project. I’m using XMOS StartKit, with the code from here
The card reader is a part from Wurth Elektronik, Farnell / CPC part number CN18143 available here.

The data and clock lines have 120 ohm series resistors, as this can help to absorb transmission-line reflections on the connecting wires (even though they are fairly short).
Rigol DS1054Z digital storage scope - decoding I2S signals
I recently got one of these great little digital scopes. It has a few serial bus decoding packages (on a try-before-buy basis). You get 36 hours to play with them. Unfortunately they don’t include I2S bus decoding. I2S is a bus standard commonly used for transferring digital audio around, for example between ADCs and DACs.
No matter! You can capture and export full-resolution traces of signals via a USB memory stick. This seems to work best if the stick is FAT formatted rather than FAT32. The file format is .CSV which is great for importing into Excel and viewing. You can then use Excel’s charting function to provide a decode of your signals with much greater time-resolution than you can see on the scope’s display itself (which is still pretty good). For example