Photon Bricked?


#1

I have several Photons, but two of them seem to be bricked / in an infinite loop. The first one when plugged in just turns on the D7 LED and that is it. It won’t go into DFU mode so I can flash it with Tinker to recover it. The second boots and goes into an endless loop of LED flashes. I can get that one in DFU mode and I can successfully flash it via USB, however when it boots it just goes back into the LED loop. Both of these units had problems during the claiming process and I haven’t been able to get them to work. I am including a picture of the D7 unit and a video of the LED loop unit. Any advice would be appreciated.

LED Loop Video


#2

It looks to me like you have a keys issue (fast blinking cyan to red flashes, repeating) on the one in the video.

Do you have the Particle CLI installed?

If you are using Windows, I recommend using the new Windows CLI installer:

For Mac and Linux, follow these instructions instead:
https://docs.particle.io/guide/tools-and-features/cli/photon/

The first thing will be to do is put the Photon in DFU mode (blinking yellow) by holding down RESET and SETUP, releasing RESET and continuing to hold down SETUP while it blinks magenta until it blinks yellow, then release SETUP. Then issue the CLI command:

particle keys doctor

The next step is to refresh the server public key, just in case:
Download: https://s3.amazonaws.com/spark-website/cloud_public.der

With the Photon in DFU mode (blinking yellow):

particle keys server cloud_public.der

Reset the Photon. This should hopefully get you to breathing cyan.


#3

And your dim blue D7 Photon seems to have a bootloader problem.
If you have a JTAG or Programmer shield you can use that to revive the device, otherwise you could use another Photon as SWD programmer (heed the warnings there!)

Also, remove the conductive antistatic sponge from your device!


#4

Is there a way to get the particle ID from the CLI other than particle list? When I do that it doesn’t detect the photon via usb and particle keys doctor requires a particle ID.


#5

You can put the Photon into listening mode (blinking blue) by holding down the SETUP button until it blinks blue. Then you can use

particle identify

#6

Ok, I did that and it says the device flashed, i.e. “You should now see some LED activity on the device!”. However, there is no LED activity and when I plug the device into USB power it is still bricked. Should I get a JTAG programmer or will that not make a difference?


#7
particle identify

Your device id is undefined
Unable to determine system firmware version

Any other ideas?


#8

Can you put the thing into Listening Mode, connect a serial terminal and send i?


Is this the Photon resurrects Photon way?
Maybe you can file a support ticket then (or @mdma might have a suggestion)


#9

Ok, that worked and I was able to run both of the key commands successfully. The main LED is now showing it is connected to the cloud but when I do a particle list it doesn’t show up. I think it originally went sideways during the claiming process, is there a way to flash the factory setup firmware on it so I can claim it again? FYI, running particle setup finds the device via USB, but then can’t find it when it attempts to set it up via wifi.


#10

You should be able to claim the device with any firmware, but Safe Mode might be a good choice.

You don’t need to go through the whole setup procedure in order to claim the device
This should do

particle device add <youDeviceID>

Or via Particle Build ADD NEW DEVICE button in the target drawer.


#11

Thank you, that worked. I went ahead and ordered a JTAG programming board from adaFruit and will attempt to recover the remaining Photon when I receive it.


#12

You could also try recovering using your working device - https://github.com/m-mcgowan/embedded-swd


#13

After I said this

I think he did and came back with


#14

I missed that bit! Thanks ScruffR for clearing that up.

@caseyz - when you get your JTAG programmer, could you take a copy of the current memory. (I can tell you how to do that when your programmer arrives.) That might help me figure out why the embedded-swd tool didn’t work for you.