Clarification on AWD

I need a little help in fully understanding the workings behind the AWD. From the documentation:

"If the application has not exited loop, or called Particle.process() within the given timeout, or called ApplicationWatchdog.checkin(), the watchdog calls the given timeout function, which is typically System.reset. This could also be a user defined function that takes care of critical tasks before finally calling System.reset."

Does this imply that if the Photon cannot access the Internet due to an ISP problem that lasts for 2-3 minutes, would this cause the AWD to fire? I have a 60-second AWD setup now and I happened to be up early and saw my device reboot. Just before it rebooted I saw a message pop up on my Mac indicating that my Outlook 365 client had failed to connect to the mail server. Shortly after the device rebooted which I assumed meant that my Internet connection dropped long enough to fail connecting to mail, and long enough to trigger the 60-second AWD.

My understanding of the AWD was that it was designed to recover from a situation where the entire chipped has stopped working and reboot it. Is this a correct assumption or does it also include situations where Internet access is temporarily disrupted and the device cannot check-in with the mother ship?

Nope, it does not - and shouldn’t fire. The cause for your reset might have other reasons (even a bug in the AWD is thinkable - requires testing before assuming tho’).

This is the same Photon where I recently upgraded to 0.7.0 and I’m still getting random reboots about every other day. It’s just weird this morning that I heard the weird “boing” sound that Outlook makes when it can’t connect to the cloud to get my mail and as I looked over to the Photon device it was rebooting (LCD screen contains status messages). I have made the change regarding the stack space and at least when it reboots it doesn’t hang.

It was also weird two days ago when I thought I would just downgrade to 0.6.3. I use the web IDE (OTA) and selected 0.6.3 as the firmware target and clicked on the “flash” button. My code uploaded fine but it’s still showing 0.7.0 as the firmware version. I tried it again with the same results. I just took the following screen capture:


I thought all I had to do to downgrade was select and flash.

That’s not weird, that’s by design. Lower version application firmware will run under higher version system firmware and hence a system downgrade is not required.
If you want to revert to 0.6.3 you should read the downgrade instructions in the release notes.

1 Like

Well, for what it’s worth I just downgraded to 0.6.3. I’ll let it run a couple of days and see what happens.


Well, it’s been several days now…no reboots since I downgraded to 0.6.3.