Szia!
A beillesztéshez kell látni a programot, magában elég nehéz, illetve gondokat okozhat.
watchdog valóban két féle van. Az alapelv többé-kevésbé azonos. A lényeg, hogy adott időpillanatban elindul két számláló (idő), az egyik, amikor lejár, indít egy jelzést a másiknak és újraindul. A másik figyeli, hogy jön-e jelzés a türelmi időn belül, ha nem, akkor automatikusan elindít egy protokollt, ami eszközről eszközre változhat (lehet reset, megszakítás stb.). Nyilván az első időintervallum számottevően rövidebb, mint a második. A watchdog alkalmazástól függően néhány tizedmásodperctől akár perces várakozásra is beállítható.
Arduino keretrendszerben a szűk keresztmetszet az, hogy ugyan az Atmega 328 dugig van órákkal, ezek közül az IDE+bootloader páros sajnos csak elég keveset, konkrétan egyet enged egyszerűen elérni, és azt is csak hívás szintjén (megkérdezhetjük, hogy reset vagy túlcsordulás óta mennyi idő telt el). A másik, hogy mivel a jelek szerint végtelen ciklusba kerül a rendszer, tök mindegy, hogy kód szintjén mit oldasz meg, mert a watchdog kódrészhez nem fog elérni a szoftver.
Itt jön képbe a külső watchdog, ami lehet egy pár alkatrészből álló egyszerű áramkör, ami úgyszintén számol és nulláz, ha jelet kap. Ha nem jön jel az adott ideig, akkor például elindít egy hard reset-et.
A műszaki megvalósításban nem tudok segíteni, Arduino keretrendszerben nem foglalkoztam a dologgal.