This site is the personal blog and project repository of George Farris.

If you are looking for the old Cowichan Valley Linux Users Group, check the side navigation. This site contains links to various projects that I either created or contribute to.

You will also find my Github page and Youtube channel here. Contact:

Latest News

WIFI Latching Relay Board

Posted on: July 27, 2023, in Equipment

ESP32 based latching relay board with digital inputs and optional 16 bit analog inputs.

This board was designed for solar powered, mountain top, radio repeater sites, but is certainly not
limited to that use.

Most relay boards use standard relays that are energised continuously when they are closed and
use anywhere in the range of 30 to 100mA or more. With 10 relays taking say 40mA, on all the time,
plus the board electronics, you are looking at approximately .5A continuous current draw 24/7.
On a solar powered site this may be too much.

In addition, with standard relays, if the power is removed the relays will all drop out removing power from
equipment you may not want to go down. A latching relay board solves these issues with no current
being drawn by coils and static state contacts on power cycle.


Bare and pre-built boards may be ordered from me, please email <farrisg at>

Bare boards are US $29.00 plus shipping.
Currently Pre-built board prices are available on a quote basis, due to component prices.
The pre-built board may be ordered with 8 relays to save on cost.
36pin ESP32 modules are available with the bare board as an option.


  • 36pin ESP32 (doit dev v1) microcontroller with watchdog code.
  • 16 latching relays each one with a single usable contact rated at 2A.
  • 7 of the 16 relays are in parallel with sink outputs of a repeater controller such as RLC-4.
  • Low current indicator LEDS for all relays.
  • 4 Inputs for door switch alarms or other uses.
  • 4 Analog I/O points available by including optional ADS1115 board.
  • Remaining pins on ESP32 brought out to header for use.
  • I2C bus brought out to terminal blocks.
  • Operates on 12VDC at approx 60mA.
  • Communication is by WIFI.
  • Python test and “relay” application.


The table below outlines the ASCII command sequences the board accepts.

Note: All commands must be terminated with a ‘\n’ character.

STGet status (returns status of all 16 relays)
See note below about status
RCnnClose relay nn – example RC00 or RC12
ROnnOpen relay nn
RTnnToggle relay nn
OAOpen all relays
CLClose all relays
TETest all relays – close all then open
A0Get Analog A0 value
A1Get Analog A1 value
A2Get Analog A2 value
A3Get Analog A3 value
I1Get input I1 state – GPIO33
I2Get input I2 state – GPIO32
I3Get input I3 state – GPIO35
I4Get input I4 state – GPIO34