Photon will not enter Safe Mode or DFU

I have a Photon that is flashing SOS + 1. I have tried to get it to go into Safe Mode and DFU by pressing both the Reset and Setup buttons, releasing Reset and holding Setup. The LED will flash magenta and when I release Setup the Photon goes back to SOS + 1. If I do the same for entering DFU mode the LED will flash magenta and then when it starts flashing yellow it goes dark.

I have the Particle CLI installed and issuing particle serial list at the command line returns No devices available via serial.

If I issue dfu-util -l at the command line I get:

Found DFU: [2b04:d008] devnum=0, cfg=1, intf=0, alt=0, name="UNDEFINED"
Found DFU: [2b04:d008] devnum=0, cfg=1, intf=0, alt=1, name="UNDEFINED"
Found DFU: [2b04:d008] devnum=0, cfg=1, intf=0, alt=2, name=“UNDEFINED”

Unplugging the Photon results in the above going away so dfu-util is seeing the Photon but it cannot pull the info.

What can I do to resolve this issue?

Thanks, Glenn.

Have you got any external circuitry attached? If so, try removing that first.

I have all external circuitry disconnected. The only thing connected to the board is the USB cable.

So I have done a little more digging and I still cannot get the Photon to flash over USB. Since my initial post I have removed and reinstalled the tool chain (I’m using Mint 17.1) and checked dmesg. dmesg is reporting the detection of the device:

[10449.083536] usb 3-1: new full-speed USB device number 6 using xhci_hcd
[10449.100930] usb 3-1: New USB device found, idVendor=2b04, idProduct=d008
[10449.100939] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10449.100944] usb 3-1: Product: Photon DFU Mode
[10449.100948] usb 3-1: Manufacturer: Particle
[10449.100952] usb 3-1: SerialNumber: 00000000010C
[10449.101379] usb 3-1: can’t set config #1, error -71

but I get the error in the last line and the Photon is not assigned a serial port. At least this is showing that the Photon is in DFU mode even though the led is not flashing yellow.

With dfu-util 0.9 installed I am getting the following output with dfu-util -l

dfu-util: Cannot open DFU device 2b04:d008

If anyone has any ideas that might help me get this thing recovered I will be most grateful.

Have you installed the proper drivers with Zadiq?

I am on a Linux Mint 17.1 machine. I do have the latest libusb drivers installed.

One more thing that is interesting is that if I power the Photon with a power supply not attached to a usb port the led will flash yellow continuously.

Is the USB port on the linux box a 3.0 port ?
I seem to remember some issues with USB 3.0 ports.

Error 71 is EPROTO (Protocol Error), which made me think of USB 3.0

I’m not sure what kernel you’re running, but the usb driver has been known to map ohci errors onto errno-like-substances:

/* map OHCI TD status codes (CC) to errno values */
static const int cc_to_error [16] = {
        /* No  Error  */               0,
        /* CRC Error  */               -EILSEQ,
        /* Bit Stuff  */               -EPROTO,
        /* Data Togg  */               -EILSEQ,
        /* Stall      */               -EPIPE,
        /* DevNotResp */               -ETIME,
        /* PIDCheck   */               -EPROTO,
        /* UnExpPID   */               -EPROTO,
        /* DataOver   */               -EOVERFLOW,
        /* DataUnder  */               -EREMOTEIO,
        /* (for hw)   */               -EIO,
        /* (for hw)   */               -EIO,
        /* BufferOver */               -ECOMM,
        /* BuffUnder  */               -ENOSR,
        /* (for HCD)  */               -EALREADY,
        /* (for HCD)  */               -EALREADY
};

Off the top of my head, I don’t know what the “OHCI TD status codes” mean, but I can state I’ve had very few problems with photons talking to all sorts of linux kernels (but all through USB 2.0 ports or hubs.)

1 Like

I don’t have my laptop booted up but I will check the kernel version. All the ports on it are 3.0

I tried the Photon on a USB2.0 port on another computer and still no joy.

I think I am going to power it with an external source, put it in DFU mode and then plug in the USB to see if that changes anything.

I guess I’ll have to find a windows machine and try that too.

The dfu-util address 2d04:d008 is a P1 module, not a photon. Are you sure you have flashed the correct firmware to the device? The Photon and P1 firmware aren’t interchangeable.

1 Like

Turns out it is a P1 module on a Sparkfun Photon Redboard.

I have only used the online IDE to program this board and it shows as a P1 there.

Is there any way to recover the P1?

Thanks, Glenn.

Have you tried particle update?

Below is the result. The big problem here is that even though the P1 is going into DFU mode it is not being assigned a tty port.

Thanks for the suggestion.

*sudo particle update
!!! There was an error trying execute DFU utilities.

!!! For help with installing DFU Utilities, please see:
https://docs.particle.io/guide/tools-and-features/cli/#advanced-install

!!! You may also find our community forums helpful:
https://community.particle.io/

Error code: unknown

With the JTAG broken out on the Redboard what would I need to reprogram the P1?

Thanks, Glenn.

I’m having this exact issue with a custom P1 board that I tried to update to 0.4.9 today. And yes, I did use the P1 firmware, not the photon’s.

Any idea how to fix this? This thing is bricked otherwise.