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
esp_device_uac multichannel speaker working with Linux but not Windows
esp_device_uac multichannel speaker working with Linux but not Windows
- 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
Re: esp_device_uac multichannel speaker working with Linux but not Windows
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