More than once I have encountered project scenarios where an external audio and/or visual alert is required. Such a setup was needed to indicate tasks had completed, to indicate a system had locked up, or even to physically locate equipment! Current solutions were not acceptable by virtue of:
- Lack of audio/visual alert hardware (i.e. embedded systems such as the Raspberry Pi)
- The equipment is a stand-alone system. (Standard network ping/beacon approaches are not possible)
- The equipment is portable. External reliance on monitoring equipment is not practical
- Audio/visual hardware exists, but is not acceptably loud/visible or is used for other purposes
- An indicator is required in absence of an expected action or control ("dead man's switch"/"vigilance control"/watchdog)
- An alert is necessary if a system does not successfully boot
The USB Watchdog timer is a solution to these scenarios where a free USB port is available. It is a USB HID device consisting of a loud magnetic buzzer and super bright amber led with an internal countdown timer in a low-height profile package. If the USB Watchdog is not "pet" within a configurable time period, the LED will flash and optionally the buzzer will activate to raise attention. Non-volatile and volatile configuration parameters are present to allow for one "timeout period to be set for system "boot" time and another for when a system is running.
"Petting" and configuration of the USB Watchdog is performed by a Python script compatible with Windows (Windows 10), Linux (Ubuntu, Debian, Raspbian), macOS, OS X, and FreeBSD (FreeNas 9.10).