Why is photon attempting cloud connection in MANUAL system mode?

I recently had a rather disconcerting behavior with my Photons. I have mine configured with MANUAL system mode and a local WiFi connection without Internet access. They communicate via UDP to a tablet app. Normally my photons breath green but after being off for a week I was surprised to see them blink green and then switch into a fast blue blink as if it was attempting a cloud connection. My app did not appear to run. Here’s the sequence:

  • breathing green, all is well (using 2 photons for all below)
  • shut down for a week. No change in WiFi credentials.
  • power on (external 5V supply)
  • fast blink green, then switch to a fast blink blue
  • power cycle, reset button exhibit the same behavior, come up blinking green and switch to blue.
  • Connect my wifi router to the Internet
  • photons start to breath blue
  • photons appear to go thru some sort of ‘update’ (based on the LEDS)
  • photons reboot on their own and come up breathing green
  • photons now communicate via UDP just fine

At no point did I have to enter new WiFi credentials. What is disturbing is the fact that the photons decided they needed to connect to the cloud even though I am using MANUAL system mode. In a real deployment my application would fail if this happened.

For the record, I’m not calling Particle.connect and I normally update my particle application via usb.

Anyone know why the photons are trying to connect to the cloud in MANUAL mode? How do I prevent this from happening in the future?

1 Like

hmm, is it possible your constant communications do something disruptive that gets the photon in a wacky state? Sorry to be so vague but I cannot describe it any better. I am having (perhaps) a similar situation whereby experience my devices coming off line (I do connect to the cloud) while blinking rapidly blue and app code seems to stop. My app communicates regularly but not at high speed.

Are you measuring anything on A0 or A1 ?

This does sound odd in deed, but I have seen this behaviour on Spark/Particle Cores before - never on a Photon tho’
Maybe something for @tylercpeacock to look at

If you flash user firmware that requires a newer version of system firmware than is installed on the Photon, safe mode healer will kick in before your user firmware runs. The safe mode healer will connect to the cloud to load the newer version of system firmware required before your firmware has run. If that’s the case, it is the expected behavior.

Safe mode healer certainly describes a likely explanation. I don’t recall updating via usb without successfully running my app but I can’t rule that possibility out. What is the best way to determine what system firmware is installed vs what the CLI is using?

Can’t say best, but options are

  • in Listening Mode
  • particle identify
  • particle serial inspect
  • any serial terminal with the command v

CLI will by default build against the most recent release version unless told differently via --target
To check what version a binary was built for, you can use

particle binary inspect <your.bin>