404X Connectivity Question

I personally have experienced this exact issue maybe 5-6 times. I can ping the device, the customer tells me the status LED was breathing as if it’s connected but the device stops sending data and I’m not able to call a particle function.

Oddly enough it does “accept” an Over The Air (OTA update). This naturally then resets/reboots the device. From that point forward it would work just fine.

I personally think it’s something with my firmware or device OS that causes the connectivity to hang. No idea what it could be but so far I just do the OTA update to get out of it the few times it occurred. I tend to believe it’s some edge scenario in device OS simply because I have a hardware watchdog already that if the application firmware stops calling loop() it should reset itself. Secondly, that application firmware also does a deep power down using the AB1805 if it’s trying to connect for more than 11 minutes. That too does not reset it. So my hypothesis is some strange edge condition/bug in Device OS that it thinks it’s connected, user application code is still functioning properly but no message (Particle.publish() or Particle.function()) gets through.

This is precisely the scenario where I am looking at adding a cloud side watchdog: Hardware watchdog in Device OS 5.3.0 - #9 by jgskarda

Basically, pet the watchdog anytime it successfully receives back an ACK from a particle.publish(). Or possible use a Particle.Function() to let the watchdog maybe every 2 hours from my back end. If the watchdog doesn’t get pet by the cloud the device will reset itself.

Would be great to know if an OTA update would work for you. Give it a try and let us know.

3 Likes