The inspiration for this project came from a clear need: a versatile PLC system that could serve both home automation and light industrial applications.
We wanted to build something suitable for smart homes—but with the durability and reliability of industrial-grade hardware. That meant using high-quality relays, robust surge protection for inputs and outputs, and a design focused on electrical stability.
Our main goal was to create a device where peripherals like lights, switches, and sensors connect via physical wires, while the controller itself communicates with the home server over Wi-Fi or Ethernet.
We also wanted the system to be modular, allowing for flexible configurations depending on the installation—whether in a residential setting or a small facility.
From this vision, the concept of our product was born: a compact, expandable controller with all the core inputs and outputs needed for everyday automation tasks, including:
- Lighting control
- Heating systems
- Irrigation
- Security and alarm integration
- Energy monitoring
- Leak detection
- And much more...
We chose to base the firmware on ESPHome, paired with seamless Home Assistant integration, so users can build powerful, scalable automation systems with minimal effort.
The development of the Homemaster MiniPLC took many months of dedicated work, experimentation, and refinement.
We went through four PCB revisions to reach the current stable design. Every component was chosen through real-world testing and constant iteration. For example, we tested multiple LED light pipes—selecting one, replacing it, and testing again—until we found the right fit for optimal visibility and durability.
The enclosure also saw significant evolution. We prototyped two case designs, each with different mechanical layouts and component placements to optimize installation.
In the first prototype, we included both the RTD and Ethernet modules as separate boards. In the second revision, we decided to integrate Ethernet directly into the main board for better reliability. In the third, we also removed the RTD module and placed the RTD interface directly onto the main board—streamlining the overall design.
We tested several types of relays to ensure long-term industrial-grade performance, along with a variety of RJ45 connectors, USB ports, and screw terminals to guarantee solid electrical connections and easy installation.
Every component, down to the terminal blocks, was selected based on field testing, performance, and real-world use cases.
And that’s how the Homemaster MiniPLC came to life.
In the end, we developed a controller with the following key features:
2. Features at a Glance🔌 Input Voltage: Supports a wide range of input power:
- 24V DC or 120V–370V DC,
- 85V–265V AC / 47–63 Hz
🔌 USB: USB Type-C port for programming and diagnostics.
🔁 RS-485 (Modbus RTU): Built-in RS-485 interface for connecting extension modules using the Modbus protocol.
🌐 Ethernet: Wired network interface using the LAN8720A Ethernet PHY chip.
📶 Wi-Fi and Bluetooth Wireless communication via the onboard ESP32, supporting both Wi-Fi and Bluetooth.
🔘 LEDs and Buttons: 4 front-facing buttons for manual control or user input, Status LEDs provide system state feedback.
⏱️ RTC (Real-Time Clock): Integrated PCF8563 RTC for precise timekeeping, even offline.
🖥️ Display: SH1106 OLED display for real-time data or status display.
🔊 Buzzer: Internal buzzer for alerts and system notifications.
💾 MicroSD Card: MicroSD card slot for data logging, extended configurations, or firmware storage.
⚡ Relays: 6 opto-isolated industrial relays with varistor protection for safe switching and long-term durability.
🔌 Digital Inputs: 4 digital inputs (24V DC) using the ISO1212 IC, providing surge protection and reliable signal reading.
🌡️ RTD Inputs: 2 RTD channels compatible with 2-/3-/4-wire sensors via the MAX31865 chip.
📈 Analog Inputs: 4 analog input channels (0–10V) using ADS1115 ADC, with ESD and overvoltage protection.
📉 Analog Output: 1 analog output channel (0–10V) powered by the MCP4725 DAC, also protected from ESD and voltage spikes.
🔄 1-Wire Support: 2 isolated 1-Wire channels with integrated ESD and overvoltage protection for robust sensor communication.
3. Hardware OverviewSince certain GPIOs affect how the ESP32-WROOM boots, such as GPIO0, GPIO2, GPIO12, and GPIO15, we thoroughly tested multiple configurations. We finalized the pin layout to ensure reliable startup while avoiding conflicts with these critical bootstrapping pins:
To meet the needs of home automation and small facility control, we required more digital I/Os, RTD temperature sensing, and high-resolution analog inputs. To achieve this, we expanded functionality using the PCF8574 digital I/O expander, a 16-bit ADS1115 ADC, and an MCP4725 DAC.
This block diagram shows the internal architecture of the Homemaster MiniPLC. At its core is the ESP32-WROOM module, managing all inputs, outputs, and communications.
4. System SchematicsMCU Board – Central Processing Unit and Communication Hub
📄 View Schematic (MCU_Board.pdf) file on our GitHub
The MCU Board is the heart of the MiniPLC system. It not only houses the main microcontroller but also integrates several communication ICs and signal interfaces. Key components and features include:
- I/O expansion ICs for extending digital I/O capabilities
- ADC/DAC ICs for acquiring and generating analog signals
- RTD interface circuitry for accurate temperature measurements
- Ethernet interface for network communication and remote control
- CP2101 USB-UART bridge for USB connectivity
- Fully integrated I2C and SPI buses for peripheral communication
This board manages all logic execution, sensor interfacing, control signal processing, and communication with external systems.
Relay Board – I/O Expansion and Power Interface
📄 View Schematic (Relay_Board.pdf) file on our GitHub
The Relay Board serves as the MiniPLC’s main I/O interface, supporting both digital and analog signal handling along with power management and robust signal protection. It includes:
- Multiple electromechanical relays for switching external loads
- ISO1212 input protection IC for safely handling industrial digital inputs
- Protection circuitry for RS-485 and 1-Wire communication interfaces
- DC-DC converter for regulated 24V to 5V and 12V power (used by analog DAC outputs)
- MYRRA isolated power supply module supporting: 120–370V DC input, 85–265V AC @ 47–63 Hz
This board ensures safe, reliable interfacing with external systems and protects sensitive control electronics from environments.
USB Board – SD Card and USB Interface
📄 View Schematic (USB_Board.pdf) file on our GitHub
The USB Board is a compact interface module designed primarily for simplify connectivity. It includes:
- A MicroSD card reader for local data logging or firmware updates
- A USB connector for communication with the host system
There are no additional functional components on this board; it is designed to streamline installation and modular interfacing with the MCU board.
6. Physical Design OverviewTo give a better understanding of the MiniPLC’s construction, here's a look at the internal layout and the actual PCBs that make up the system.
The enclosure houses the three main boards: the MCU Board, Relay Board, and USB/SD Interface Board. These are interconnected via headers and connectors.
The Homemaster MiniPLC comes pre-installed with ESPHome, making it ready to connect to your Wi-Fi network and integrate with Home Assistant right out of the box. Initial setup is simple and can be done through the built-in web server, allowing you to configure Wi-Fi and bring the device online in just minutes.
Firmware updates and custom configurations can be uploaded in multiple ways via the ESPHome Dashboard:
- Over USB type-C
- Wirelessly via Wi-Fi (OTA)
- Or directly using the internal web server
The MiniPLC is powered by an ESP32 chip and includes a USB interface, which means it can also be programmed using any ESP32-compatible IDE, such as:
- Arduino IDE
- PlatformIO
- ESP-IDF
This flexibility allows both beginners and advanced users to fully tailor the MiniPLC’s functionality to their specific automation needs.
View the default miniplc.yaml configuration file on our GitHub
8. Resources & Links
Comments