Electronics - USB Watchdog - Intro


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.


 

USB Watchdog v1.1a Specifications:

  • Hardware:
    • Dimensions (Overall): 66.5 x 23 x 8.9 mm
    • Buzzer: 3.72 Center Frequency, 89-93dBA rating @ 10cm
    • Alert LED: Flashes twice per second, amber, 120deg, 200-240 lux @ 10cm
    • Ping LED: Green
    • Power LED: Green
    • Power Draw: ~20mA at idle, ~130mA activated (light and buzzer on)
  • Software:
    • Timeout - Controls time period before watchdog alarms
      • Non-volatile Setting: 1-65535 seconds. Default is 255 seconds
      • Volatile Setting: 1-65535 seconds. Set to the non-volatile setting at USB-Watchdog power-up.
    • Ping LED - Controls if ping light toggles or not on successful "pets"
      • Non-volatile Setting: enable/disable
      • Volatile Setting: enable/disable. Set to the non-volatile setting at USB-Watchdog power-up.
    • Buzzer - Controls if buzzer sounds after watchdog timeouts
      • Non-volatile Setting: enable/disable. Default is enabled
      • Volatile Setting: enable/disable. Set to the non-volatile setting at USB-Watchdog power-up.
    • Reboot Indicator - Offers means to determine if the USB Watchdog rebooted/reset while the host was still running.

 

Host Application:
The USB Watchdog Python v2.7 petting/configuration script and configuration files fall under the GPL V2 license. cython-hidapi (pip install hidapi) is required to use the USB Watchdog:
https://github.com/macpod/usb_watchdog
Information on how to install and run the python petting/configuration script can be found on the usage page.