-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
CircuitPython version and board name
Adafruit CircuitPython 10.0.3 on 2025-10-17; Raspberry Pi Pico 2 with rp2350a
Raspberry Pi Pico 2 - https://www.waveshare.com/wiki/RP2350-USB-ACode/REPL
import usb_host
import board
usb_host.Port(board.GP12, board.GP13)
# SPDX-License-Identifier: Unlicense
import usb.core
from relic_usb_host_descriptor_parser import DeviceDescriptor
for i, device in enumerate(usb.core.find(find_all=True)):
device_descriptor = DeviceDescriptor(device)
print(f"Device {i+1}: {device_descriptor}")
for j, configuration in enumerate(device_descriptor.configurations):
print(f"- Configuration {j+1}: {configuration}")
for k, interface in enumerate(configuration.interfaces):
print(f" - Interface {k+1}: {interface}")
for l, endpoint in enumerate(interface.endpoints):
print(f" - Endpoints {l+1}: {endpoint}")
print()Behavior
Traceback (most recent call last):
File "<stdin>", line 17, in <module>
File "relic_usb_host_descriptor_parser.py", line 285, in __init__
File "adafruit_usb_host_descriptors.py", line 87, in get_device_descriptor
File "adafruit_usb_host_descriptors.py", line 75, in get_descriptor
usb.core.USBError: that is the error message and is is related to descriptors specifically, this code does work which is only the PID and VID
import usb_host
import board
usb_host.Port(board.GP12, board.GP13)
import usb.core
for device in usb.core.find(find_all=True):
print(device.idVendor, device.idProduct)which results in
1118 654
in repl
Description
On RP2350-based boards acting as a USB host, attempting to read USB device descriptors using usb.core raises usb.core.USBError for certain devices that enumerate dynamically or expose multiple interfaces (e.g. 8BitDo USB Wireless Adapter 2).
Additional information
I have done a bunch of testing and debugging
Most importantly it seems to always come back to an error in the adafruit_usb_host_descriptors.py library
Further in the adafruit discord (help-with-circuitpython) there is an entire conversation history of everything I have tried and suggestions of others
I feel that is too large to add here but any questions i will answer.
Also this is my first time writing a GitHub issue, how did i do?