esp_device_uac multichannel speaker working with Linux but not Windows

jmf111
Posts: 3
Joined: Thu Mar 19, 2026 9:34 am

esp_device_uac multichannel speaker working with Linux but not Windows

Postby jmf111 » Thu Mar 19, 2026 10:25 am

I work on a USB to I2S_TDM bridge supporting 8 channels. The platform will be ESP32-P4.

I use the Espressif esp_device_uac component from ESP IoT Solutions (https://components.espressif.com/compon ... device_uac), which relies on TinyUSB ^0.17.0~2 (TinyUSB last native version is 20.0

The application appear to work when plugged in a Linux Host. I can play a 8 channel audio track. But it doesn't work when plugged in a windows host (works however with 2 channels/stereo). There seems to be an out of range value.

I activated the TinyUSB debug. I got also information from the Windows side using their tracing tool. Both are attached.

The issue seems related to the setting of the sampling frequency/clock. Windows seems to stop progress on "Supported sampling frequencies:" log.

On the Tiny USB side:

USBD Setup Received A1 02 00 01 00 04 00 01
AUDIO control request
Clock get 1 freq ranges
Range 0 (48000, 48000, 0)
Queue EP 80 with 14 bytes ...
USBD Xfer Complete on EP 80 with 14 bytes
AUDIO control complete
Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 05 03 09 04 02 00
Get Descriptor String[5]
Queue EP 80 with 2 bytes ...
USBD Xfer Complete on EP 80 with 2 bytes
Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 05 03 09 04 10 00
Get Descriptor String[5]
Queue EP 80 with 16 bytes ...
USBD Xfer Complete on EP 80 with 16 bytes
Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes
I (13338) i2s_usb: MCLK: 18432000, delta: 0, buffer water mark: 0%
USBD Suspend : Remote Wakeup = 0
I (13827) usbd_uac: USB suspended

For completeness, I also add the descriptors as seen by Linux host.

Help would be very welcomed.
Best regards,
JMF111
Attachments
USBD debug UAC2 17-03-2026 (2).txt
(10.12 KiB) Downloaded 4 times
descriptorUAC2.txt
(7.35 KiB) Downloaded 2 times
uac2log2026.txt
(24.06 KiB) Downloaded 2 times

jmf111
Posts: 3
Joined: Thu Mar 19, 2026 9:34 am

Re: esp_device_uac multichannel speaker working with Linux but not Windows

Postby jmf111 » Sat Mar 21, 2026 8:39 am

The extra sample slot needed for Async feedback implementation for the EP maxsize is hard coded to +4 in the esp_device_uac code, which is OK for stereo but not for higher number of channels. Once addressed, Windows recognises the device.

Who is online

Users browsing this forum: No registered users and 1 guest