Skip to content

USB HID stall when not acknowledged by PC #11600

@ChrGri

Description

@ChrGri

Board

ESP32 S3

Device Description

ESP32 S3 dev board

Hardware Configuration

USB OTG used to connect to PC

Version

v2.0.17

IDE Name

VSCode

Operating System

Win11

Flash frequency

40Mhz

PSRAM enabled

yes

Upload speed

115200

Description

When sending USB HID reports to the PC from ESP32 S3 it works fine for a while, but suddenly HID reports seem to stall and the following errors occur :

E (30273325) TUSB:DCD: Unknown Condition E (30273446) TUSB:DCD: Unknown Condition E (30274457) TUSB:DCD: Unknown Condition E (30274460) TUSB:DCD: Unknown Condition E (30274577) TUSB:DCD: Unknown Condition E (30274580) TUSB:DCD: Unknown Condition
.

The chance of hitting that state becomes significantly smaller when increasing the HID acknowledge timeout here to, e.g. 500ms and reducing the HID transmission repetition interval in general. My hypothesis is, that when no acknowledgment was received from the host and thus a timeout was reached, the USB code goes into deadlock, from which it does not recover.

Is there any for us to detect the deadlock and restart the HID?

BR
Chris

Sketch

https://github.com/ChrGri/DIY-Sim-Racing-FFB-Pedal/blob/aaff7dc02697863ea8b64e4c847e3f50b29a9aaa/ESP32/src/Controller.cpp#L83

Debug Message

See output in description

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions