# Improving Electron Reliability - External Watchdog Timer

**URL:** <https://community.particle.io/t/improving-electron-reliability-external-watchdog-timer/34221>\
**Category:** Project Share\
**Created:** [June 30, 2017, 7:21pm UTC](https://community.particle.io/t/improving-electron-reliability-external-watchdog-timer/34221 "2017-06-30T19:21:44Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![thrmttnw](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/thrmttnw/32/13878_2.png) [@thrmttnw](https://community.particle.io/u/thrmttnw)\
**Post date:** [June 20, 2018, 1:02pm UTC](https://community.particle.io/t/improving-electron-reliability-external-watchdog-timer/34221/11 "2018-06-20T13:02:23Z")

</div>

> [@rickkas7](#):
>
> That will likely clear up any potential modem state issues. Just be careful to not get into a rolling cycle of doing that.

Thanks. It sounds like Cellular.off() done the right way is something that would mostly work. I am thinking that I am after something "certain" when all else fails.

So I looked at schematics for a modem reset pin and I found RESET\_UC connected to pin PC4, and an example of how to pull it:

> [@Electron Flashing Green - Will not connect until battery removed](https://community.particle.io/t/electron-flashing-green-will-not-connect-until-battery-removed/34467/5):
>
> We really need a way to double check that the modem is OFF or ON slight_smile Until then, sparingly try to access the cellular hal directly which does offer a return value. #include "cellular\_hal.h" cellular\_result\_t result = -1; result = cellular\_off(NULL); if (result) Serial.println("ERROR!\r\nFailure powering off the modem!"); else Serial.println("OFF!"); result = cellular\_on(NULL); if (result) Serial.println("ERROR!\r\nFailure powering on the modem!"); else Serial.println("ON!"); Also…

@rickkas7 In the case mentioned earlier with `SEMI_AUTOMATIC` mode, I would have to do a `Cellular.on()` before a `Cellular.off()` if i used that. So I am thinking that instead I might as well pull the RESET\_UC pin right away, before moving on with normal business, whenever starting up and detecting a reset with:

`System.resetReason() == RESET_REASON_PIN_RESET`

@chipmc have you settled on a criteria for pulling the hard reset line in your applications?

---

_[View the full topic](https://community.particle.io/t/improving-electron-reliability-external-watchdog-timer/34221)._
