You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am stuck on this issue for months on end... Could someone please help?
Raspberry Pi Pico (RP2040) with PIO-USB
pico-sdk version: 2.2.0
TinyUSB commit: 86ad6e5
Configuration: Dual-role USB
Core 0: Device stack on native USB (tud_init(0))
Core 1: Host stack on PIO-USB (tuh_init(1))
CFG_TUD_CDC = 0 (disabled) (but I have also tried with 1)
Problem:
The following host APIs do not work when called from tuh_mount_cb():
tuh_descriptor_get_device_sync()
tuh_descriptor_get_manufacturer_string_sync()
tuh_descriptor_get_product_string_sync()
tuh_descriptor_get_serial_string_sync()
They either return failure, return garbage data, or timeout.
Observed behavior:
tuh_vid_pid_get() works correctly
tuh_hid_interface_protocol() works correctly
HID reports are received correctly
BUT: Descriptor fetch APIs fail!!!!!!!!
What I've tried:
Async APIs (tuh_descriptor_get_device() with callback) - callback never fires
Raw control transfer (tuh_control_xfer()) - also fails
64-byte aligned buffers - no change
Disabling CDC (CFG_TUD_CDC 0) - no change
Adding delays before fetch - no change
Expected behavior:
Descriptor fetch should work from tuh_mount_cb() as shown in Pico-PIO-USB examples (e.g., device_info.ino).
Questions:
Is dual device/host supported with descriptor fetching on PIO-USB?
Is there a known workaround?
Should this be reported to Pico-PIO-USB instead?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
I am stuck on this issue for months on end... Could someone please help?
Raspberry Pi Pico (RP2040) with PIO-USB
pico-sdk version: 2.2.0
TinyUSB commit: 86ad6e5
Configuration: Dual-role USB
Core 0: Device stack on native USB (tud_init(0))
Core 1: Host stack on PIO-USB (tuh_init(1))
CFG_TUD_CDC = 0 (disabled) (but I have also tried with 1)
Problem:
The following host APIs do not work when called from tuh_mount_cb():
tuh_descriptor_get_device_sync()
tuh_descriptor_get_manufacturer_string_sync()
tuh_descriptor_get_product_string_sync()
tuh_descriptor_get_serial_string_sync()
They either return failure, return garbage data, or timeout.
Observed behavior:
tuh_vid_pid_get() works correctly
tuh_hid_interface_protocol() works correctly
HID reports are received correctly
BUT: Descriptor fetch APIs fail!!!!!!!!
What I've tried:
Async APIs (tuh_descriptor_get_device() with callback) - callback never fires
Raw control transfer (tuh_control_xfer()) - also fails
64-byte aligned buffers - no change
Disabling CDC (CFG_TUD_CDC 0) - no change
Adding delays before fetch - no change
Expected behavior:
Descriptor fetch should work from tuh_mount_cb() as shown in Pico-PIO-USB examples (e.g., device_info.ino).
Questions:
Is dual device/host supported with descriptor fetching on PIO-USB?
Is there a known workaround?
Should this be reported to Pico-PIO-USB instead?
void tuh_mount_cb(uint8_t dev_addr)
{
uint16_t vid, pid;
tuh_vid_pid_get(dev_addr, &vid, &pid); // Works
}
Please ask me for more info on what functions to implement!
Beta Was this translation helpful? Give feedback.
All reactions