# Watchdog Words The RP2040 includes watchdog functionality that, when enabled, triggers a reboot after a set delay during which the watchdog timer is not updated. It also has the capability to force a reset. By default the watchdog timer is disabled, the watchog delay is 1 second, and the watchdog (once enabled) is updated automatically each time the multitasker runs outside of a critical section. This behavior chan be changed in that the watchdog delay can be set to any time between 0 microseconds (i.e. trigger immediately, and report a 'force' reboot reason rather than a 'timer' reason) and 8388607 microseconds, and the multitasker can be set to not automatically update the watchdog timer (and this require manual updating by the user). ### `watchdog` ##### `x-out-of-range-watchdog-delay` ( -- ) Out of range watchdog delay exception. ##### `update-watchdog` ( -- ) Update the watchdog timer with the currently set watchdog delay. ##### `force-watchdog-reboot` ( -- ) Force an immediate watchdog reboot even if the watchdog timer is not enabled. ##### `watchdog-delay-us!` ( us -- ) Set the watchdog delay to a specified non-negative number of microseconds, up to a delay of 8388607 microseconds. If an out of range delay is provided `x-out-of-range-watchdog-delay` will be raised. Note that if a value of 0 is provided and the watchdog is currently enabled the watchdog will trigger immediately and a 'force' reboot reason will be reported; this also will happen if the watchdog is disabled, and then the watchdog is enabled after this is called. Also note that if the watchdog is enabled and a value other than 0 is given the watchog timer will be updated with that value. ##### `enable-watchdog` ( -- ) Enable the watchdog timer. If the watchdog delay is currently set to 0 the watchdog will trigger immediately and a 'force' reboot reason will be reported. ##### `disable-watchdog` ( -- ) Disable the watchdog timer. ##### `reboot-reason-watchdog-force?` ( -- force? ) Get whether the most recent reboot was due to a watchdog force. ##### `reboot-reason-watchdog-timer?` ( -- timer? ) Get whether the most reason reboot was due to a watchdog timeout. ##### `enable-multitasker-update-watchdog` ( -- ) Enable the multitasker automatically updating the watchdog timer each time it runs outside of a critical section. ##### `disable-multitasker-update-watchdog` ( -- ) Disable the multitasker automatically updating the watchdog timer each time it runs outside of a critical section. ##### `enable-fault-watchdog-reboot` ( -- ) Enable triggering a watchdog force reboot on a hardware fault. ##### `disable-fault-watchdog-reboot` ( -- ) Disable triggering a watchdog force reboot on a hardware fault.