The problem
The client needed a configurable controller platform that could operate in industrial environments: DIN-rail mounting, 24 V bus power, RS485 communication to PLCs and SCADA systems, and enough output capacity to drive both relay loads and PWM-controlled MOSFET channels from a single board.
Off-the-shelf modules did not meet the isolation requirements and lacked the analog I/O density the application demanded.
What we built
We designed a family of two boards sharing a common ESP32 core and power supply section.
The base board carries four relay outputs (rated 10 A / 250 VAC), four MOSFET outputs for PWM loads, optically isolated 24 V and 12 V digital inputs, a DC-DC buck converter accepting 9–36 V input, and a half-duplex RS485 interface with 15 kV ESD protection.
The expanded board adds four 0–10 V analog inputs with 12-bit resolution, two 0–10 V analog outputs via a DAC, and a second isolated RS485 channel.
Firmware is written in C on FreeRTOS. It implements a Modbus RTU slave for SCADA integration, a local web interface for configuration, and an OTA update mechanism. All parameters, Modbus address, relay interlocks, input debounce times, are configurable without reflashing.
PCB layout is four-layer with dedicated ground and power planes. The relay and MOSFET sections are routed with creepage distances exceeding the IEC 60664 requirements for pollution degree 2 environments.
Outcome
The boards are in active production use in several industrial installations. The Modbus slave implementation has been integrated with both Siemens and Schneider SCADA systems without modification.