USB watchdog stick with 2 relays for switching operations- DEDITEC
€ 126,14 Incl. 19% VAT plus shipping
Our promise to you
This USB-WATCHDOG-STICK monitors your control PC or server and can automatically reset the hardware in the event of a program crash. Simply integrate the function of the watchdog stick into your application. As soon as a timeout occurs and the watchdog stick is no longer periodically reset, the two relay outputs are switched through. With the appropriate connection cabling, for example, the PC reset can be activated, an external SMS modem can send warnings or a connected siren can signal an alarm. You can use our free configuration tool to define how the relays should switch in the event of a fault.
- USB 2.0 / USB 1.1 interface
- Watchdog function
- Monitoring of your control PC or server
- Timeout periods adjustable from 10 ms to 10 h
- Windows Watchdog API
- 2 normally open relays (NO)
- Connection cable with DSUB9 socket (approx. 1.8 m)
USB interface with Plug & Play
Thanks to Plug & Play, our modules with USB interface are automatically recognized and are immediately ready for use without any configuration. Configuration is only required if several USB modules from the same product series are used on the same system.
LEDs
Each digital input and output has a separate LED that lights up when the signal status is active. The status of the operating voltage, communication with the interface, error events or the occurrence of a timeout can also be displayed.
Software and control for programmers
Our supplied DELIB driver library makes it easy to address the product via our API in almost all programming languages under Windows and Linux.
We offer support for the following programming languages:
- C
- C++
- C#
- VB
- VBA
- VB.Net
- Java
General information
| Supply voltage | +5 V (via the USB port) |
|---|---|
| Interface | USB 2.0 / USB 1.1 |
| Access speed |
|
| Power consumption | max. 100 mA |
| LEDs | Signals access to the USB stick |
| Relay outputs |
|
| Timeout function | Automatic switching on or off of the outputs when the connection is lost |
| Connection cable | approx. 1.8 m to 9-pin D-Sub socket |
| Operating temperature | +10 °C ... +50 °C |
| Abmessungen Gehäuse | 84.5 mm x 21 mm x 12.5 mm (L x W x H) |
Configuration of our watchdog sticks
This example uses the two relay outputs to show how the function of the watchdog stick could be configured.
| Condition | Relay 1 | Relay 2 |
| Deactivated (Monitoring not active) | OFF = Relay contacts open | ON = Relay contacts closed |
| Activated (Monitoring active) | OFF = Relay contacts open | OFF = Relay contacts open |
| Retriggered (Watchdog time is reset) | OFF = Relay contacts open | OFF = Relay contacts open |
| Timeout (watchdog time was not reset) |
ON = Relay contacts closed | ON = Relay contacts closed |
| Relais Setting after x msec (Time-delayed switching of the relays after a timeout) |
OFF = Relay contacts open | ON = Relay contacts closed |
Relay 1 switches on after a timeout and switches off again after time x has elapsed. This can be used as an external signal output, for example.
Relay 2 is connected to the reset switch of the PC to be monitored. After the timeout time has elapsed, it switches on for a certain time x and thus restarts the PC.
The timeout time and switch-on delay of the relays can be freely set.
- Configuration tool for the USB watchdog stick
- Intuitive operation
- Included free of charge with the USB watchdog stick
Management functions
DapiOpenModule
This function opens a specific module.
Description
This function opens a specific module.
Definition
ULONG DapiOpenModule(ULONG moduleID, ULONG nr);
Parameter
moduleID=Specifies the module to be opened (see delib.h)
nr=Specifies which module is to be opened.
nr=0 -> 1. Module
nr=1 -> 2. Module
Return value
handle=Corresponding handle for the module
handle=0 -> Module was not found
Remark
The handle returned by this function is required to identify the module for all other functions.
Programming example
// Open USB module
handle = DapiOpenModule(RO_USB1, 0);
printf(„handle = %x\n“, handle);
if (handle==0)
{
// USB module was not found
printf(„Module could not be opened\n“);
return;
}
DapiCloseModule
This command closes an open module.
Description
This command closes an open module.
Definition
ULONG DapiCloseModule(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
None
Programming example
// Close module
DapiCloseModule(handle);
DapiGetDELIBVersion
This function returns the installed DELIB version.
Description
This function returns the installed DELIB version.
Definition
ULONG DapiGetDELIBVersion(ULONG mode, ULONG par);
Parameter
mode=Mode with which the version is read out (must always be 0).
par=This parameter is not defined (must always be 0).
Return value
version=Version number of the installed DELIB version [hex]
Programming example
version = DapiGetDELIBVersion(0, 0);
//With version 1.32 installed
version = 132(hex)
DapiSpecialCMDGetModuleConfig
This function returns the hardware configuration (number of input and output channels) of the module.
Description
This function returns the hardware configuration (number of input and output channels) of the module.
Definition
ULONG DapiSpecialCommand(ULONG handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, par, 0, 0);
Parameter
handle=This is the handle of an open module
Querying the number of digital input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI
Query number of digital input flip-flops
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_FF
Query number of digital input counters (16-bit counter)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_COUNTER
Query number of digital input counters (48-bit counter)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_CNT48
Querying the number of digital output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO
Querying the number of digital pulse generator outputs
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PULSE_GEN
Querying the number of digital PWM outputs
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PWM_OUT
Querying the number of digital input/output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX
Querying the number of analog input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD
Querying the number of analog output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA
Query number of temperature channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_TEMP
Query number of stepper channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER
Return value
Querying the number of digital input channels
return=number of digital input channels
Query number of digital input flip-flops
return=number of digital input flip-flops
Query number of digital input counters (16-bit counter)
return=number of digital input counters (16-bit counter)
Query number of digital input counters (48-bit counter)
return=number of digital input counters (48-bit counter)
Querying the number of digital output channels
return=number of digital output channels
Querying the number of digital pulse generator outputs
return=number of digital pulse generator outputs
Querying the number of digital PWM outputs
return=number of digital PWM outputs
Querying the number of digital input/output channels
return=number of digital input/output channels
Querying the number of analog input channels
return=number of analog input channels
Querying the number of analog output channels
return=number of analog output channels
Query number of temperature channels
return=number of temperature channels
Query number of stepper channels
return=number of stepper channels
Programming example
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
//Returns the number of digital input channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO, 0, 0);
//Returns the number of digital output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX, 0, 0);
//Returns the number of digital input/output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD, 0, 0);
//Returns the number of analog input channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA, 0, 0);
//Returns the number of analog output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER, 0, 0);
//Returns the number of stepper channels
DapiOpenModuleEx
This function specifically opens a module with an Ethernet interface. The parameters IP address, port number and the duration of the timeout can be defined.
Description
This function specifically opens a module with an Ethernet interface. The parameters IP address, port number and the duration of the timeout can be defined. The module is opened independently of the settings made in the DELIB Configuration Utility.
Definition
ULONG DapiOpenModuleEx(ULONG moduleID, ULONG nr, unsigned char* exbuffer, 0);
Parameter
moduleID = Specifies the module to be opened (see delib.h)
nr = Specifies which module (if several) is to be opened.
nr = 0 -> 1. Module
nr = 1 -> 2. Module
exbuffer = Buffer for IP address, port number and duration of the timeout
Return value
handle = Corresponding handle for the module
handle = 0 -> Module was not found
Remark
The handle returned by this function is required to identify the module for all other functions.
This command is supported by all modules with an Ethernet interface.
Programming example
// Open ETH-Module with parameter
DAPI_OPENMODULEEX_STRUCT open_buffer;
strcpy((char*) open_buffer.address, "192.168.1.10");
open_buffer.portno = 0;
open_buffer.timeout = 5000;
handle = DapiOpenModuleEx(RO_ETH, 0, (unsigned char*) &open_buffer, 0);
printf("Module handle = %x\n", handle);
DapiScanAllModulesAvailable
This function can be used to scan all modules connected to the USB bus.
Description
This function can be used to scan all modules connected to the USB bus.
The module ID and module no. of each module found are determined.
Definition
ULONG DapiScanAllModulesAvailable(uint nr)
Parameter
nr = 0: All modules connected to the USB bus are searched for
nr = i: Reading out the individual connected modules
Return value
Indicates the number of modules found.
Programming example
no_of_modules =
DT.Delib.DapiScanAllModulesAvailable(0);
for (i = 1; i <= no_of_modules; i++)
{
ret = DapiScanAllModulesAvailable(i);
moduleID = ret & 0x0000ffff;
moduleNr = (ret >> 16) & 0xff;
}
Watchdog functions
DapiWatchdogEnable
This function activates the watchdog.
Description
This function activates the watchdog.
Definition
void DapiWatchdogEnable(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
None
Programming example
DapiWatchdogEnable(handle);
//Activates the watchdog
DapiWatchdogDisable
This function deactivates the watchdog.
Description
This function deactivates the watchdog.
Definition
void DapiWatchdogDisable(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
None
Programming example
DapiWatchdogDisable(handle);
//Deactivates the watchdog
DapiWatchdogRetrigger
This function retriggers the watchdog timer.
Description
This function retriggers the watchdog timer.
Definition
void DapiWatchdogRetrigger(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
None
Programming example
DapiWatchdogRetrigger(handle);
//Retriggered the watchdog timer
Watchdog-Special
This function returns or sets various status information of the watchdog stick.
Description
This function returns or sets various status information of the watchdog stick.
Definition
ULONG DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_WATCHDOG, cmd, par1, 0);
Parameter
handle=This is the handle of an open module
Querying the timeout relay counter
cmd=DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_RELAIS_COUNTER_MSEC
par1=0
Query the watchdog status
cmd=DAPI_SPECIAL_WATCHDOG_GET_STATUS
par1=0
Query the current timeout time
cmd=DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_MSEC
par1=0
Query the watchdog timeout counter
cmd=DAPI_SPECIAL_WATCHDOG_GET_WD_COUNTER_MSEC
par1=0
Set the time for how long relay 1 is switched
cmd=DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC
par1=Time for how long relay 1 is switched [ms]
Set the time for how long relay 2 is switched
cmd=DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL2_COUNTER_MSEC
par1=Time for how long the 2nd relay is switched [ms]
Return value
Querying the timeout relay counter
return=Elapsed time after a timeout [ms]
Querying the watchdog status
return=Watchdog status
return=0 = Watchdog is deactivated
return=1 = Watchdog is activated
return=2 = Watchdog is retriggered
return=3 = Watchdog timeout
Query the current timeout time
return=Timeout time [ms]
Querying the watchdog timeout counter
return=Past time without retrigger [ms]
Programming example
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_RELAIS_COUNTER_MSEC, 0, 0);
//Querying the timeout relay counter
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_STATUS, 0, 0);
//Querying the watchdog status
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_MSEC, 0, 0);
//Query the currently used Timeout-Zeit
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_WD_COUNTER_MSEC, 0, 0);
//Querying the watchdog timeout counter
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC, 500, 0);
//Switches the 1st relay after a timeout for 500 ms
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC, 700, 0);
//Switches the 2nd relay after a timeout for 700 ms
Error handling
DapiGetLastError
This function returns the last error recorded.
Description
This function returns the last recorded error. If an error has occurred, it must be cleared with DapiClearLastError(), otherwise every call to DapiGetLastError() will return the "old" error.
If several modules are to be used, the use of DapiGetLastErrorByHandle() is recommended.
Definition
ULONG DapiGetLastError(void);
Parameter
None
Return value
Error code
0=no error. (see delib_error_codes.h)
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiGetLastErrorByHandle
This function returns the last error recorded for a specific module using the handle.
Description
This function returns the last error recorded for a specific module using the handle. If an error has occurred, it must be cleared with DapiClearLastErrorByHandle(), otherwise every call to DapiGetLastErrorByHandle() will return the "old" error.
Definition
ULONG DapiGetLastErrorByHandle(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
Error code
0=no error. (see delib_error_codes.h)
Programming example
BOOL IsError(ULONG handle)
{
unsigned long error_code = DapiGetLastErrorByHandle(handle);
if (error_code != DAPI_ERR_NONE)
{
printf("Error detected on handle 0x%x - Error Code = 0x%x\n", handle, error_code);
DapiClearLastErrorByHandle(handle);
return TRUE;
}
return FALSE;
}
DapiGetLastErrorText
This function reads out the text of the last error recorded.
Description
This function reads out the text of the last recorded error. If an error has occurred, it must be cleared with DapiClearLastError(), otherwise every call to DapiGetLastErrorText() will return the "old" error.
Definition
ULONG DapiGetLastErrorText(unsigned char * msg, unsigned long msg_length);
Parameter
msg = Buffer for the text to be received
msg_length = Length of the text buffer
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiClearLastError
This function deletes the last error that was recorded with DapiGetLastError().
Description
This function deletes the last error that was recorded with DapiGetLastError().
Definition
void DapiClearLastError(void);
Parameter
None
Return value
None
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiClearLastErrorByHandle
This function deletes the last error of a specific module (handle) that was recorded with DapiGetLastErrorByHandle().
Description
This function deletes the last error of a specific module (handle) that was registered with DapiGetLastErrorByHandle().
Definition
void DapiClearLastErrorByHandle(ULONG handle);
Parameter
handle=This is the handle of an open module.
Return value
None
Programming example
BOOL IsError(ULONG handle)
{
unsigned long error_code = DapiGetLastErrorByHandle(handle);
if (error_code != DAPI_ERR_NONE)
{
printf("Error detected on handle 0x%x - Error Code = 0x%x\n", handle, error_code);
DapiClearLastErrorByHandle(handle);
return TRUE;
}
return FALSE;
}
Test functions
DapiPing
This command checks the connection to an open module.
Description
This command checks the connection to an open module.
Definition
ULONG DapiPing(ULONG handle, ULONG value);
Parameter
handle=This is the handle of an open module
value=Transferred test value, in the value range of 0-255 (8-bit), to the module
Return value
The test value transferred with "value" must be returned here
Manual
Manual USB-WATCHDOG-STICK
Hardware description - Software description - ICT-Tool
Hardware description
- List of technical data
- Definition of the LEDs
- Pin assignment of the connectors
- Connection examples
Software description
- Control options via the DELIB, protocol level, DELIB CLI, graphical applications
- DELIB Driver Library, DELIB Sample Sources, DELIB for Linux
- Web interface (only for Ethernet modules)
- DELIB API and its functions
ICT-Tool
- Add module on the PC
- Configure module / interface
- Test and diagnose module
- Install firmware updates
- Save/load module configurations using a separate file
Drivers / Programs
Watchdog retrigger tool
This program runs in the background and permanently retriggers the watchdog stick.
In the event of a system crash, the watchdog stick is activated.
Software packages ICT-Tool / DELIB driver library
ICT-Tool + DELIB for Windows (64-bit)
For Windows 11/10, Windows 7, Windows 8, Vista, XP and 2000
Software package for the 64-bit version of the ICT-Tool and the DELIB driver library.
The following operating systems are compatible:
64-bit:
- Windows 10/11 x64
- Windows 8 x64
- Windows 7 x64
- Windows Server 2012 x64
- Windows Server 2008 x64
- Windows Vista x64
- Windows XP x64
- Windows Server 2003 x64
- Windows 2000 x64
Supplied software
ICT-Tool x64
- Updating the DEDITEC module-firmware
- Assigning module addresses
- Module-specific settings
- Configuration of CAN modules
- Test and diagnosis of module functions
- Configuration of the watchdog stick
Replaces the following software
- DT-Flasher x64
- DELIB Module Demo x64
- CAN Configuration Utility x64
- DELIB Module Config x64
- DELIB Configuration Utility x64
- Watchdog Configuration Utility x64
DELIB Command Line Interface x64
Enables the execution of DELIB commands in the command line.
ICT-Tool + DELIB for Windows (32-bit)
For Windows 11/10, Windows 7, Windows 8, Vista, XP and 2000
Software package for the 32-bit version of the ICT-Tool and the DELIB driver library.
The following operating systems are compatible:
32-bit:
-
-
- Windows 10/11
- Windows 8
- Windows 7
- Windows Server 2012
- Windows Server 2008
- Windows Vista
- Windows XP
- Windows Server 2003
- Windows 2000
-
Supplied software
ICT-Tool x32
-
-
- Updating the DEDITEC module-firmware
- Assigning module addresses
- Module-specific settings
- Configuration of CAN modules
- Test and diagnosis of module functions
- Configuration of the watchdog stick
-
Replaces the following software
-
-
- DT-Flasher
- DELIB Module Demo
- CAN Configuration Utility
- DELIB Module Config
- DELIB Configuration Utility
- Watchdog Configuration Utility
-
Attention:
With this version of the driver library, only 32-bit applications can be created, which can then be executed on 32- and 64-bit systems.
DELIB driver library for Linux (32/64-bit)
For 32/64-bit Linux distributions from kernel 2.6.x. Version 2.73 from 28.10.2024
DELIB driver library for Linux distributions (32/64-bit) from kernel 2.6.x
This driver package contains the following components
- DELIB USB driver
- DELIB Ethernet driver
- DELIB CLI
DELIB USB driver
Support for the following products:
- NET series (via USB interface)
- RO-USB series
- BS-USB series
- USB mini-sticks
- USB watchdog
- USB-OPTION-8 / USB-RELAY-8
- USB-TTL-32 / USB-TTL-64
Note:
With the standard version of the USB driver, several USB products with different module IDs (e.g. one RO-USB and one USB-OPTOIN-8) can be addressed. No further driver installation is required.
If several USB products with the same module ID (e.g. a USB-OPTOIN-8 and a USB-RELAIS-8) are to be addressed, the Linux FTDI driver must also be installed. You can find the FTDI driver at http://www.ftdichip.com.
DELIB Ethernet driver
Support for the following products:
- NET series (via Ethernet interface)
- RO-ETH series
- RO-ETH/LC series
- BS-ETH series
- ETH-OPTION-8 / ETH-RELAY-8
- ETH-TTL-64
DELIB CLI
With the DELIB CLI (Command Line Interface) for Linux, all commands for digital and analog I/Os can be set directly via the command line
Manual
Manual for ICT-Tool and DELIB
Software Description - ICT-Tool - DELIB API Reference
Software Description
- Control options via DELIB, protocol level, DELIB CLI, graphical applications
- DELIB driver library, DELIB sample sources, DELIB for Linux
- Web interface (only for Ethernet modules)
- DELIB API and its functions
ICT-Tool
- Add module to PC
- Configure module/interface (Ethernet, USB, CAN, Serial)
- Settings for M2M and Event Control (only for supported modules)
- Test and diagnose module
- Install firmware updates
- Save/load module configurations using a separate file
DELIB API Reference
- Directory structure of DELIB
- Management functions
- Error handling
- Manage digital inputs and outputs
- Manage analog inputs and outputs
- Manage software FIFO
- Manage output timeout
- Register read and write commands
Download
Hardware updates (firmware flash file package)
Firmware flash file package for the ICT tool
This package contains the latest firmware files for the following product series:
- STARTER series
- BS series
- RO series
- NET series
- UC series
- CAN-IO-Box
- Development accessories
The firmware flash file package can alternatively be downloaded via the ICT tool.
Install the installation program and check the module functions.


Reviews