[Solved] Photon stuck breathing white

Hi Everybody,

I am using since a couple of weeks 2 photons for connecting an RC aircraft to a laptop, a client photon being on-board, connected to an Arduino in charge of sensors acquisition and a server photon on the ground connected to the laptop by USB..
Everything went quite well so far, I could send continuous data through the could and could decode them with my PC.

Yesterday my WiFi was quite bad and I tried to isolate the link from the cloud by using SYSTEM_MODE(SEMI_AUTOMATIC) to avoid the client going green breathing (cloud lost). Then the server photon went white breathing. The client is still Ok.
I read on the guide that this is symptomatic of the WiFi module being disconnected:

If your device is breathing white, the Wi-Fi module is off. You might see this mode if:
You have set your module to MANUAL or SEMI_AUTOMATIC in your user firmwareYou have called WiFi.off() in your user firmware

I cannot get out of this status. I cannot flash anymore, meaning that no more purple then green then cyan color sequence. I get an 'flashing unsuccessful' message.
I tried flashing 'blink led' without success (although the Particle Build IDE says that flashing is ok!).
I tried to particle setup it but as the WiFi is disconnected, the process cannot complete (Waiting for a wild photon to appear...).

Do you have any idea on how to get out of this?

Thank you very much for your support.

JM

@jmeuf, did you try putting your Photon in Safe mode?

https://docs.particle.io/guide/getting-started/modes/photon/#safe-mode

You could also try entering DFU mode and flashing firmware via USB. You can compile it on the cloud and download it by clicking on the button highlighted in red when you are in the IDE looking at your app.

You can install the binary by using the following and replacing user-firmware.bin with your downloaded app:

dfu-util -d 2b04:d006 -a 0 -s 0x80A0000 -D user-firmware.bin

If the above doesn't work or for some reason you need to re-flash 0.4.6 firmware, you can download part 1 and part 2, then put your photon in DFU mode and enter the following in the command prompt:

dfu-util -d 2b04:d006 -a 0 -s 0x802000 -D system-part1-0.4.6-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x806000 -D system-part2-0.4.6-photon.bin

Hi Peekay, hi DPower,

thank you for your answer.

did you try putting your Photon in Safe mode?

What shall I do once I am in safe mode to solve the issue? How shall I get back to normal mode from safe mode?

JM

Safe mode will just prevent your software from running to see if that is what is keeping you from getting online.

I think the issue may be your software you’re running. If you are using SEMI_AUTOMATIC mode the device will just run your code and not attempt to connect to the cloud until you call Particle.connect(). If you aren’t calling Particle.connect() in your code then you’d never try to connect to the cloud and see this issue.

Actually safe mode allows you to OTA another program to your photon. You could send tinker to it to make sure everything is working.

2 Likes

Good to know. Much easier than dfu-util flashing.

Hello Peekay and DPower,

so this is what I did:

  • set the photon to safe mode
  • disable the instruction SYSTEM_MODE(SEMI_AUTOMATIC)
  • flash the firmware

Then things are back to normal (sequence green, then cyan and breath).

Further I recoded as follow:

  • re-enable the instruction SYSTEM_MODE(SEMI_AUTOMATIC)
  • install an instruction Particle.connect() as the first instruction of setup()
  • flash

Then the photon works normally and the issue is solved.

Thank you very much for your instructions! That was very useful to understand a bit deeper into these meta-instructions.

Have a good day!

JM

I’m having very similar issues. Without placing the Photon in DFU mode (or some other flashable mode), is there a way to flash my photon? My photon typically runs without WiFi in MANUAL mode and breathes white. I am reading data from serial from several sensors on the photon which works fine. However, its a big pain to press the two little buttons each time I try to run some new code…is there an easier way? It seems like my Photon is so busy looping that it doesn’t see I’m trying to reflash it? Seems to only be happening in WiFi off (breathing white) mode.

You can enter DFU mode (on Photon or Electron) by setting the USB Serial baudrate from the host side to 14400.

Or in code just add some System.dfu() call
https://docs.particle.io/reference/firmware/photon/#dfu-

But how's that?

How would you flash your device at all when not WiFi connected and not in DFU or Listening Mode?

1 Like