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
ADAT Tx example does not work with XK-AUDIO-316-MC-AB
-
- New User
- Posts: 3
- Joined: Fri Oct 10, 2025 7:02 pm
-
Verified
- XCore Legend
- Posts: 1296
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
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.
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
-
- New User
- Posts: 3
- Joined: Fri Oct 10, 2025 7:02 pm
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.
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.
-
- New User
- Posts: 3
- Joined: Fri Oct 10, 2025 7:02 pm
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