Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[USB][v5.1.4] Yamaha P-525 returns HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC (IDFGH-14542) #15304

Open
chipweinberger opened this issue Jan 29, 2025 · 5 comments
Labels
Status: Opened Issue is new Type: Bug bugs in IDF

Comments

@chipweinberger
Copy link
Contributor

chipweinberger commented Jan 29, 2025

IDF version.

v5.1.4

Espressif SoC revision.

esp32-s3

Development Kit.

custom pcb

Power Supply used.

USB

What is the expected behavior?

USB communication should succeed.

What is the actual behavior?

    (103239) HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC
    (103243) HUB: Stage failed: CHECK_SHORT_DEV_DESC

Steps to reproduce.

  1. plug in Yamaha P-525

More Information.

This is all the relevant information I have. This is a customer report.

@chipweinberger chipweinberger added the Type: Bug bugs in IDF label Jan 29, 2025
@chipweinberger
Copy link
Contributor Author

@tore-espressif
@peter-marcisovsky
@roma-jam

Thanks for your time.

@github-actions github-actions bot changed the title [USB][v5.1.4] Yamaha P-525 returns HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC [USB][v5.1.4] Yamaha P-525 returns HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC (IDFGH-14542) Jan 29, 2025
@espressif-bot espressif-bot added the Status: Opened Issue is new label Jan 29, 2025
@roma-jam
Copy link
Collaborator

Hi @chipweinberger,

Thanks for reporting the problem.

Could you try to increase the root port delays in menuconfig?
Component config -> USB-OTG -> Root Hub configuration

Step 1. Increase only Reset recovery delay to 3000 ms. If that helps, you can decrease the value and find out which one works. If not:
Step 2. Increase Reset hold to 1000 ms. If not helps:
Step 3. Increase SetAddress() recovery time to 1000 ms.

Let me know if that helps.

@chipweinberger
Copy link
Contributor Author

chipweinberger commented Jan 29, 2025

Thanks for the suggestions. i'll try it!

Question - My product needs to work with hundreds if not thousands of different piano models.

Could changing these hurt compatibility with other models?

I need one set of values that works with all digital pianos.

imo, we should use the most compatible values by default. and we should probably use the values most similar to a Windows PC

Thanks for your help.

@chipweinberger
Copy link
Contributor Author

I'll also need a way to change these at runtime, so that the same firmware can support all models.

@roma-jam
Copy link
Collaborator

Hi @chipweinberger,

Yes, that's right indeed.
This will increase the overall time from plugging the device to the port and getting the enumeration done. It won't affect any devices, which works with less delay.

Right now there is a tendency to move from build-time configuration to the run-time and as a part of this process the delay values as a configurable parameter also could be eliminated. Unfortunately there is no information about when this could be implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Opened Issue is new Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

3 participants