Adafruit_TinyUSB_Arduino
Adafruit_TinyUSB_Arduino copied to clipboard
USB protocol >= 2.1 on ESP32 fails to bring up USB stack on Windows (WebUSB example)
Operating System
Windows 11
Arduino IDE version
2.3.6
Board
LilyGo T Dongle S3
ArduinoCore version
3.3.0
TinyUSB Library version
3.7.1
Sketch as ATTACHED TXT
https://github.com/adafruit/Adafruit_TinyUSB_Arduino/blob/master/examples/WebUSB/webusb_serial/webusb_serial.ino
Compiled Log as ATTACHED TXT
What happened ?
I'm attempting to test the WinUSB example from the examples directory on an ESP32S3 device (T Dongle S3 from LilyGo). After compiling, flashing and re-plugging, the device does not enumerate correctly in Windows 11 23H2.
I've tried to do some debugging on this, here are some rambling comments:
- It seems related to USB 2.1 support, under 2.0 the device starts but there is no request to tud_descriptor_bos_cb
- I can only get tud_descriptor_bos_cb to be called if https://github.com/espressif/arduino-esp32/blob/7bfd45189d001d0d6fcca1922eda3648f41d386d/cores/esp32/esp32-hal-tinyusb.c#L401 is commented out which doesn't seem right
- I've tried older versions of the code and still get the same issue
How to reproduce ?
- Install latest Arduino IDE, latest ESP32 board and latest Arduino TinyUSB library
- Take the example sketch and paste into new IDE window
- Set USB CDC on boot to Enabled
- Set USB DFU on boot to Disabled
- Set USB Firmware MSC on boot to Disabled
- Set USB mode to OTG (TinyUSB)
- Flash firmware
- Plug in
- Device will fail to enumerate
Debug Log
No response
Screenshots
I have checked existing issues, pr, discussion and documentation
- [x] I confirm I have checked existing issues, pr, discussion and documentation.