adafruit / adafruit/Adafruit_TinyUSB_Arduino

MAX3421 USB Host unreliable packets with length less than 64 bytes

Open
#519 1 comment 0 reactions 0 assignees View on GitHub
Bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.