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-A
Code/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?
CircuitPython version and board name
Code/REPL
Behavior
that is the error message and is is related to descriptors specifically, this code does work which is only the PID and VID
which results in
1118 654in 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?