Intro:
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.
Two modes of operation are available, "Beacon mode", and "Watchdog mode". A Python script compatible with Windows (Windows 10), Linux (Ubuntu, Debian, Raspbian), macOS, OS X, and FreeBSD (FreeNas 9.10) is used to configure and interact with the device in each mode.
In beacon mode, the supplied Python script allows the device to be turned on or off either manually or programmatically through integration into custom scripts, Python programs, etc.
In watchdog mode, 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 handlied via a supplied Python script/program.