0
\$\begingroup\$

I had a device come with no USB cable.

Since it used a proprietary USB connector on the device side, I decided to solder a male USB A cable directly on the motherboard pins.

The USB device is correctly detected, and shows up in the device list, both with dmesg and lsusb. The device name, identifiers, etc. are correct, but the daemon that is supposed to communicate with it over hidraw (I think) fails to do so.

So, in short, my problem is the following:

  • USB device correctly detected (correct vendor and product ID, matching product string)
  • USB communication not possible.

The cable or connection is likely the culprit, I didn't double-check my wiring because of a lack of time avalable with the device. I wasn't able to find good documentation on hardware USB troubleshooting online, but I seem to recall that inverting D+ and D- could cause such issues (detection, but no communication). Even if that ends up being the issue, are there resources for troubleshooting that kind of problem? What are the possible causes for this failure mode, and how should I go about debugging it?

The USB cable is quite short, but of quite poor quality (I had no regrets sacrificing it).

| improve this question | | | | |
\$\endgroup\$
  • \$\begingroup\$ if your device already shows up in lsusb, then communication works. So, your lines are not swapped. \$\endgroup\$ – Marcus Müller Jul 19 '19 at 13:31
  • \$\begingroup\$ It might still be an unsuitable connection that leads to problem on faster transfers. But honestly, because some software doesn't talk to your device can mean a lot of things, most of which are software-related. \$\endgroup\$ – Marcus Müller Jul 19 '19 at 13:32
  • \$\begingroup\$ That is true, but I am pretty sure I saw this issue cropping up in another project. If communication is only done at high-speed, and the data lines are inverted, I think that could explain it. I will verify the colour codes on that cable, then the cabling when I get access to the device. But yeah, I took the "it shows up in lsusb" for a "it works" in my initial attempt, and it could be a software issue. Or a shielding issue, or whatever... \$\endgroup\$ – MayeulC Jul 19 '19 at 13:37
  • \$\begingroup\$ As @MarcusMüller said, if your system is able to read VID/PID correctly, it means that the basic USB communication is functional. If wires were swapped, there is no way for this to happen. BTW, what speed mode is used in your "a device"? And which board did you mean as "motherboard"? Usually the term motherboard is understood as PC motherboard. I sincerely hope that you didn't destroy your USB host... \$\endgroup\$ – Ale..chenski Jul 20 '19 at 3:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.