adafruit / adafruit/Adafruit_TinyUSB_Arduino
MAX3421 USB Host unreliable packets with length less than 64 bytes
- Dominant language
- C
- Stars
- 654
- Forks
- 183
- PR merge metrics
- No merged PRs in 30d
Description
### Operating System
Windows 10
### Arduino IDE version
PIO
### Board
ESP32-S3
### ArduinoCore version
Latest
### TinyUSB Library version
3.4.4
### Sketch as ATTACHED TXT
NA
### Compiled Log as ATTACHED TXT
NA
### What happened ?
When sending CDC packets from the ESP32-S3 host, random packets which are 174 bytes in length stall on the last packet which is less than 64 bytes. This causes the driver/process to hang, and no further data is sent.
Several transfers are completed successfully, but then seemingly random after 5-10 174 byte transfers, the 3rd packet which is only 46 bytes long is not transmitted, but the Adafruit API returns the correct number of sent bytes.
This is confirmed by monitoring USB traffic with an analyser.
### How to reproduce ?
NA
### Debug Log
_No response_
### Screenshots
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing CDC transfers from an ESP32-S3 host through the MAX3421, using the reported 174-byte transfers and USB analyzer observations. Investigate why the final packet shorter than 64 bytes is not transmitted; done means repeated transfers complete and subsequent data continues without the driver hanging.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100