Open eriklundh opened 2 weeks ago
These sorts of symptoms are often a sign of poor quality cables.
In particular, please check that all the cables connected to Cynthion are shielded and that there is good continuity between the connector shells at each end of the cable.
Also check if you are able to capture other devices without problems, in particular High Speed devices. If so, then the problem is probably with the quality of the USB signals being generated by the RP2040, or with its receive implementation.
I work on a adding a composite HID device (mouse keyboard) on a second USB port using iPico-PIO-USB I purchased Cynthion to analyze for development and debugging. I notice that Cynthion somehow affects the USB signaling. When I connect my add-port directly directly to a Raspberry PI5, I get a complete device registration, visible with lsusb on the PI5.
But when I connect through Cynthion in analyzer mode, some parts of the device registration fails, most obviously the device name. I also noticed (might be false correlation), that less of the device registration works when packetry is capturing, than when packetry is stopped. I have set up Cynthion with analyzer as the default mode.
The Pico-PIO-USB library (https://github.com/sekigon-gonnoc/Pico-PIO-USB) uses RP2040 PIO state machines to emulate low level USB signaling. The higher levels of the USB protocol are handled by code from TinyUSB. The D+ and D- are 3.3V levels from Rp2040 GPIO pins, with an 27R resistor in series with each of D+ and D-.
FS mode of my device is indicated by a 1.5kOhm pull-up from 3,.3V on D+, after the 27R. The 1.5kohm resistor is fed 3.3V from GPIO10
I enclose the schematic of my USB device under test, my own addon-board for Raspberry Pico (RP2040).
I masked out some irrelevant LED status indicators to the right. J1 is an USB micro-B connector. U2 is an ESD protection IC.