WIFI8020 - 20 Relays at 16A, 8 Analogue Inputs
Technical Documentation
Overview
The WIFI8020 provides 20 volt free contact relay outputs with a current
rating of up to 16Amp each and 8 analogue inputs. The module is powered from a 12vdc supply which can be
regulated or unregulated. The DC input jack
is 2.1mm with positive core polarity, DC supplies are required to supply at
least 1A at 12vdc. The relays are SPCO (Single Pole Change Over) types. The normally
open, normally closed and common pins are all available on the screw terminals.
The Relays on the WIFI8020 can be controlled from the inputs on the WIFI484. This offers the opportunity to
construct a system where an input can control an output anywhere on the earth
provided both locations are connected to the network/internet.
Operating Temperature
-20C to +70C
LED
Indication
The
WIFI484 provides an LED to indicate each of the relay states and three for board
status, these are:
Board
power - red LED
WIFI
connected - yellow LED
USB
connected - green LED
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 |
A full datasheet for the relays used on the WIFI8020 is here: HF115FD datasheet
Connections
Analogue input |
16A Volt Free Contacts, Normally Connected, Common, Normally Open |
|
P = Analogue Input (0-5v) 5v dc output P = Analogue Input (0-5v) |
![]() |
12v dc 2.1mm jack (+ve core) USB Configuration |
16A Volt Free Contacts, Normally Connected, Common, Normally Open |
Connection
of the WIFI8020
to your network
The
WIFI8020 is configured to connect to your network by means of a USB connection
and configuration program.
For
Windows the guide page and program is here
An
Apple Mac version is also available here
And a Linux version here
First Test
Having plugged in your 12vdc power supply and Ethernet connection, start up your
web browser and type http://WIFI8020 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 switch the relays on and off by clicking the relay buttons (the red/gray circles). It also contains a link to this technical documentation page.
Configuration
By clicking the configuration link it's possible to configure the WIFI8020 IP address and subnet mask
together with the ability to set a password for entry to control screens. The configuration page also offers the option to set a password that will be required to
change any of the relay states or digital outputs 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.
Mapped inputs
Digital inputs are able to be configured to remotely control outputs on all
of our new ethernet relay boards (both wired and WIFI), the older ETH-RLY02 and
ETH-RLY16 are not compatible however. The mapped inputs offer simple linking
and versatile usage, an input in one country can control a output in another,
or across a small network.
There are eight independent inputs that can be mapped to eight different relays
(on the same or different boards). The "Address of target board"
field accepts an IP address or hostname (which will be converted to an IP
address by the DNS server supplied in the board configuration above). If the
module is on the local network then you can use the assigned IP address, if the
target is over the internet then you need to supply the gateway in the
configuration (internet source IP like your router) and the "Address of
target board" is the IP address of the targets internet connection (to
point at the router). Accessing the target via a router is dealt with in the
section "Access from the Internet".
Mapping inputs to custom devices
Following customer requests for obtaining input states without the need for
polling the WIFI8020, this can be achieved with the existing input mapping
function.
If you would like the inputs to be mapped to a custom device then we have a
simple command structure to achieve this, the WIFI8020 will send the commands in
blue, your device will respond with commands in yellow.
A TCP packet with 0x79 (password entry) in the
first byte, then the following bytes will be the password supplied above
To acknowledge a password match, respond
with 1, else send 2
Digital active (0x20) or Digital
inactive (0x21) followed by the output number
Reply with a 0 for success, else send 1
Note that the complete sequence must be followed, even if the password
fails.
Input monitoring example and source code
We have an example of mapping the inputs to a PC, it operates on the
default port of 17494, the default password of "password"
(although both are easily changed in the source code) and requires the WIFI8020 input mapping to be pointed at the host PC IP address. As it's having to
constantly listen it's a multi thread program
The input monitor 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/
Factory Reset
Should it be necessary to reset the WIFI8020 to its shipped condition then the
end two contacts of the row of 5 holes near the large chip on the side
nearest the Ethernet connection must be shorted
together at board power up. Keep the pins shorted until the green power LED
starts to flash, this will take up to 5 seconds. The green LED will 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 by
re-flashing the board using our custom windows program. The updates currently
available are:
V4 - 25/07/23 - Fixed bug that prevented open network security option
Using the Wifi module update:
First you need to connect to the board, the program will scan the local network and provide any boards in a list that it can see.
Next you will need to specify what port the board is located on, this will be 17494 unless you have changed it in the settings.
If there is a TCP/IP password the program will require it to be entered by clicking the password button.
Following a successful connection you will now be able to click the update button to select a file
Once the file has been opened the programming sequence will now begin, it's fairly short and following it's completion the board will reset (automatically) and the LED will flash quickly while the programming sequence completes. Do not turn the power off in this sequence.
WIFI8020 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 (24 for WIFI8020), Hardware version, Firmware version. |
32 | 20 |
Digital Active - follow with 1-20 to set relay on, then a time for pulsed
output from 1-255 (100ms resolution) or 0 for permanent Board will return 0 for success, 1 for failure |
33 | 21 | Digital Inactive - follow with 1-20 to turn
relay off, then a time for pulsed output from 1-255 (100ms resolution) or
0 for permanent Board will return 0 for success, 1 for failure |
35 | 23 | Digital Set Outputs -
follow with 3 bytes, first byte will set relays 1-8, All on = 255 (0xFF),
All off = 0, 2nd byte for relays 9-16, 3rd byte for relays 17-20 Board will return 0 for success, 1 for failure |
36 | 24 | Digital Get Outputs - returns 3 bytes, the first corresponds with relays 1-8, 2nd byte for relays 9-16, 3rd byte for relays 17-20 |
37 | 25 | Digital Get Inputs - returns 4 bytes, the first three bytes are always 0, the 4th bytes bits correspond with the 8 digital inputs, a high bit meaning input is active (driven low) |
50 | 32 | Get Analogue Voltage - follow with 1-8 for channel and WIFI8020 will respond with 2 bytes to form an 16-bit integer (high byte first) |
58 | 3A | ASCII text commands (V4+) - allows a text string to switch outputs, see section below |
119 | 77 | Get Serial Number - Returns the unique 6 byte MAC address of the module. |
120 | 78 | Get Volts - returns relay supply voltage as byte, 125 being 12.5V DC |
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 |
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 relay number.
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).
For example:
0x20 - turn the relay on command
0x03 - relay 3
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.
Digital inputs
The 8 analogue inputs are used to create 8 digital inputs. When you request
digital inputs a threshold is applied to the 8 analogue inputs. Above 3v will
read as low (inactive), below 2v will read as high (active). The region from 2v to 3v is the hysteresis
and does not change the previous reading. There are weak pull-up resistors
on the inputs which are designed to allow you to directly connect a VFC (Volt Free Contact). This
could be from other relay contacts, thermostat contacts, alarm contacts etc.
When the contacts are closed the input will read as active. In fact anything
that pulls the input pin down to 0v will read as active. Do not think of the
inputs in terms of a high or low voltage input. Think of it in terms of Active (or on,
something is actively driving the input), or inactive (or off, nothing is driving
the input). Command of 0x25 returns 4 bytes.
The first 3 bytes are always 0. The 4th byte returned
will be encoded with each bit corresponding to whether the input is active or
inactive. A high bit means the pin is being pulled low (active) by an external device pulling low. Bit
0 represents AD1 through to bit 7 (AD8). For example 0xED (11101101) would mean
inputs AD2 and AD5 were active.
Analogue Inputs
Eight (8) analogue inputs of 0v-5V at 10-bit resolution are provided. The
conversion is performed when you send the "Get Analogue Voltage"
command 0x32 and the channel number. The resulting 16 bit integer will be transmitted back in two bytes (high byte first), combine these
for the result. The 10-bit conversion will be in the lower 10 bits of the
16 bit integer with the upper 6 bits being 0. There is a 5v supply available on the
3-pin terminal block between the analogue inputs .
Representative Analogue Input Schematic.
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 WIFI8020 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 WIFI8020 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.
ASCII text commands DOA and DOI
Following customer request we have added a feature that allows the outputs
to be switched using an ASCII string, devices like a Mobotix camera can now
switch relays with simple strings.
The string for activating output1 for 5 seconds is formatted using comma
seperated variables with the following syntax:
":DOA,1,50,password"
To break this down ":" (hex 3A) at the start of the string indicates
that there is an ASCII message to follow, "DOA" is digital output
active, "1" is the output number, then "50" for 5 seconds
(50x100ms) and finally the TCP password (if applicable).
If I wanted to make output 2 inactive for 3 seconds I would use:
":DOI,2,30,password"
To break this down ":" (hex 3A) at the start of the string indicates
that there is an ASCII message to follow, "DOI" is digital output
inactive, "2" is the output number, then "30" for 3 seconds
(30x100ms) and finally the TCP password (if applicable).
Assuming no password is used the previous command would simply be:
":DOI,2,30 "
HTML commands DOAx and DOIx
Another customer requested feature, allowing the digital outputs to be
switched by the http get function such as used in some voice over ip phones (VOIP).
You can use the http get function to write to the io.cgi file with the following
syntax:
192.168.0.200/io.cgi?DOA2=10
This would use the default address (192.168.0.200) and make output 2 active for
1 second.
Another example would be to set output 1 inactive for 10 seconds:
192.168.0.200/io.cgi?DOI1=10
You can test these functions by typing them directly into the address bar of
most internet browsers. Also be aware that you may need to disable http
authentication in the http configuration if your control device does not support
it.
IP Addresses & DHCP Servers
The easiest way to use the WIFI8020 is to connect it to a network with a DHCP
server. In this case the WIFI8020 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 WIFI8020 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 WIFI8020 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
|
Test program and example source code
To get the WIFI8020 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 (Port forwarding)
The
WIFI8020 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 WIFI8020 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 WNR2200
router
When applied you should now be able to talk to the router over the internet at the IP address designated by your internet provider. When a data packet arrives on port 17494 the router will pass the packet on to the local address on the network (192.168.0.93) on port 17494.
To test this you will need a computer that has its own internet connection and is NOT connected to the same network as the WIFI8020. 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 WIFI8020 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.
Board dimensions