Layers, weakest to strongest:
- Task watchdog (esp_task_wdt): catches a hung loop, resets. Fails if the WiFi stack itself hangs.
- Software timer reboot: esp_restart() every 24h regardless. Blunt but effective against slow leaks.
- External hardware watchdog (TPL5010 or 555 timer): pulls EN low if not petted. Survives total firmware freeze, even a bootloader hang.
The external HW watchdog saved a remote node that the software WDT could not, WiFi driver deadlock ignored the internal timer.
What watchdog stack do you run on truly unattended nodes?