Devantech ETH008

From sigrok
Jump to navigation Jump to search
devantech eth008-b
Status supported
Source code devantech-eth008
Channels 2..20
Ratings 16A 250VAC / 16A 24VDC
Connectivity Ethernet/Wifi, TCP

The Devantech ETH008 is an Ethernet attached relay card with 8 relays, and was used to initially create the sigrok driver. Models with 2 up to 20 relays exist, as do Wifi models. Some models additionally provide digital input and analog input, as well as digital outputs where users decide whether to attach a relay or use the channel as a data line. The different models' protocols are similar enough to the ETH008 model, and it is assumed that all product features of Ethernet cards are accessible. Some models' operation has yet to get verified.

The firmware supports several ways of communication: interactive web forms, HTTP GET requests, binary packets over TCP, text lines over TCP. The sigrok driver uses binary payloads for simplicity and for maximum compatibility across firmware versions. Password protection for TCP sockets is currently not supported.

There are several models in the series of cards, with differing degrees of support. It is assumed that WLAN capable models share the same communication protocol as Ethernet devices. USB CDC (virtual COM port) models are not supported by this sigrok driver, their protocol differs dramatically. Neither are Modbus attached cards supported.

Device name DO DI AI supported comment
ETH002 2 untested
ETH008 8 tested
ETH484 12 8 4 tested
ETH8020 20 8 8 untested
ETH1610 10 16 16 tested
WIFI002 2 untested
WIFI008 8 untested
WIFI484 12 8 4 untested
WIFI8020 20 8 8 untested

Many thanks to devantech and robot electronics. The shop holds extensive documentation and example source code which is linked from their product pages. The card vendor provides MIT licensed Python code to control many cards. The support kindly made several devices available via remote network access, to help during the creation and extension of the sigrok driver.


  • PIC32MZ microcontroller, S25F32 SPI flash
  • SMSC Ethernet chip, Fast Ethernet (100Mbps)
  • Rohm BD9703 switching regulator, 2.1mm barrel jack
  • Hongfa HF115FD relays, screw terminals with common and NC and NO
  • discrete transistors and LED indicators per relay channel
  • power LED and RJ45 indicators

Nominal supply for the relay card is 12V. The Rohm regulator accepts 8V..35V. The HF115 relay may accept 24V, too. But the PIC measures the card's supply by means of a voltage divider, which most probably constrains the acceptable range of supply voltages for the card.

Voltage and current capability of the relay heavily depends on AC/DC kinds and the types of load. Rating is much lower for DC and for inductive loads. See the card vendor's relay power rating discussion and relay datasheet.


Example use

Detect the device and display its properties.

 $ DEV=devantech-eth008:conn=tcp-raw/
 $ sigrok-cli -d $DEV --scan
 The following devices were found:
 devantech-eth008:conn=tcp-raw/ - Devantech ETH008 HW2 FW23 [S/N: fc0fe7123456] 
 $ sigrok-cli -d $DEV --show
 Driver functions:
 Scan options:
 devantech-eth008:conn=tcp-raw/ - Devantech ETH008 HW2 FW23 [S/N: fc0fe7123456] 
 Channel groups:
     DO1: channel
     DO2: channel
     DO3: channel
     DO4: channel
     DO5: channel
     DO6: channel
     DO7: channel
     DO8: channel
 Supported configuration options across all channel groups:
     conn: tcp-raw/ (current)
     enabled: on, off

Display the relay state.

 $ DEV=devantech-eth008:conn=tcp-raw/
 $ sigrok-cli -d $DEV --get channel_group=DO1:enabled --get channel_group=DO2:enabled --get channel_group=DO3:enabled --get channel_group=DO4:enabled

Manipulate the state of relays. Address one individual relay per infocation. Address several channels in the same invocation. Set all relays of a card at the same time.

 $ DEV=devantech-eth008:conn=tcp-raw/
 $ sigrok-cli -d $DEV -g DO8 --config enabled=on --set
 $ sigrok-cli -d $DEV --config channel_group=DO1:enabled=off --config channel_group=DO2:enabled=on --set
 $ sigrok-cli -d $DEV --config enabled=on --set
 $ sigrok-cli -d $DEV --config enabled=off --set

Driver development initially started on a device which exclusively supported relays. Support for other devices with additional features was added later. The current implementation makes all these features accessible, but needs more adjustment in the future as more users have access to these cards and their feature set is better understood. The separation of relay channels and digital output channels, including some of that being under user control, as well as the multi purpose use of one channel as digital output or as analog input or interpreting the analog input as a digital value are yet to get considered how to most appropriately present to users.

Another feature to keep in mind is that the firmware supports multiple concurrent connections. Which means that the device's state can change in arbitrary ways even while a sigrok application is controlling the device at a given time.