ADAT Tx example does not work with XK-AUDIO-316-MC-AB

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
karel.drummer
New User
Posts: 3
Joined: Fri Oct 10, 2025 7:02 pm

ADAT Tx example does not work with XK-AUDIO-316-MC-AB

Post by karel.drummer »

Hello everyone,

I recently bought the XK-AUDIO-316-MC-AB dev kit — works great so far!

I compiled and flashed the example 2AMi8o8xxxxxx, and all 8 analog outputs work perfectly. My C++ app on Linux can feed each channel separately without any issues.

However, when I tried using the 2AMi16o16xxxaax example (which uses 8 analog outputs + ADAT Tx for the next 8 channels), Linux correctly detects 16 output channels, but only the first 8 actually play — the ADAT channels don’t produce any sound.

Interestingly, when I modified the XMOS firmware build configuration to use only 2 analog outputs plus ADAT, the 6 ADAT outputs worked fine. But I still can’t get all channels (analog + ADAT) to play simultaneously. The OS sends 16 channels, but it seems the second 8 channels are somehow “muted” in the firmware.

It almost looks like there might be a bug in the original XMOS example — which would be surprising.
Or am I missing something or expecting it to work differently?

Thanks a lot!
Karel
User avatar
Ross
Verified
XCore Legend
Posts: 1296
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

Please mention that software version you are using.

I would try limiting the max sampling rate to 48 kHz. Your linux box may not be properly handling the fact the the larger channel counts cannot be supported at higher sample rates.
Technical Director @ XMOS. Opinions expressed are my own
karel.drummer
New User
Posts: 3
Joined: Fri Oct 10, 2025 7:02 pm

Post by karel.drummer »

Hello Ross,
thank you for your reply!

Now, I'm on business trip, but tomorrow I'll try your hint, and have a look for versions of app & libs - I think they are all recent, but I'll re-check.

Thanks a lot,
Karel.
karel.drummer
New User
Posts: 3
Joined: Fri Oct 10, 2025 7:02 pm

Post by karel.drummer »

Ross wrote: Mon Oct 13, 2025 11:08 am Please mention that software version you are using please.

I would try limiting the max sampling rate to 48 kHz. Your linux box may not be properly handling the fact the the larger channel counts cannot be supported at higher sample rates.
Hello,
you are right. My target platfrom is Raspberry Pi5. It is obvious, it can handle up to 8-channels. It can even enumerate all 16 channels (8 analog, 8ADAT), but ADAT does not play at all.

Hovewer, when I tried it on my Desktop debian, it enumerates 16 channels, and even it plays all of them. From bandwidth point of view, Raspberry usb driver should be capable to manage it. I'm not so expert for USB communication.

Do you have some ideas/hints, why could it be? Thank you very much.
Karel.

-----
cat /proc/asound/card*/stream*
XMOS XMOS xCORE.ai MC (UAC2.0) at usb-xhci-hcd.1-1, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 448
    Momentary freq = 48001 Hz (0x6.0008)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 16
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 48000
    Data packet interval: 125 us
    Bits: 24
    Sync Endpoint: 0x82 (2 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No