USB HID Device Troubles

Using a BeagleBone Black Revision C. I am having some trouble with a HID Device (iMX8 Processor)
I get the following when attaching the device,

[  547.227944] usb 1-1: new high-speed USB device number 51 using musb-hdrc
[  564.837950] usb 1-1: device descriptor read/64, error -110
[  566.798280] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  566.805121] usb usb1-port1: attempt power cycle
[  567.027982] usb 1-1: new high-speed USB device number 53 using musb-hdrc
[  568.277942] usb 1-1: new high-speed USB device number 54 using musb-hdrc
[  573.747994] usb 1-1: device not accepting address 54, error -110
[  573.754356] usb usb1-port1: unable to enumerate USB device
[  574.108048] usb 1-1: new high-speed USB device number 55 using musb-hdrc
[  591.717938] usb 1-1: device descriptor read/64, error -110
[  593.678135] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  593.685010] usb usb1-port1: attempt power cycle
[  593.907998] usb 1-1: new high-speed USB device number 57 using musb-hdrc
[  595.157943] usb 1-1: new high-speed USB device number 58 using musb-hdrc
[  600.627962] usb 1-1: device not accepting address 58, error -110
[  600.635078] usb usb1-port1: unable to enumerate USB device
[  600.987930] usb 1-1: new high-speed USB device number 59 using musb-hdrc
[  603.958113] usb 1-1: new high-speed USB device number 60 using musb-hdrc
[  621.557969] usb 1-1: device descriptor read/64, error -110
[  621.678155] usb usb1-port1: attempt power cycle
[  622.777946] usb 1-1: new high-speed USB device number 61 using musb-hdrc
[  628.227967] usb 1-1: device not accepting address 61, error -110
[  628.597937] usb 1-1: new high-speed USB device number 62 using musb-hdrc
[  628.628650] usb 1-1: New USB device found, idVendor=1fc9, idProduct=012f, bcdDevice= 0.04
[  628.636945] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  628.644282] usb 1-1: Product: SE Blank 8QXP 
[  628.648718] usb 1-1: Manufacturer: NXP       SemiConductor Inc 
[  628.668402] hid-generic 0003:1FC9:012F.0008: hiddev96,hidraw0: USB HID v1.10 Device [NXP       SemiConductor Inc  SE Blank 8QXP ] on usb-musb-hdrc.1-1/input0
[  628.684369] PM: Cannot get wkup_m3_ipc handle

This can go on for a while, once it does finally connect it seems to be ok, i can unplug and plug it back in and it finds it straight away.

I don’t think it is an issue with the device/cable as i don’t have any issues connecting on other linux or windows systems.

I am using the most recent default buildroot configuration for beaglebone (kernel 6.1.46-ti-r13).
I have also tried with the released “am335x-eMMC-flasher-debian-12.2-minimal-armhf-2023-10-07-2gb”. I get the same issue however it seems to be more reliable and will connect after a few retries.

I’m not sure how to tackle this problem, from what i have read the “error -110” is a timeout error. Some people have suggested power rail issues. I tried putting some extra capacitance on the USB Power line but this did not make a difference.

some more info about the device,
from lsusb -v (on Ubuntu system)

Bus 003 Device 124: ID 1fc9:012f NXP Semiconductors SE Blank 8QXP 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1fc9 NXP Semiconductors
  idProduct          0x012f 
  bcdDevice            0.04
  iManufacturer           1 NXP       SemiConductor Inc 
  iProduct                2 SE Blank 8QXP 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 1F14080E828E5263
    bmAttributes         0xc0
      Self Powered
    MaxPower               10mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      76
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

Might be a power problem. How are you powering the BBB and how much current does the iMX8 device need ?

If you have a powered hub, try using that see if it helps.

I am powering the BBB via the 5V DC jack with a 2A supply.

If you have a powered hub, try using that see if it helps.

Great Idea. I don’t have a powered hub on me. but i tried with a regular hub and I no longer get the issue. I don’t know enough about USB protocols to make sense of why this worked.