Hardware watchdog

Watchdog.init

Watchdog.init, init

Watchdog.init(WatchdogConfiguration().timeout(30s));
Watchdog.start();

The minimum is 1 millisecond, but you should never set it that short since it will frequently fire as the thread scheduler works at 1 millisecond timeslices, and any delays caused by high priority threads or disabled interrupts will exceed that limit.

The maximium varies by platform:

  • Boron, B Series SoM, Argon, Tracker SoM (nRF52840): 131,071,999 milliseconds
  • P2 and Photon 2 (RTL872x): 8,190,000 milliseconds (around 2 hours and 15 minutes)

Watchdog capabilities

WatchdogConfiguration.capabilities, capabilities

On nRF52840 (Boron, B Series SoM, Argon, Tracker SoM) devices, you can optionally keep the watchdog running during sleep by using a capabilities flag:

Watchdog.init(WatchdogConfiguration()
  .capabilities(WatchdogCap::SLEEP_RUNNING)
  .timeout(20min));
Watchdog.start();