November 8, 2021

ESP32-IO

Lots of digital and analogue inputs & outputs at 5, 12 or 24 volts.... Normally that's what I find I need to automate existing things... So this is a circuit board I designed to provide just that!

ESP32-IO

This project started because initially I really liked using the Pirmoroni Automation HAT. I had one running all the accessories on my 4x4 (light bar, air compressor, camping lights etc.) and it was robust, accepted all sorts of input and output (IO) voltages, and never missed a beat.

The Pirmoroni HAT advantages were it would interface directly with automotive vehicle voltages (12-14 volts) and plugged straight onto a Raspberry Pi. But it's disadvantage was that I wanted to control more devices! I wanted 8 or so of each IO type - whereas the Pirmoroni HAT had 3.

Secondly, I also didn't want to run a whole Raspberry Pi linux single-board computer for most applications. A simple Espressif ESP32 would suit most of my simple uses and allow standard pre-written software like ESPHome.

Status Prototype
Platform ESP32 Custom PCB
Budget $100 ea
Date Completed December 2021

Summary of Operation

This is where I started with the Pirmoroni Automation HAT - this is the one that I had running my 4x4 accessories. I'd used just about everything it had to offer - and I'd had to augment it's functionality by adding external pull-up and pull-down resistors (blue ones!) in order to correctly interface with signals coming from my car (e.g. headlights on to activate my spotlights). It worked perfectly... it was just a bit messy and I'd reached the limit of what I could add to it...

Pirmoroni Automation HAT

So this is where I ended up after swapping (cutting all the wires and re-joining!) to the new ESP-IO.

So comparitively, this was the final specifications:

Function Pirmoroni Automation HAT ESP-IO
Status Production Prototype only!
Host Platform Raspberry Pi Raspberry Pi or ESP32
Supply Voltage 5V from Pi 5V from Pi or USB-C
Digital Inputs (24V max) 3 16
Analog Inputs (24V max) 3 8
Relay Outputs (24V 2A max) 3 8
Sinking Outputs (150mA) 3 8
I2C Ports N/A 3x Stemma QT/QWIIC
Serial Ports (3.3V) 1 1
Terminals Screw Würth Screwless

Engineering Detail

I'll post the files on GitHub eventually! If you're interested in the meantime, just email me and I'll share.

I can also share the 3D printed enclosure shown above (green).

I'll can also probably make you a new version with an ESP32-S2 with native USB and CircuitPython support...