cc2531-killerbee-fw icon indicating copy to clipboard operation
cc2531-killerbee-fw copied to clipboard

CC2531 fails USB enumeration

Open cygeus opened this issue 4 years ago • 1 comments

I did compile the latest cc2531-killerbee-fw (356ae67) and flashed it to a CC2531 using a CC Debugger.

When connecting it to a Linux laptop I get

# dmesg
[29197.436320] usb 5-2: new full-speed USB device number 22 using uhci_hcd                                                                                                           
[29206.372354] usb 5-2: new full-speed USB device number 23 using uhci_hcd                                                                                                           
[29221.932317] usb 5-2: device descriptor read/64, error -110                                                                                                                        
[29237.544315] usb 5-2: device descriptor read/64, error -110 `

When connecting it to a MacBook running macOS it does not show up when running $ ioreg -p IOUSB.

On another laptop running Windows 10 I can see in Microsoft USBView

[Port2] FailedEnumeration :  Unknown USB Device (Device Descriptor Request Failed)


Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            14
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&27e7a5ae&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

       ---===>Device Information<===---

ConnectionStatus:                  FailedEnumeration
Current Config Value:              0x00  -> Device Bus Speed: Full (is not SuperSpeed or higher capable)
Device Address:                    0x00
Open Pipes:                           0
*!*ERROR:  No open pipes!

          ===>Device Descriptor<===
*!*ERROR:  bLength of 0 incorrect, should be 18
bLength:                           0x00
bDescriptorType:                   0x00
bcdUSB:                          0x0000
bDeviceClass:                      0x00
*!*ERROR:  Device enumeration failure

I'm not really familiar with USB (enumeration). Do you have an idea where I can start to debug this issue?

edit: Maybe also worth mentioning. When I connect the CC2531 to a computer:

  1. The green LED flashes once.
  2. Immediately after, the red LED flashes once.
  3. Both LEDs remain off.

cygeus avatar Feb 20 '21 16:02 cygeus

After digging around a bit I learned that

  1. The LED behavior is as expected.
  2. The contiki cc2531-usb-demo example did not work either.

So I decided to downgrade the version of contiki even further. It looks like commit 3e7177dcc822eca4365f5e4ed1f88265adb72e1b from Augustus 2016 is working.

# dmesg
[42993.884349] usb 5-2: new full-speed USB device number 95 using uhci_hcd
[42994.157472] usb 5-2: New USB device found, idVendor=0451, idProduct=16a8, bcdDevice= 0.00
[42994.157482] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[42994.157488] usb 5-2: Product: CC2531 USB Dongle
[42994.157492] usb 5-2: Manufacturer: Texas Instruments
# lsusb -s 5:95 -v
Bus 005 Device 095: ID 0451:16a8 Texas Instruments, Inc. CC2531 ZigBee
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0451 Texas Instruments, Inc.
  idProduct          0x16a8 CC2531 ZigBee
  bcdDevice            0.00
  iManufacturer           1 Texas Instruments
  iProduct                2 CC2531 USB Dongle
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)
# zbid
           Dev Product String       Serial Number
          5:95 CC2531 USB Dongle          None

edit: corrected the Markdown formatting

cygeus avatar Feb 20 '21 20:02 cygeus