Photon Stuck in Yellow State


#1

Hi All,

I have a photon which seems to be stuck in a DFU state. After putting it in DFU, the following command output ensues:


> Your device is ready for a system update.
> This process should take about 30 seconds. Here it goes!

▌ Updating system firmware on the device...dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuDNLOAD-IDLE, status = 0
aborting previous incomplete transfer
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x080c0000, size = 15336
Downloadng syste[=========================] 100%        15336 bytes
Download done.
File downloaded successfully
▌ Updating system firmware on the device...dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: File too short for DFU suffix
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
▀ Updating system firmware on the device...Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "DCT Flash   "
Downloading to address = 0x000006d9, size = 1
Download	[                         ]   0%            0 bytesdfu-util: Error during download get_status

! An error occurred while attempting to update the system firmware of your device:

dfu-util: File too short for DFU suffix
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!

dfu-util: Error during download get_status


> Please visit our community forums for help with this error:
https://community.particle.io/
Cannot read property 'code' of undefined
TypeError: Cannot read property 'code' of undefined
    at dfuError (/Users/jls/.particle/node_modules/particle-cli/dist/cmd/update.js:120:18)
    at dfu.findCompatibleDFU.then.catch.err (/Users/jls/.particle/node_modules/particle-cli/dist/cmd/update.js:31:14)
    at <anonymous>
    at runMicrotasksCallback (internal/process/next_tick.js:122:5)
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickCallback (internal/process/next_tick.js:181:9)
➜  ~```

Any idea what is wrong? I tried a `particle flash --usb tinker` which works but nothing changes on the device (stays flashing yellow).

#2

Try putting the device in safe mode, by holding the mode and reset buttons releasing the reset button then release the mode button when the rgb LEDs flahes magenta. Once in safe mode, reflash tinker.

This should recover the device, as far as what caused the issue to begin with, we would need to see what code was flashed to help with that.


#3

hi @Mjones — no luck. I can’t even get it into safe mode :frowning:

Just to make sure I had the timing right I followed the timing here: https://www.youtube.com/watch?v=u7cshy1rRrg

For what it’s worth, there is also a blue light lit solid on D7. Any more ideas?


#4

A couple of things. That video isn’t doing a very good job of following the instructions for safe mode. The best way that I have found is to hold the mode button, then press and release the reset button, as soon as the led starts blinking magenta, release the mode button. You should not hold the buttons down as long as he did in that video.

As for the D7 LED, is it dimly lit or full brightness?


#5

Hi @Mjones – Yeah, I think he did it wrong and finally got it at the end…

I hold both down, release reset and then very quickly release the other button once I see magenta. It happens pretty fast.

D7 is very bright.


#6

If you got it into safe mode, you can reflash tinker. The d7 LED may be from the user code you flashed on it. Looking at your code would still help to determine the cause.


#7

@Mjones – It flashes yellow no matter what I do it seems. Reflashing tinker doesn’t seem to work. Thanks very much for the help, hopefully someone has a solution!

I can post the code but honestly I can’t imagine how it could cause this problem. It was just a program I had flashed once via the cloud and I wanted to try in the workbench. I suspect what happened was that when I tried to do a local flash it failed – and now here we are.


#8

@Moors7 and @ScruffR are good at in depth troubleshooting. Maybe they can get deeper with you on this.


#9

I’d download the following files
https://github.com/particle-iot/device-os/releases/download/v1.4.0/photon-system-part1@1.4.0.bin
https://github.com/particle-iot/device-os/releases/download/v1.4.0/photon-system-part2@1.4.0.bin
https://github.com/particle-iot/device-os/releases/download/v1.4.0/photon-tinker@1.4.0.bin
https://github.com/particle-iot/device-os/releases/download/v1.4.0/photon-bootloader@1.4.0+lto.bin

and then run

particle flash --usb photon-system-part1@1.4.0.bin -v
particle flash --usb photon-system-part2@1.4.0.bin -v
particle flash --usb photon-tinker@1.4.0.bin -v

After that - when all worked without error - the device sholuld be able to get out of DFU Mode.
If so, I’d put the device in Listening Mode and also run

particel flash --serial photon-bootloader@1.4.0+lto.bin -v

If this doesn’t help, it might be time to file a ticket at support.particle.io


#10

@ScruffR – success! I’m pretty sure this happened when the local flash failed from before so I’m glad it’s possible to recover.

I didn’t do the last step yet but wanted to report it is working. Thanks!