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. 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).
(TODO VIDEO)

 

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.