Optimal watchdog configuration for dynamic sleep times in nRF9160/nRF9151

Hey,

I have a question regarding the watchdog in a low power application with dynamic sleep times of e.g. 1mim/10mim/1h. In the docs of nrf9160 and also nrf9151 it says https://docs.nordicsemi.com/bundle/ps_nrf9160/page/wdt.html:

The watchdog must be configured before it is started. After it is started, the watchdog’s configuration registers, which comprise registers CRV, RREN, and CONFIG, will be blocked for further configuration.

That means I can not set different timeouts (e.g. "bind" it to the sleep interval or a have one for sleep and a short one for awake)

What is the best strategy here? How would I set an optimal value?

Best

  • Let me recommend:

    Check first your assumptions about the energy consumption and your sleeps.

    In my experience it doesn't pay off to sleep 1h or 10 min instead of 1 min, at least not, if only the watchdog is fed. Other actions may then be executed less frequently.

    So take a PPK II and measure the differences of your app with 1 min, 10 min and 1h. Also consider the overall quiescent, battery self discharging and the energy used when the modem is communicating or searching for networks.

    It would be very interesting, if you get results, that sleeping an hour really extends your runtime on battery.

    Just as benchmark:

    Using UDP based communication (CoAP/DTLS 1.2 CID) a Thingy:91 or Thingy:91X runs for about a year on its 1300mAh battery exchanging a message every hour (depending on the network signals). My app sleeps only for 1 min (k_sem_take) in order to feed the watchdog and execute some small app specific checks.

    Using TCP you will get aware, that the modem communication part gets pretty large. Usually results in communicate once a day or less instead of once a hour.

Related