Answers checklist.
Which component are you using? If you choose Other, provide details in More Information.
device/esp_tinyusb
ESP-IDF version.
v5.5.1
Development Kit.
ESP32-S3 DevKitC
Used Component version.
tinyusb v0.18.0~4
More Information.
When DMA is disabled (CONFIG_TINYUSB_MODE_SLAVE is set), if the host sends an OUT zero length packet (ZLP) then TinyUSB receives a corrupt transfer (64 bytes instead of 0, with whatever was previously in the buffer).
This is most obvious for USB-CDC driver and MacOS host when transmitting a multiple of the endpoint size (64 bytes), but can be the case any time that the host sends a zero length packet.
A fix is already merged in upstream TinyUSB: hathach/tinyusb#3293 but it merged just after the upstream 0.19.0 release so may not be released for some time.
I'm not necessarily asking for it to be fixed early in the Espressif fork, but thought I'd report it anyhow.
Answers checklist.
Which component are you using? If you choose Other, provide details in More Information.
device/esp_tinyusb
ESP-IDF version.
v5.5.1
Development Kit.
ESP32-S3 DevKitC
Used Component version.
tinyusb v0.18.0~4
More Information.
When DMA is disabled (
CONFIG_TINYUSB_MODE_SLAVEis set), if the host sends an OUT zero length packet (ZLP) then TinyUSB receives a corrupt transfer (64 bytes instead of 0, with whatever was previously in the buffer).This is most obvious for USB-CDC driver and MacOS host when transmitting a multiple of the endpoint size (64 bytes), but can be the case any time that the host sends a zero length packet.
A fix is already merged in upstream TinyUSB: hathach/tinyusb#3293 but it merged just after the upstream 0.19.0 release so may not be released for some time.
I'm not necessarily asking for it to be fixed early in the Espressif fork, but thought I'd report it anyhow.