Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pastcompute/hardware_watchdog
Hardware watchdog for ESP8266 made using an ATtiny13
https://github.com/pastcompute/hardware_watchdog
Last synced: 16 days ago
JSON representation
Hardware watchdog for ESP8266 made using an ATtiny13
- Host: GitHub
- URL: https://github.com/pastcompute/hardware_watchdog
- Owner: pastcompute
- License: gpl-3.0
- Created: 2015-12-19T12:33:27.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-19T12:45:25.000Z (almost 9 years ago)
- Last Synced: 2024-10-03T12:23:48.419Z (about 1 month ago)
- Language: C
- Size: 17.6 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hardware_watchdog
Hardware watchdog for ESP8266 made using an ATtiny13## Background
This program was originally developed to kick an ESP8266 when it experienced
the notorious Fatal Exception (3) on wakeup from deep sleep.It avoids needing an extra watchdog line by just monitoring another signal:
for example, the SPI CS for an external peripheral always expected to be
used after wakeup from deep sleep. If there is no activity within the
expected time, reset the ESP8266.I suspect that the actual problem is that the Deep Sleep wakeup which pulls
the ESP8266 Reset line low does not hold the line low for long enough.
On observing the wakeup using my CRO I noticed that the deep sleep wake
only held reset low for about 15ms.I was always able to recover from the Fatal Exception by pressing the reset button.
Therefore I designed this hardware watchdog to hold reset for 500ms.## Configuration
Change `TIMEOUT_MINUTES` to the desired value.
## Circuit
* Connect 3V3 and GND to the ATtiny13
* Connect the signal that indicates proper operation to pin 3 on the ATtiny13
* I'm using a pin change interrupt which keeps things simple
* Connect the ESP8266 RESET line to pin 6 of the ATtiny13
* The watchdog will also drive LEDs on pins 2 and 5 for debugging:
* Pin 2: latches for 200ms whenever a pin change interrupt occurs
* Pin 5: blinks then stays on for 15 seconds whenever the ESP8266 reset is activated by us## Flashing
Instructions for flashing the ATtiny13 using a USB ISP via Linux are in the source code.
## Testing
Tested succesfully under real conditions;
my system which would crash randomly and require physical reset anywhere
from 10 minutes to several hours. Since building the watchgod, it has now
been running for several days and I have not had to physically reset it.I had a serial monitor connected and noticed that in the first 24 hours of use,
the hardware watchdog had to do its job about 20 times...