Photon blinking Green, then back to blue during setup

So, just got my Photons! Yay! So, with one of them, setup was a breeze, used the Android app, connected no problem. The other one however… I’ll just lay it out in list form what I’ve tried to get it to connect.

  1. Tried the app. Sometimes it gets access to the Photon, which goes to to blinking green when I pass it the wifi credentials, but then goes back to blinking blue, and eventually the Android app give an error.
  2. Tried Particle-CLI. On my laptop (Win7), doesn’t detect the serial connection, and the Wifi setup doesn’t work. On desktop (w/o Wifi), doesn’t detect serial connection.
  3. Tried manually connecting to it via a serial terminal, which works, and was able to get the device id and upload wifi credentials, but Photon again just blinks green for a bit, before going back to blinking blue again.
  4. Updated (via dfu-util) the firmware to the latest version (via https://github.com/spark/firmware/releases, including updating the user-part), and tried everything again. Still no luck.

If it helps, it’s a headerless Photon, w/ device id 2c002f000447343232363230, and it doesn’t seem like it would be a hardware problem, but there’s evidence of rework near the Wifi antenna (leftover flux).

Any ideas anyone? I’ve pretty much exhausted what I can think of. Thanks!

2 Likes

I will help you sort this out. In the meantime, DO NOT perform a factory reset! This can brick your device due to a cascade of various issues that lead to the device going in a continual reset loop.

There is hardly ever a reason to perform a factory reset on a photon since it replaces just the user firmware. It’s not like the Core, where a factory reset replaced both user and system firmware.

I am in nearly this exact situation. Earlier, I have setup two photons successfully. I just received a 3rd (in the form of an internet button) and have tried steps 1, 2 (except from a Mac), and 4 above. Mine does not revert to flashing blue (unless I hold down the setup button) it just stays flashing green.

The network is fine, other devices and photons are connecting to it with the same credentials I’m attempting to use.

Not sure what to try next, it’s essentially a brick at this point.

Blinking green means it’s trying to connect to WiFi. That’s a good sign. I know this is going to sound a bit unhelpful, but double check that you are entering the WiFi credentials correctly. Are you using the Particle CLI tool?

yeah i know. i did it at least a dozen times. credentials were fairly simple.

Through a “random” selection of other forum responses I got it to work. I’ll list it here for others in the future:

particle serial wifi

This asked me some questions:

? Should I scan for nearby Wi-Fi networks? No
? SSID: ****
? Security Type: WPA2
? Wi-Fi Password: ****

This got me kinda connected but in a weird way where it was rapidly flashing cyan and then orange? (yellow/red) and back and forth. Googling this took me to a message saying the keys were messed up and to do the following:

particle keys new

Which output

running openssl genrsa -out device.pem 1024
running openssl rsa -in device.pem -pubout -out device.pub.pem
running openssl rsa -in device.pem -outform DER -out device.der
New Key Created!

This generates device.der, device.pem, device.pbu.pem in the current directory.

Then I put the device in DFU mode (flashing yellow) and flash this new key using dfu-util:

dfu-util -d 2b04:d006 -a 1 -s 34 -D device.der

That did it. After resetting I was to the normal breathing cyan.


Update: The above DID get the breathing cyan working but I could not flash apps to it (got a red flashing light when I tried). This was fixed with further hackery like commands… It may have been just one of these that fixed it but here is what I did to get app flashing working:

Put the particle cloud public key on your device… put the device back in DFU mode:

wget https://s3.amazonaws.com/spark-website/cloud_public.der
dfu-util -d 2b04:d006 -a 1 -s 2082 -D cloud_public.der

Reset the device (should be back to a breathing cyan). Then using the device.* files generated above, associate the public key with your device id with particle:

particle list
particle keys send <DEVICE_ID> device.pub.pem

Just guessing but at this point I think I’ve probably manually replicated what “particle setup” does. It would be nice if it was documented somewhere exactly what it does when it sets up a device (it probably is documented, I just haven’t seen it).


Oddly the original particle setup that I had been attempting never attempted serial. When it came up it always said the following:

> I have detected a Photon connected via USB.
? Would you like to continue with this one? Yes
! The Photon supports secure Wi-Fi setup. We'll try that first.

This “We’ll try that first” implies that if it didn’t work it would fall back to usb/serial but I could find no way to get setup to do anything different.

I got it working, hopefully the above helps someone else.

2 Likes

Edit: I see you've already got it working


Have you got all the devices connected simultaniously while trying to get the new one on too?
If so, try to disconnect a few of them, wait for a few minutes, till the router "claims back" the DHCP IPs and then try again.
Another possible problem could be if there was MAC filtering enabled on your router.
The next thing that also might interfere might be the firmware version on the device. Older versions did have problems with the automatic antenna selection switching between chip and uFL antenna. For this try to perform a particle update via DFU mode and CLI.