Solid Yellow LED (DFU-Mode)

Hi

Trying to put my Electron in the DFU mode (Hold Mode and Reset, release Reset, waiting until LED is flashing yellow), the LED flashs 2 or 3 times yellow and then the LED becomes solid yellow. The Electron isn’t discoverd as DFU device anymore. It worked for multiple days without problems.
Flashing over serial mode (–serial) seems to work.

From the dmesg (under Linux):
[ 478.867093] cdc_acm 2-2:1.1: urb 0 failed submission with -19
[ 478.867185] cdc_acm 2-2:1.0: failed to set dtr/rts
[ 478.870219] cdc_acm 2-2:1.1: urb 1 failed submission with -19
[ 478.872356] cdc_acm 2-2:1.1: urb 2 failed submission with -19
[ 478.874515] cdc_acm 2-2:1.1: urb 3 failed submission with -19
[ 478.876633] cdc_acm 2-2:1.1: urb 4 failed submission with -19
and
[ 934.886574] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
[ 1099.311497] usb 2-2: USB disconnect, device number 11
[ 1099.318145] cdc_acm 2-2:1.1: urb 11 failed submission with -19
[ 1099.318816] cdc_acm 2-2:1.0: failed to set dtr/rts
and also some times:
[ 1657.550199] usb 1-2: device not accepting address 37, error -62
[ 1657.670185] usb 1-2: new full-speed USB device number 38 using xhci_hcd
[ 1662.718317] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1668.094457] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1668.302383] usb 1-2: device not accepting address 38, error -62
[ 1668.302426] usb usb1-port2: unable to enumerate USB device
[ 2130.583084] usb 1-2: new full-speed USB device number 39 using xhci_hcd
[ 2135.935219] usb 1-2: device descriptor read/64, error -110
[ 2151.551513] usb 1-2: device descriptor read/64, error -110

If the Electron isn’t connected to the USB, I can change into the DFU mode - LED is blinking yellow but as soon as I connect the USB cable, the LED goes off or change to solid yellow.

dmesg from better times:
Jun 4 01:33:47 jim-VirtualBox kernel: [ 448.478823] usb 2-2: new full-speed USB device number 6 using ohci-pci
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.817814] usb 2-2: New USB device found, idVendor=2b04, idProduct=c00a
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.817820] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.817823] usb 2-2: Product: Electron
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.817826] usb 2-2: Manufacturer: Particle
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.817829] usb 2-2: SerialNumber:
Jun 4 01:33:48 jim-VirtualBox kernel: [ 448.833078] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
And
Jun 4 00:13:19 debian kernel: [20240.659737] usb 3-1: new full-speed USB device number 10 using xhci_hcd
Jun 4 00:13:19 debian kernel: [20240.801311] usb 3-1: New USB device found, idVendor=2b04, idProduct=c00a
Jun 4 00:13:19 debian kernel: [20240.801316] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 4 00:13:19 debian kernel: [20240.801319] usb 3-1: Product: Electron
Jun 4 00:13:19 debian kernel: [20240.801322] usb 3-1: Manufacturer: Particle
Jun 4 00:13:19 debian kernel: [20240.801324] usb 3-1: SerialNumber: 00000000050C
Jun 4 00:13:19 debian kernel: [20240.801849] cdc_acm 3-1:1.0: ttyACM1: USB ACM device
Jun 4 00:13:19 debian mtp-probe: checking bus 3, device 10: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
Jun 4 00:13:19 debian mtp-probe: bus: 3, device: 10 was not an MTP device

In DFU Mode I’d not expect cdc_acm to kick in. I guess that’s some ill-behaving driver.

I tried it now on different computers with different Linux systems and different USB cables. I blacklisted the cdc_acm. Still the same problem.

[ 241.684961] usb 3-2: device descriptor read/64, error -110
[ 241.913046] usb 3-2: new full-speed USB device number 9 using xhci_hcd
[ 247.063722] usb 3-2: device descriptor read/64, error -110
[ 262.687730] usb 3-2: device descriptor read/64, error -110
[ 262.915813] usb 3-2: new full-speed USB device number 10 using xhci_hcd
[ 267.946434] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 273.325187] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 273.533256] usb 3-2: device not accepting address 10, error -62
[ 273.653309] usb 3-2: new full-speed USB device number 11 using xhci_hcd
[ 278.703961] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 284.082627] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 284.290717] usb 3-2: device not accepting address 11, error -62
[ 284.290761] usb usb3-port2: unable to enumerate USB device

error -100 seems somehow related to power over USB (as far as I found info on the internet). Serial flashing still no problem.
I’ll get more Electrons at the end of the week. So I’ll do some tests with them.

PS: the D7 LED is solid blue while the mode LED is solid yellow.

# lsusb -v
on Debian Jessie with cdc_acm blacklisted.

Bus 003 Device 025: ID 2b04:c00a  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x2b04 
  idProduct          0xc00a 
  bcdDevice            2.50
  iManufacturer           1 Particle
  iProduct                2 Electron
  iSerial                 3 530032000451353431383736
  bNumConfigurations      1
  Configuration Descriptor:
bLength                 9
bDescriptorType         2
wTotalLength           84
bNumInterfaces          3
bConfigurationValue     1
iConfiguration          4 Composite
bmAttributes         0x80
  (Bus Powered)
MaxPower              100mA
Interface Association:
  bLength                 8
  bDescriptorType        11
  bFirstInterface         0
  bInterfaceCount         2
  bFunctionClass          2 Communications
  bFunctionSubClass       2 Abstract (modem)
  bFunctionProtocol       1 AT-commands (v.25ter)
  iFunction              10 Electron Serial
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        0
  bAlternateSetting       0
  bNumEndpoints           1
  bInterfaceClass         2 Communications
  bInterfaceSubClass      2 Abstract (modem)
  bInterfaceProtocol      1 AT-commands (v.25ter)
  iInterface             10 Electron Serial
  CDC Header:
    bcdCDC               1.10
  CDC Call Management:
    bmCapabilities       0x00
    bDataInterface          1
  CDC ACM:
    bmCapabilities       0x02
      line coding and serial state
  CDC Union:
    bMasterInterface        0
    bSlaveInterface         1 
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x83  EP 3 IN
    bmAttributes            3
      Transfer Type            Interrupt
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0008  1x 8 bytes
    bInterval             255
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        1
  bAlternateSetting       0
  bNumEndpoints           2
  bInterfaceClass        10 CDC Data
  bInterfaceSubClass      0 Unused
  bInterfaceProtocol      0 
  iInterface             10 Electron Serial
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x01  EP 1 OUT
    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     0x81  EP 1 IN
    bmAttributes            2
      Transfer Type            Bulk
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0040  1x 64 bytes
    bInterval               0
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        2
  bAlternateSetting       0
  bNumEndpoints           0
  bInterfaceClass       255 Vendor Specific Class
  bInterfaceSubClass    255 Vendor Specific Subclass
  bInterfaceProtocol    255 Vendor Specific Protocol
  iInterface              9 Electron Control Interface
Device Status:     0x0001
  Self Powered

Ok. Tested with the new Electrons. They work in DFU-Mode. So it’s not the host. Either hardware problem on the Electron or the firmware (already tried with flashing Tinker - didn’t change the DFU solid LED).

Using the same USB cable? I had a similar problem and serial mode worked and dfu-util didn’t for the most part. I would try a different USB cable. Not all cables are made the same it seems. Some just carry power and hardly any signal. When I changed cables dfu works like a charm.

1 Like

Tested different USB cables from different companies, different lengths. They all work on the other Electrons.
Think it’s a hardware problem or somehow a bad Bit somewhere in the memory.
Also flashed the Electron with different firmware versions (0.5.3, 0.6.2) but still the solid yellow light.
Flashing over serial works and reading (Serial methods) too.

Can’t go into the safe mode - LED stays yellow solid.

I am having the same issue.
Yesterday I was trying my first Electron. I can put it into DFU mode and the LED blinks yellow as long as it is not connected to PC. But once I connect it to USB it seems everything halts and the yellow LED becomes solid!

Flashing through serial seems to work.
Can you advise what could be the problem? Is it firmware-related or is it a hardware problem?
Can I reset the firmware to factory setting through serial as dfu is not operational?

Also when I try running tinker. It arrives to a point that it blinks cyan for some time then it will blink yellow for around three times and repeats again back to blinking cyan.
My Electron hasn’t connected to cloud successfully yet.
Any advise is appreciated

So you put it in DFU mode and then connect it? What happens if you connect first and then try DFU mode?

That sounds like a Keys issue (blinking orange). Have a search on the community, since there are several topics dealing with this. (Youll need to have DFU working first though)'.

Thanks for the response.

If I connect first then put in DFU, I get the same outcome which is a solid Yellow or sometimes it blinks yellow once and turns off. Seems to me kind of overall halt at an early state of running DFU mode.
And this happens no matter which state the computer is in. Even if I connect Electron at early boot time (Windows F8 menu or maybe earlier) I get the same symptoms. Which seems to me as unlikely to be a driver problem but I’m not certain though.

@jgdev Have you got any new with your Electron that was affected by this?
Do you notice that the D7 blue LED behaves differently when entering DFU mode than your other normal Electrons?
I have one Electron so I can’t compare.

@mheskol I have no idea what the reason could be…

Hi, I had the same issue.

I have no idea what the underlying cause is… but I was able to recover it using JTAG/SWD mode using an Adafruit STLink V2 mini: https://www.adafruit.com/product/2548

Used STLink in Windows to erase all sectors, re-flashed everything including the 0.6.2 bootloader and my particle cloud key… now DFU mode works again.