Photons breathing cyan but offline

I have a small fleet of 15 prototypes built using the Photon. They were behaving perfectly until I shipped them to a coworker on the opposite side of the country and then tried to update the firmware over the air. I discovered that they all display as offline, and I can’t do an OTA upgrade. I know that they have internet connectivity because they are breathing cyan and sending out data every 15 seconds using http.

When my coworker first received the devices, she configured them to her network using particle serial wifi from the CLI. I still have ownership of the devices.

I have been developing with the photon on my home network for the last few weeks OTA update worked perfectly. Could my coworker’s network be set up in a way that prevents it? She is on a work network that probably has some kind of security features set up. For what it’s worth, the devices are still correctly pushing data to a server outside her work network.

Any help would be much appreciated!

Update: My coworker flashed tinker onto one of the devices over serial on the CLI, using particle flash --usb tinker, but that didn’t help. It’s still showing up as offline for me.

You can try selecting it a perform an OTA flash. The device service showing an incorrect status has been around for some time and occasionally happens to your devices

Thanks for the response! I’ve tried selecting the “offline” devices and and trying to flash OTA, but it doesn’t work.

I’ve read through every forum posting I can find about devices reporting offline when they are actually online, but I haven’t found anything that quite matches my issue. My issue isn’t intermittent, like many previous posts. All the devices work all the time on my network, and none of them ever work on my coworker’s network.

Just to narrow down things.
Is there a way to test an alternative WiFi at your coworkers end (e.g. phone hotspot)?

Can you run something like Chrome’s view-source to see if the device sends the connected event with correct access token and device ID when power-cycling the device?
view-source:https://api.particle.io/v1/devices/<yourDeviceID>/events/?access_token=<yourAccessToken>

Could it also be that your code is servicing the cloud somewhat infrequently (longish running loops, delays, …)?
The fact that TCP traffic works does not guarantee frictionless cloud functionality.

Can you call Particle.functions() properly?

Since 0.4.6 was released just yesterday, can you check what target you’ve selected for OTA and if the fw update actually worked?

My coworker took one of the devices home last night and set it up on her home network. When I woke up this morning, that device was displayed as online on my phone app, and the 14 back at the office were displayed as offline. So I think it’s likely that there is something about her work network that is causing the devices to display as offline.

To answer some of your other questions:
The device that she put tinker on last night, but kept at her office, is still displaying as offline. So I don’t think my code is the culprit. But for what it’s worth, in my code loop() returns immediately most of the time. Every 15 seconds, it runs for at most a second or two.

I’m not able to call Particle.functions() from where I am, outside her network.

Yesterday we tried firmware built against 0.4.5 and 0.4.1, with no luck. (upgraded the firmware over serial with the CLI)

When she gets to work (west coast), we will try:

  1. Get her IT to open up 54.208.229.4:5683 as per this thread.
  2. See if she can call Particle.functions() from within her network.
  3. See if the devices send the connected event on power cycle.
  4. Try loading firmware built against 0.4.6.

Thanks for all the suggestions!

1 Like

Update: After talking with an engineer at her work, he thinks it’s likely that the necessary port is blocked by the firewall. My request to open the port is stuck in a bureaucratic maze. I’ll post an update if it ever gets through.

1 Like

Hi all, I would like to resurrect this thread. I’m spending the week in the office with the network problem, so I’m better able to troubleshoot.

Now that I’m here, I can see that the photons aren’t breathing cyan, they are flashing cyan. So they are on the WiFi but not reaching the Particle cloud. I have a hotspot that I can control, and they happily breathe cyan when connected to the hotspot. So I’m pretty convinced that the problem is with the corporate network here. Maybe a firewall problem? FWIW there is no captive portal.

I got IT here to open up 54.208.229.4:5683, as per [this][1] thread. They say they have done it but I don’t know how to double check. I wasn’t able to ping that IP address, and telnet 54.208.229.4 5683 timed out. However, I tried both those things from the hotspot and they didn’t work there either. Any chance the IP/port have changed since that thread was written? Does anyone have any other ideas of things I could try?

Thanks for any help you can give!
[1]: [Resolved]Spark Cloud - IP range and ports for firewall

Get them to open device.spark.io instead with port 5683 for TCP

Thanks! I submitted an IT ticket to do that, I’ll update when it goes through.

Ok, that fixed it. The boxes are happily connected to the WiFi and breathing cyan. Thank you @kennethlimcp!

1 Like