[SOLVED]Bricked Photon (DFU and Safe mode works)

Hey folks. I’ve found a few of these posts on the forums but my situation is a bit different. I have a brand new out of the box photon that I was having some issues with getting setup (it would connect to wifi, breathe cyan for a few cycles, then drop connection, blink white and magenta randomly, and repeat the process.) I went through the setup procedure no more than 3 or 4 times and then the thing just borked. The main RGB led isn’t lit and the D7 led is on very dimly. What is different about my situation is that I can place the device into dfu mode however trying to reflash the firmware isn’t successful. (I get this error, Error writing firmware…invalid dfuse address: 0x080A0000:leave). If i try to do an update, it tells me the flash was successful however it never resets and a manual reboot takes it right back to the bricked state. I am also able to place the device in safe mode as well however that’s as far as I can get with it. Any suggestions?

After doing a Particle update could you try Particle flash --usb tinker?
In safe mode, can you configure the credentials, and does it get to breathing magenta? If it’s in breathing magenta, is it visible as online in the IDE?

1 Like

This is the first time firmware update which wants to be left alone, since it's not random blinking, till it finishes, otherwise you might run into troubles.
But I think this is documented here
https://docs.particle.io/guide/getting-started/start/photon/#step-2-connect-with-your-smartphone

OK, the guide to fix is a bit outdated as it links to firmware v0.4.6 (instead of currently latest v0.4.7) but that will be fixed with the next reflash via Particle Build Web IDE or as @Moors7 pointed out via particle update (but then you'll have to allow for the update to finish properly again).

After particle update and particle flash --usb tinker i get the following…

Found DFU device 2b04:d006
checking file /usr/lib/node_modules/particle-cli/binaries/photon_tinker.bin
spawning dfu-util -d 2b04:d006 -a 0 -i 0 -s 0x080A0000:leave -D /usr/lib/node_modules/particle-cli/binaries/photon_tinker.bin
invalid dfuse address: 0x080A0000:leave

Error writing firmware...invalid dfuse address: 0x080A0000:leave

Once I get it into safe mode, I can’t get it to listen for new credentials (stays solid magenta until either unplugged or reset is pressed, if reset is pressed it goes back into no RGB led and dim D7).

It was doing this ‘update’ for over an hour.

EDIT - and occasionally blink red

When in Safe Mode, is your device breathing magenta?

You could also try the manual DFU update as pointed out in the fix link above or for the current system version
Release Firmware Release 0.4.7 · particle-iot/device-os · GitHub


Immediately after you had provided the WiFi credentials without any further interference or powerloss?

No it's solid

Tried this and this is what I get...

(trusty)jake@localhost:~/Downloads$ dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.4.7-photon.bin
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Filter on vendor = 0x2b04 product = 0xd006
Opening DFU USB device... ID 2b04:d006
Run-time device DFU version 011a
Found DFU: [2b04:d006] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash   /0x08000000/03*016Ka,01*016Kg,01*064Kg,07*128Kg"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
No valid DFU suffix signature
Warning: File has no DFU suffix
DfuSe interface name: "Internal Flash   "
(trusty)jake@localhost:~/Downloads$ dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.4.7-photon.bin
invalid dfuse address: 0x8060000:leave

Correct

In this case it might be time to open a support ticket on the [Support page][1] or shoot Particle a mail on hello(at)particle.io with a reference to this thread.

But hold on, I see you have dfu-util 0.5, you need 0.7+ (currently 0.8)
[1]: https://www.particle.io/support

Hi @N2B8

This error comes up because your version of dfu-util (0.5) is too old to understand the command used. You should get dfu-util 0.7 or higher (0.8 is the current release). Go here to get it:

2 Likes

@bko @ScruffR ah ha! I’m on an Ubuntu machine at the moment and it’s not letting me go higher than 0.5, I’ll give it a shot on my mac later and give an update.

1 Like

Huh. Yeah, the dfu-util for trusty is 0.5. For vivid, they have 0.8, but I don’t see a backport to trusty for that version. You could try installing the vivid package – it looks like trusty already meets the dependency requirements for the libc6 and libusb-1.0-0 packages.

So, if you’re feeling particularly brave (I have not tried this, and I don’t guarantee that it might not break something):

wget http://mirrors.kernel.org/ubuntu/pool/universe/d/dfu-util/dfu-util_0.8-1_amd64.deb
sudo dpkg --install dfu-util_0.8-1_amd64.deb

Sorry for the delayed update. After using dfu-util 0.8 on my mac, everything now works perfectly.

4 Likes