My photons don't connect to the cloud

Recently, my photons don’t seem to be able to connect to the cloud anymore.

I can put them to listening mode and connect to them using the Android app, but the process usually gets stuck at the “Verifying product ownership” step and the LED keeps plusing green. If the process doesn’t get stuck and I can give a name to the device, the LED ends up blinking blue.

I’ve tried to make my photons work by running particle serial wifi and particle doctor numerous times to no avail. When running these commands my photons don’t even list nearby access points, so I always have to manually type SSIDs.

I’ve spent way too many hours with this, and I’m exhausted beyond measure. Please give me some help, guys.

According to your description, I believe that it indicates an authorization problem and that you are discussing ownership issues. Try a logout via CLI with particle logout, then particle login and check if the devices are displayed with particle list.

That's not surprising since the device is already owned by you and currently there is no way to skip that part for that case (IIRC).
But we might need to know something about the history of that device.
If you ever had some code flashed to it that did use a non-AUTOMATIC SYSTEM_MODE or switched to some other modes that are not valid anymore (e.g. static IP or external antenna) then you will see the same symptoms.

Also Safe Mode should always be one of the initial troubleshooting steps.
Another step would be to try connecting to another network (e.g. your mobile phone hotspot).

BTW, 5GHz networks are not supported and may interfere, the same with some noisy/chatty Bluetooth devices, unusual password or SSID characters, wrong encryption type, captive portals, ... all these might cause you grief too.

Thanks for your quick reply, guys!

particle logout and particle login didn’t improve things.

As for the history of my devices, I haven’t ever used a non-AUTOMATIC SYSTEM_MODE. I did experiment with the external antenna and static IP when trying to fix this mess, but since then I restored all my photons to internal antenna and dynamic IP with particle doctor.

I made some progress thanks to safe mode. I put my photons to safe mode, then they were blinking green. Then I put them to listening mode with the setup button. This way, particle serial wifi was able to list nearby access points, and the Android app made them connect to the cloud. Unfortunately, after rebooting them they pulse white.

I managed to do the above to 2 of my 4 photons. Regarding the remaining 2 photons, none of them list any access points with particle serial wifi. I can connect to one in listening mode, but cannot make it connect to the cloud.

What should I do now?

You can try to revert back to factory firmware via particle flash --usb tinker and see what happens then.
If Safe Mode helps, Tinker should do too.

particle flash --usb tinker did it for the first 2 photons! Now they can connect to the cloud! Thanks so much!

Regarding the last 2 photons, do you have any ideas? Both blink green after power up and flashing Tinker didn’t make any difference. They don’t list nearby APs via particle serial wifi. One of them is listed as a softAP in listening mode, then the Android app asks if I want to change owner. I answer yes, then I enter wifi access information and it fails to access the cloud, and keeps blinking green upon power up. I can’t even connect to the other in listening mode.

If Tinker did change something for two of your devices I’d deduce that some of the repairs particle doctor should have done may not really have stuck.

That’s also the reason why I prefer doing things the old fashioned way instead of relying on some auto-magic provided in some “black box” tool :wink:
So try flashing this to your device

SYSTEM_MODE(SEMI_AUTOMATIC)

const uint32_t magicNumber = 0x000c0ffe;

void setup() {
  uint32_t check;
  EEPROM.get(0, check);
  
  WiFi.on();

  if (check != magicNumber) {
    WiFi.useDynamicIP();
    WiFi.selectAntenna(ANT_INTERNAL);
    WiFi.clearCredentials();
    EEPROM.put(0, magicNumber);
    delay(1000);
    System.reset();     
  }
  
  Particle.connect();
}

After that, the WiFi settings should be set right. For save measure also unplug the device and leave it depowered for a little while.
Then you need to reenter your WiFi credentials (best via particle serial wifi without auto-scanning).

Thanks for the further help! I’ve tried to build your code, but got a build error when setting up the toolchain. Would you possibly build the binary and upload to this thread?

What was the error message?

You can try that code via Web IDE and from there you can download the binary for wired flashing via the cloud icon next to the project name
image

I deleted the Particle build toolchain, so I can’t remember the error message, but it shouldn’t matter, because I was able to build and flash the firmware just as you suggested. Unfortunately, it didn’t make any difference.

The situation of my 2 remaining Photons is unchanged. Do you have any more suggestions?

Currently I have no more ideas.
But you could open a support ticket at support.particle.io

Now that I see it, the P0 module of one of my Photons has a dent in it, so there’s a good chance that it’s physically damaged. Maybe the other, too. That might explain these issues.

Thanks for always following up, and never letting me down. Best support ever!

1 Like

I have been investigating similar issue with one photon, in a wlan with few others this one unit failing cloud connection, but being able to connect to wlan. Now I saw a small dent on top of the P0 module so I suspected it must have gotten some damage.

Funky enough, this unit is still able to connect to cloud via my other wlan.
But the point here: the P0 is quite sensitive part - as I initially suspected bad connection I started press-testing this unit from various places, and voila when one presses softly (something like max 200g) to top of P0 with finger tip, photon reboots. This seems to be a feature in my other photon units too. ESD protection is not enough, these babies need physical safety too.

Yup, that's a safety feature to power down the device before pressure to the casing would short out some internals.

This was already reported back in 2015 :wink: