ETH0621
6 digital inputs, 2 x 24V 5A digital output, 24V motor output at 5A and 2 x Relay outputs at 240vac 16A
Technical Documentation 

 

Overview
The ETH0621 offers 6 digital inputs (accepting 10V - 24V), 2 independently switched 24V 5A outputs  and a 24 volt, 5A motor controller that effortlessly integrates motion control over Ethernet. The ETH0621 also includes a motor surge protection circuit that shuts the motor down in the event of the current exceeding 22A.  

Operating Temperature
-40C to +85C

LED Indication
The ETH0621 provides a blue LED for indication of power to the board, this will pulse quickly in the event of the firmware being updated and for 400ms every 2 seconds in the event that the board has detected a current surge and shut the motor down. There are red LED's mounted next to the digital outputs and relays to indicate there state. Green LED's are mounted next to each of the 6 inputs to indicate active inputs. 

Relay Power Rating
If the contact load voltage and current of the relay are in the region enclosed by the solid and dotted lines in the figure below, the relay can perform stable switching operation. If the relay is used at a voltage or current exceeding this region, the life of the contacts may be significantly shortened.

 load type 

 Typical applications 

 Rating 

Max DC load capacity

 AC1

 Non inductive or
 slightly inductive loads 

 16A @ 250V AC 

 AC15

 Control of 
 electromagnetic load 
 (>72VA)

 3A @ 120V AC  
 1.5A @ 240V AC 

 AC3

 Control of motor 

 750W

 DC1

 Non inductive or
 slightly inductive loads

 16A @ 24V DC 

 DC13

 Control of electromagnetic 
 loads

 0.22A @ 120V DC
 0.1A @ 250V DC



Connections

Note - There is no fuse on the  PCB. You should provide a fuse in line with the +24v terminal.

 

 

 

 

 

 

 

RJ45 Ethernet 

 24V DC motor power output
 motor side A and B
 Power input
 0V ground and 24V DC

 24V DC digital outputs
 0V ground, 24V DC and switched output 1/2



 10V DC - 24V DC inputs
 6 individual labeled inputs 

 

 Volt free contact relay outputs
 
Normally closed, common and normally open

First Test
Having connected your 24vdc power supply and Ethernet connection, start up your web browser and type http://eth0621 into the address bar, please note this only works in windows. You will be prompted for a password as shown below:

 

  The default login is:
 Username: admin
 Password: password

 The ability to change these
 settings is shown in the
 configuration section 

You should now see the following web page:

This web page will allow you to control the motor with the relevant buttons, switch the two relays, switch the two outputs and also monitor the inputs.

Configuration
By clicking the configuration link it's possible to configure the ETH0621 IP address and subnet mask together with the ability to set a password for entry to control screens. Gateway address and DNS address is configurable and is used with mapped inputs which are described in section below. The configuration page also offers the option to set a password that will be required to change any of the relay states, digital outputs or motor settings using TCP IP commands, this is explained in the TCP/IP password section.
All settings are saved to memory so be careful to remember the username and password! Default password settings are shown in the picture below. 

Factory Reset
Should it be necessary to reset the ETH0621 to its shipped condition then the end two contacts of the row of 5 holes nearest the Ethernet connection must be shorted together at board power up. The blue LED should then flash as the settings are reset, please wait until the LED finishes flashing and do not remove power during this period. 

Firmware Updates
The firmware is fully updateable, this section will be expanded upon new firmware availability.

ETH0621 Command Set
The command set designed to provide consistent expansion and new features, they are sent over TCP/IP on port 17494 (0x4456). This is the default port, it can be changed in the configuration settings.
Five connections are allowed at any one time, these are independently protected but all using the same password as defined in the board configuration.

Command

Action

dec hex
16 10 GET MODULE INFO - returns 3 bytes

Module Id (23 for ETH0621), Hardware version, Firmware version.
17 11 GET MODULE STATUS - returns 1 byte

 currently bit 0 (LSB) will be set if motor output is disabled due to surge detection (22 amps approx)
32 20 DIGITAL ACTIVE - follow with 2 bytes below

1-2 to set relay states,  then a time for pulsed output from 1-255 (100ms resolution) or 0 for permanent
or
9-10 for digital outputs, then a time for pulsed output from 1-255 (100ms resolution) or 0 for permanent
or
17 for motor direction, then a byte of 0 (ignored but must be transmitted)

Board will return 0 for success, 1 for failure 

33 21 DIGITAL INACTIVE -  follow with 2 bytes below

1-2 to set relay states,  then a time for pulsed output from 1-255 (100ms resolution) or 0 for permanent
or
9-10 for digital outputs, then a time for pulsed output from 1-255 (100ms resolution) or 0 for permanent
or
17 for motor direction, then a byte of 0 (ignored but must be transmitted)

Board will return 0 for success, 1 for failure  

35 23 DIGITAL SET OUTPUTS -  follow with 3 bytes

1st bytes lower 2 bits sets the relays, the 2nd bytes lower 2 bits will set the digital outputs and the lowest bit of the 3rd byte sets the motor direction

Board will return 0 for success, 1 for failure 
36 24 DIGITAL GET OUTPUTS - returns 3 bytes

1st bytes lower 2 bits contain relay states, the 2nd  bytes lower 2 bits correspond with active digital outputs and byte 3 has the motor direction in the LSB.
37 25 Digital Get Inputs - returns 4 bytes, the first three will all be 0 and the 4th encodes the digital inputs into the lower 6 bits
48 30 SET VARIABLE OUTPUT - follow with 3 bytes below

Set motor speed, 2nd byte send 1, then 0-100 for the % power and finally a time for pulsed output from 1-255 (100ms resolution) or 0 for permanent
or
Set motor acceleration, 2nd byte we send 2, then 1-20 for the acceleration level and finally a 0 byte.

Board will return 0 for success, 1 for failure  

49 31 GET VARIABLE OUTPUT - follow with 1 byte

sending 1 will request the current motor speed setting
or
sending 2 will request the current acceleration setting

Board will return 2 bytes, 0 in the first byte and speed/acceleration in the second  

4A 32 GET VARIABLE INPUT - follow with 1 byte

send 1 to request rough current measurement drawn by the motor in mA (this is very rough at low currents, but gets more accurate at higher levels)

Board will return 2 bytes with the high byte first which form a 16-bit integer. 

119 77 GET SERIAL NUMBER - Returns the unique 6 byte MAC address of the module.
121 79 PASSWORD ENTRY - see TCP/IP password
122 7A GET UNLOCK TIME - see section below 
123 7B LOG OUT - immediately re-enables TCP/IP password protection

Active and Inactive I/O - What do we mean by that?
The ETH0621 offers simple dedicated output and input ports, an active relay will be in the powered condition, an active input will be getting over 10v on the input.

Digital Active/Inactive Commands
These are 3 byte commands:
The first byte is the command, 32 (active means on) or 33 (inactive).
Second byte is the output number, 1-2 for the relays, 9 - 10 for digital outputs or 17 for the motor direction.
Third byte is the on time. Set this to zero for un-timed operation, or 1-255 for a pulse in 100mS intervals (100mS to 25.5 seconds), this is ignored in the case of motor direction.
For example:
0x20 - Digital active command (on)
0x02 - Relay 2
0x32 (50) - 5 seconds (50 * 100ms) 
Board will return 0 for success, 1 for failure.
Note - All bytes in a command must be sent in one TCP/IP packet. 

Surge protection
If a current in excess of approx 22A is detected the ETH0621 will disable the motor output and set the LSB in the module status byte. To return the ETH0621 module to normal operation requires a power cycle after investigation of the cause.  

TCP/IP Password
If this option is enabled in the http configuration page then a password will be required to be entered before relay states can be changed. In the following example the password was set to "apple":

0x79 - 1st byte in frame sent to ETH0621 to indicate password entry
'a' (0x61) - 2nd byte in frame (ASCII hex equivalent in brackets, full table is available at http://www.asciitable.com/)
'p' (0x70) - 3rd byte in frame
'p' (0x70) - 4th byte in frame
'l' (0x6C) - 5th byte in frame
'e' (0x65) - 6th byte in frame

These 6 bytes are then transmitted in the same transaction to the ETH0621 and if the password is correct then 1 will transmitted back, a failure will send 2.
The board will now accept changes from the device that entered the password. If communication becomes idle for more than 30 seconds then the password protection is re-enabled. There is also a log-out command of 0x7B to enable the protection immediately.

Get Unlock Time
Returns TCP/IP password protection status:
0 - password protection is enabled and password entry is required before changes can be made
1 to 30 - seconds until TCP/IP password protection is re-enabled. All authorised commands set the timer back to 30 seconds (including this one). 
255 - TCP/IP password is not enabled. 

IP Addresses & DHCP Servers
The easiest way to use the ETH0621 is to connect it to a network with a DHCP server, in this case the ETH0621 will have its IP address assigned automatically by the DHCP server.

If there is no DHCP server on the network, then a fixed IP address of 192.168.0.200 is used.  To control the ETH0621 using this fixed IP address your computer MUST be on the same subnet. 
The next step is to set your computers IP address to 192.168.0.x where x is in the range of 1 to 255 but not 200 (the ETH0621 is there!) or any other used IP addresses on the network.
The subnet mask dictates what IP addresses the PC can communicate with, we set this to 255.255.255.0 so the PC can talk to any module with an IP address of 192.168.0.x

The default gateway is likely to be the IP address that the internet connection is located at and the DNS server can be either your router address or Google provide a DNS service at 8.8.8.8.. 

This image is for a PC running Windows 7.
To get to the TCP/IP properties screen, go to:
Control Panel->Network and Sharing Center->Local Area Connection->Properties.
Select Internet Protocol Version 4(TCP/IPv4) from the scroll box and click Properties.

That gets you to the dialog box shown left.

 

Test program and example source code
To get the ETH0621 up and running in the minimum amount of time we have put together an example program to demonstrate the functionality of the module.  We provide the full source code for this program. You may examine this code to see how it works or use it as a starting point for your own application.

Visual studio express C# examples
The test program is available as Visual C# express ready built installation files here,  or as Visual C# express project with source files here.
Visual studio express is provided free from Microsoft: http://www.microsoft.com/exPress/download/

Access from the Internet
The ETH0621 can be controlled over the internet almost as easily as on your local network. Your network will most likely be connected to the internet with a broadband router. This will provide NAT (Network Address Translation) and Firewall services. To access the ETH0621 from the internet you will need to open up port 17494 (0x4456) to allow incoming TCP connections. Be careful not to open up any other ports. There are a wide variety of routers and we cannot give details for all of them. If in doubt ask your system administrator for assistance. The following shows how to open up a port on a Netgear DG834 router. The example is for a board on the network at 192.168.0.96 and port 17494, although these values are easily altered.

 After logging on to your routers setup page, the first thing to do is create a new service. Click on the "Services" menu then "Add Custom Service". Enter a name for the service, select TCP and enter the ETH0621's port address for both the start and finish ports. Click "Apply".

Now go to the "Firewall Rules" menu and click  "Add" in the Inbound services section. Select the ETH0621 service and ALLOW always. The "Send to LAN Server" IP address is the ETH0621's IP address, 192.168.0.96 in the example above but check what it is on your network. Click "Apply" and that's it. The ETH0621 is now accessible over the internet. Before you close the routers setup pages, go to the "Router Status" menu and make a note of  its ADSL port IP address. This is the routers internet facing IP address.

To test this you will need a computer that has its own internet connection and is NOT connected to the same network as the ETH0621. Download and run the test program above and select Custom IP. In the pop-up box enter your routers internet facing IP address. Click on "Try IP" and it will connect you to the ETH0621 just as if it were on your own network.

Android & iPhone Apps.
We have a free app IO network available for Android and iPhone to remotely control your relays, download from Google Play or iTunes. Search for "Devantech" and you will find the app.

Input Schematic

Board dimensions