Unable to enumerate USB device - unknown device: how to find out device that odes not show in lsusb?

6,509

The error message you're seeing is from a low-level USB failure, the basic USB protocol hasn't been completed — so Linux probably doesn't even know the idVendor/idProduct yet. That's also why lsusb isn't showing it, it hasn't really connected yet.

The first odd thing here is that it has a USB A port, normally that's on the computer/"host" side (and B is on the device/"gadget"). So it sounds like the way its used with the display is the "hardware product" functions like a computer, and is controlling the display. It sounds like you're trying to connect two USB A ports together, that isn't supposed to work (or be physically possible).

If you want your Pi to work like the display, you likely need to do a lot of work to make it present itself as a display. That's called USB gadget mode. Writing the programs to make that happen would be something to ask about on Stack Overflow; it's definitely software development.

If your hardware device is supposed to connect to a computer as well, then it may implement both modes (often called USB On-The-Go). If that's the case, it should be able to talk to the Pi, but that's not working. First debugging step would be to see if it works on a PC — even a Windows one. If it doesn't, then I doubt there is much to do other than contact the vendor. If it does, it's possible your Pi isn't able to supply it enough power; make sure you're using a good USB power supply with the Pi.

BTW: Another thing that comes to mind to investigate how the two devices communicate is to plug the display into your Pi or computer. The one you can use a normal USB cable with; see what type of device it is. If it shows up as a monitor (and not say a serial port)... good luck!

Share:
6,509

Related videos on Youtube

Cactus
Author by

Cactus

Updated on September 18, 2022

Comments

  • Cactus
    Cactus over 1 year

    I have a hardware product which sends a signal to an LCD display. The hardware box (unknown chip set) has an USB-A outlet and connects to a USB-B outlet on an LCD-display. The LCD display shows different values in a one second interval. I would need to read the values from the Hardware box with whatever Linux-based machine. I have tried a Raspberry that connects per USB to the hardware box. However, when I try to enumerate usb devices via lsusb the device does not show up. It just shows my keyboard and mouse.

    When I look at the dmesg outpout, I get the following:

    [    2.411997] usb 1-1.3: new low-speed USB device number 6 using dwc_otg
    [    2.511983] usb 1-1.3: device descriptor read/64, error -32
    [    2.731995] usb 1-1.3: device descriptor read/64, error -32
    [    3.192015] usb 1-1.3: new low-speed USB device number 8 using dwc_otg
    [    3.292089] usb 1-1.3: device descriptor read/64, error -32
    [    3.512305] usb 1-1.3: device descriptor read/64, error -32
    [    4.292059] usb 1-1.3: new low-speed USB device number 9 using dwc_otg
    [    4.732030] usb 1-1.3: device not accepting address 9, error -32
    [    4.832062] usb 1-1.3: new low-speed USB device number 10 using dwc_otg
    [    5.272043] usb 1-1.3: device not accepting address 10, error -32
    [    5.272238] usb 1-1-port3: unable to enumerate USB device
    

    I tried pyserial, but does not know which device to read from. I do not get the idVendor and idProduct, I do not know whether there is a driver that I can update or something.

    I have been going through a lot of documentation, set the speed of the usb-driver to 1 (via dwc_otg.speed=1 that did not help either). I tried all the things here:https://www.raspberrypi.org/documentation/configuration/cmdline-txt.md But nothing helped. I have two questions:

    1. What else can I potentially do to debug the usb connection?
    2. How can I identify a USB device that is not being listed by lsusb and gives an error in dmesg?

    This is quite important for my research so any help is much appreciated.

  • Cactus
    Cactus over 4 years
    Hello derobert, thank you, your answer is very helpful. Yes, it comes down to connecting two USB A ports. I thought if the signal sent from the hardware device is being read by a display, I could have a chance to also read it from the Raspberry. I have already contacted the vendor, however, they are very unresponsive. If the hardware device really controls the display, do you have any pointers/resources where I could read how to put the Raspberry in USB gadget mode? I would not know how to start, since I do not even know which signal is coming from the hardware device. Thanks!
  • Cactus
    Cactus over 4 years
    Do you think a USB to ttl converter such as this one could help: amazon.com/ADAFRUIT-Industries-954-Serial-Raspberry/dp/…
  • derobert
    derobert over 4 years
    @Cactus Not all Raspberry Pi support gadget mode (see raspberrypi.stackexchange.com/questions/71613/… which also has some links on how to do it). USB a simple protocol like you might be used to from, e.g., RS-232 serial ports. You've got a potentially large amount of work ahead of you...
  • derobert
    derobert over 4 years
    @Cactus Also, I thought of another way to investigate what the hardware is doing, I added it to the bottom of an answer.