Skip to Content

HomeMaster MicroPLC — ESP32 DIN-Rail Controller, Modbus, ESPHome

The HOMEMASTER MicroPLC is a compact and powerful open-source automation controller based on the ESP32-WROOM-32U. Designed for seamless integration with Home Assistant using ESPHome, it enables control of smart home devices, sensors, actuators, and industrial systems through RS-485 Modbus and wireless communication.

Manufacturer: HomeMaster Internal Reference: HM-MICROPLC Mfr. Part#N: ESP32-MicroPLC Barcode: 5940031101725

100.00 100.00 VAT included

Returns & Warranty Conditions
Shipping & Availability
We ship orders within 1–2 business days for items in stock.
For out-of-stock products, ships within 1–2 business days after restock
Shipping times will automatically update once the product becomes available.


HomeMaster MicroPLC (ESP32)

HomeMaster MicroPLC (ESP32)

The HomeMaster MicroPLC is a professional, open-source DIN rail controller built around the ESP32 platform, designed for robust and scalable smart automation in residential, commercial, and light industrial environments. It combines digital inputs, relay outputs, RS-485 communication, real-time clock functionality, and USB programming interface. On a hydronic bus it acts as the Modbus RTU master at the head of a heating installation built from HomeMaster expansion modules.

Integrates with Home Assistant over the native ESPHome API — no MQTT broker, no Modbus register mapping and no custom converters. The device appears in Home Assistant within seconds as ready-to-use entities, with low latency and no cloud.

Engineered for reliability and flexibility, the MicroPLC supports 24 V DC power input and features an integrated RS-485 Modbus interface for expansion with compatible I/O modules and field devices. Its local processing capability ensures continued operation even when network or cloud connectivity is lost, making it suitable for mission-critical applications.

HomeMaster MicroPLC DIN-rail ESP32 industrial controller
DIN rail • 24 V DC • ESP32 • Modbus RTU • Home Assistant

Quick Overview

  • ESP32 industrial controller platform
  • Industrial DIN-rail form factor with 24 V DC supply
  • Runs locally and offline without cloud dependency
  • Expandable via RS-485 Modbus field devices

Typical Applications

  • Industrial automation controller
  • HVAC automation and plant control
  • Energy management systems
  • Industrial I/O controller
  • Building management systems (BMS)
  • RS-485 Modbus master / field gateway
  • Bus master for a multi-module heating system

Tech Specs

Technical Specifications
SpecificationDetails
MicrocontrollerESP32-WROOM-32U-N16 (dual-core)
Flash Memory16 MB SPI flash
SRAM536 KB SRAM
Power Input 24 V DC nominal (24VDC)
Digital Inputs1 × IEC 61131-2 compliant 24 V digital input (ISO1212 front-end), dry-contact (module-wetted), with PTC fuse, TVS surge and reverse-polarity protection
Relay Outputs 1 × relay (HF115F-005-1ZS3), C and NC only (no NO) — functionally SPST-NC; closed when de-energised
Temperature Inputs1-Wire interface supported
User Interface 1 button, status LEDs
Wi-FiIntegrated Wi-Fi (ESP32)
Wi-Fi standardIEEE 802.11 b/g/n (2.4 GHz)
RS-485 RS-485 Modbus RTU (MAX485, half-duplex), non-isolated; TVS surge protection, PTC fuses, common-mode choke, fail-safe biasing
StorageInternal ESP32 flash
USBUSB-C programming interface via CP2102N USB-UART bridge
RTCPCF8563 RTC with CR2032 battery backup

Installation, Environmental & Mechanical

Installation, Environmental & Mechanical Specifications
Category Specification Details
Terminal Specifications Terminal type Pluggable screw terminal blocks, 5.08 mm pitch
Terminal pitch5.08 mm
Wire cross-section0.2–2.5 mm² (AWG 24–12)
Conductor typeSolid or stranded copper
Stranded wireFerrules recommended
Tightening torque0.4 Nm (max)
Environmental Ratings Operating temperature0 °C to +40 °C
Storage temperature-10 °C to 55 °C
Relative humidity0–90 % RH, non-condensing
Ingress protectionIP20 (inside cabinet)
Installation Indoor control cabinet only; not for outdoor or exposed installation
Terminal protection All wiring terminals must be protected against accidental contact
Mechanical & Packaging Product dimensions 35.5 × 91 × 67.3 mm (L × W × H)
DIN width2 modules (2 × 17.5 mm)
Mounting35 mm DIN rail
Net weightxxx g
Gross weightxxx g
Pack size xxx × xxx × xxx mm (L × W × H)
Mechanical drawing Front + side views with DIN-clip depth (see below)
Notes All dimensions shown in millimeters unless stated otherwise

Install only inside a control cabinet with ventilation; the cabinet must include a protective front plate covering all module connection terminals and a closing protective door; not for outdoor or exposed installation.

All wiring terminals must be protected against accidental contact by an insulating front plate, wiring duct, or terminal cover. Exposed live terminals are not permitted.

HomeMaster MicroPLC mechanical drawing (front and side view) with dimensions in mm
Mechanical drawing: front view + side view + DIN-clip depth (all dimensions in mm).

Home Assistant & ESPHome Integration

The MicroPLC comes with ESPHome pre-installed and can be integrated directly into Home Assistant without flashing custom firmware.

Quick Setup Process (Improv Wi-Fi)

  1. Mount & Power – Install on a 35mm DIN rail and connect power.
  2. Open Improv – Go to improv-wifi.com.
  3. Connect – Use USB-C (Serial) or Bluetooth LE.
  4. Enter Wi-Fi – Input SSID and password, then press Connect.
  5. Auto-Discovery – Device appears in Home Assistant & ESPHome Dashboard.

One-Click Import (ESPHome Dashboard)

Once connected to Wi-Fi, the MicroPLC is automatically discovered in ESPHome Device Builder. Within 15 minutes of power-on, click Take control to import the official configuration and establish the per-device API encryption key (firmware 1.1.0). Home Assistant prompts for the key and installs it. Save the key for moves between Home Assistant instances. Power-cycle to reopen the provisioning window if it has closed. USB Serial Improv remains available regardless.

USB Type-C Manual Flashing (Optional)

  1. Connect the MicroPLC to your computer using USB Type-C.
  2. Download the official YAML configuration: microplc.yaml
  3. Open ESPHome Dashboard and import the YAML file.
  4. Update Wi-Fi credentials in the YAML.
  5. Flash directly from ESPHome (no reset or boot buttons required).
  6. The device reboots automatically and runs the new firmware.
  • No firmware flashing required for basic use
  • Native Home Assistant API
  • OTA updates supported
  • Automatic ESPHome dashboard import
  • Full YAML customization
ESPHome Improv WiFi setup flow

Extension modules sit on the same RS-485 bus and are configured against this controller. The MiniPLC is the larger sibling — same ESP32 and the same firmware, different onboard I/O, mains input and Ethernet. To work out how many modules a panel needs and how wide it comes out, use the System Builder.

The RS-485 bus accepts any combination of expansion modules and field hardware: actuators, pumps, sensors and the boiler interface are specified per circuit, independent of the controller on the DIN rail.

New to this kind of system? Two guides cover the ground: building a Home Assistant automation system and a wired ESPHome smart home. A full build using this controller is written up in the MicroPLC chimney automation guide.

Going deeper on this module: wiring a new house before the walls close, what still works when Home Assistant is down and RS-485 and Modbus wiring, termination and timeouts. Related modules: STR-3221-R1, AIO-422-R1, DIO-430-R1 and the OpenTherm Gateway.

Documentation

The MicroPLC is open-source hardware. You can build your own board using the files below.

Hardware Design Files

File Description Link
Schematic (MCU Board) Main controller board schematic MCUBoard.pdf
Schematic (Relay Board) Relay and power section schematic RelayBoard.pdf

Compliance Documents

File Description Link
EU Declaration of Conformity (DoC) Signed EU Declaration of Conformity per Reg. (EC) 765/2008 and Decision 768/2008/EC DoC_MicroPLC.pdf
Datasheet Technical specifications and electrical characteristics MicroPLC_Datasheet.pdf

Firmware & Software

Resource Description Link
Default ESPHome Config Pre-configured YAML for Home Assistant microplc.yaml
Firmware Source Code Latest firmware builds and source Firmware/
ESPHome Integration Guide Complete setup instructions README.md

Power Supply

The MicroPLC is powered by 24 V DC nominal on V+ / 0V terminals.

Power Input Specifications

Power Input Specifications
Input Option Terminals Range Notes
24 V DC V+ / 0V 24 V DC Powers internal rail +24VDC_FUSED.

24 V DC Input (V+ / 0V)

  • Typical operating current: 150 mA @ 24 V (≈ 3.6 W) — measured typical device power consumption
  • Internal rail: 24 V input is conditioned into +24VDC_FUSED
  • Input protection: surge suppression (TVS), EMI filtering, reverse-polarity / power-path protection
  • Internal protection: 1.0 A soldered service fuse and resettable PTC protection devices
  • Upstream protection (recommended): external 0.5 A slow-blow fuse or 0.5 A breaker on V+ so the external device clears before the internal service fuse. Recommended to protect wiring and simplify troubleshooting.
Wiring example: 24 V DC connected to V+ and 0V
Connect + to V+ and to 0V.
Installation checklist
  • Use a regulated 24 V DC supply
  • Install 0.5 A fuse/breaker upstream of V+
  • Observe polarity: V+ / 0V
  • Route power wiring away from low-level analog signal wiring

Inputs & Outputs

Digital Inputs (1 channel)

Digital Inputs (1 channel)
Channel Pin Type Voltage Description
DI #1 DI24V (ESP32 GPIO via ISO1212) Dry contact (module-wetted) 24 V DC Isolated 24 V digital input with internal field supply, dry contact

Features:

  • 1× IEC 61131-2 compliant 24 V DC digital input (ISO1212 front-end), dry-contact (module-wetted), with PTC fuse, TVS surge and reverse-polarity protection
  • Internal fused 24 V field supply for dry-contact sensing
  • Module-wetted inputs for potential-free contacts (relay contacts, open-collector / transistor outputs)
  • Separate field ground and logic ground domains
  • Per-channel protection with resettable PTC fuses and TVS surge suppression
  • Integrated EMI and noise filtering on each input
  • Configurable input inversion and debounce filtering via ESPHome
  • Status monitoring via Home Assistant binary sensors

Connect potential-free (dry) contacts — wall switches, push buttons, or relay / open-collector / transistor outputs that simply close the input to its GND return. The module supplies the wetting current from its own 24 V rail; do not feed external voltage into the input. Three-wire sensors must be powered from your own supply, with their switching output wired to the input (the module provides no sensor-supply rail).

Wiring example: dry contact wiring to DI inputs
Wiring example: dry contact wiring to DI inputs.

⚠️ NC relay (reserve): The relay output is dry-contact and exposes only C and NC (no NO). When the device is unpowered or the relay is switched OFF, the NC contact is closed and the load is energized. This channel is a reserve for the installer — use it where equipment must switch on if the panel loses power. For failsafe-off loads (pumps, valves, heaters), use a module with NO/SPDT contacts (e.g. DIO-430-R1).

Relay Outputs

The MicroPLC provides 1 mechanical relay (HF115F-005-1ZS3) for switching AC or DC loads. Only C and NC terminals are exposed (no NO) — functionally SPST-NC. The contact is closed when de-energised. Driven via optocoupler-isolated control circuitry.

System/board rating: 3 A MAX per output (system limit). The MicroPLC board/system can safely carry ONLY 3 A per relay output. This limit is determined by PCB trace width, terminal block rating, and thermal constraints, not the relay component rating. Using more than 3 A directly can overheat and permanently damage the board.

Relay contact (component) rating: 16 A @ 250 V AC (resistive). This value belongs ONLY to the relay component itself and is NOT usable as a system output rating. The MicroPLC must NOT be used above 3 A.

Loads above 3 A (or inductive/inrush loads) MUST be switched using an external contactor or power relay. The MicroPLC relay may be used as a control signal for the external contactor. Do not attempt to switch loads above 3 A directly through the MicroPLC relay outputs.

⚠️ External protection required: Every relay output MUST be protected by an external fuse or circuit breaker (max 3 A per channel). Relay output circuits are not internally fused. External overcurrent protection is mandatory for safe operation.

Relay Specifications

Relay Specifications
Channel Control Pin Type Rating Description
Relay #1 RELAY (ESP32 GPIO via optocoupler driver) SPST-NC (C/NC only) 16A @ 250V AC (relay component rating, NOT usable as system output)
3 A MAX per output (board/system limit)
General purpose relay output 1 (C/NC only; closed when de-energised)

Relay Wiring Examples

Relay wiring example C and NC contacts
Example wiring using C and NC only (no NO terminal). NC is closed when de-energised.
  • Relay exposes C / NC only — there is no NO terminal
  • There is no NO terminal — use DIO-430-R1 for failsafe-off loads
  • NC is closed when de-energised — load is powered by default; do not use for failsafe-off loads
  • ⚡ Loads may carry hazardous voltage
  • Supports AC and DC switching (DC and inductive loads require derating)

⚠️ External protection rule: Every relay output MUST be protected by an external fuse or circuit breaker. The rated current of the protective device shall not exceed 3 A MAX per output (board/system limit).

⚠️ Common protection warning: If a single common fuse or circuit breaker is used to protect multiple relay outputs (as shown in the wiring example), the protective device shall NOT be sized by summing relay outputs. The rating of the common protective device shall not exceed 3 A MAX per output (board/system limit).

For inductive or DC loads (contactors, solenoids, motors), use appropriate suppression (RC snubbers, MOVs, or flyback diodes). Loads exceeding the recommended PCB current limit shall be switched using external contactors or wiring methods that bypass PCB copper paths.


Temperature Inputs

MicroPLC supports 1-Wire temperature sensors (DS18B20 or compatible) for reliable cabinet and process temperature monitoring.

Temperature Input Specifications

Temperature Input Specifications
Type Channel Sensor / Interface Range Accuracy
1-WireBUS #11-WIRE-55°C to +125°C±0.5°C

Wiring Examples

1-Wire wiring example
1-Wire wiring example.

Limitations / Notes

  • Recommended topology: daisy-chain configuration (see wiring example above)
  • Maximum number of sensors (recommended): ≤ 10 sensors per bus
  • Typical maximum cable length (recommended): ≤ 50 m using shielded cable with proper topology
  • Power mode: External power using +5V/GND is recommended. Parasitic power mode is not recommended for long cable runs or multiple sensors.

User Interface

User Interface Components
ComponentQuantityControlDescription
Button1BUTTONUser button for local control
LED11+5V rail+5V power indicator
LED21RLEDRelay status LED (hardware-driven)
LED31LEDFirmware-configurable status LED
LED41DIDigital input status indicator
LED51RS-485 RXRS-485 receive activity indicator
LED61RS-485 TXRS-485 transmit activity indicator

Features:

  • 1× user button for local control (BUTTON)
  • LED1 indicates internal +5V power
  • LED3 is a firmware-configurable status LED
  • LED4 indicates digital input state (DI)
  • LED5/LED6 indicate RS-485 RX/TX activity

Communication & Protocols

  • Modbus RTU (RS-485) – UART-based communication for expansion modules and field devices
  • Wi-Fi – ESP32 integrated (Improv onboarding supported)

RS-485 / Modbus RTU

Terminal order differs across the HomeMaster range. Always read the silkscreen - do not wire by habit from another module. On this module the order is COM-B-A. Swapping A and B damages nothing but the node will not communicate. COM is required on every node.

All HomeMaster controllers and modules share the same RS-485 front end.

RS-485 Front End
ItemValue
TransceiverMAX485CSA+T, half-duplex
Galvanic isolationNone — the transceiver shares the device's logic ground
Common-mode range−7 V … +12 V referred to the device's own ground (MAX485 limit)
TerminalsA / B / COM
Surge protection3 × SMAJ6.8CA TVS (A–COM, B–COM, A–B)
Overcurrent2 × resettable PTC, 1.5 A hold, in series with A and B
EMI filteringCommon-mode choke on the A/B pair; COM referenced through 1 MΩ ∥ 4.7 nF
Idle stateFail-safe biasing on board — do not add external bias resistors
Termination120 Ω at the two physical ends of the bus only

Bus wiring rules — apply to every device on the bus:

  • One twisted pair for A/B, 120 Ω characteristic impedance.
  • Run COM to every node. Required, not optional: the ports are not isolated, and COM is what bounds the common-mode voltage the transceivers see.
  • Prefer one power supply for the whole bus, distributed in star topology. With separate supplies, additionally tie the 0 V references together at a single point.
  • Bond the cable shield to cabinet PE at one end only. Never land a shield on A, B or COM.
  • Where the bus crosses into a different electrical installation with its own earthing reference — a utility or billing meter, another building, another cabinet's PE system — fit an external galvanic RS-485 isolator at that boundary. The on-board components are transient protection, not isolation, and will not survive a sustained ground-potential difference.
RS-485 wiring example: bus connection (A/B/COM)
Connect A, B, and COM to the bus.
RS-485 wiring example with 120 ohm termination
Add 120Ω termination only at the two physical ends of the bus.

Tip: Cable recommendations, shield bonding, and routing rules are defined in the Cable Recommendations & Shield Grounding section below.


Cable Recommendations & Shield Grounding

This section applies to Analog (0–10V), Temperature (RTD / 1-Wire), and RS-485. Use shielded, twisted constructions and bond shields correctly to reduce EMI and ground-loop issues.

General Routing Rules

  • Route low-level signal cables (Analog/RTD/1-Wire/RS-485) separately from mains, relay outputs, contactors, VFD motor cables, and power wiring.
  • If crossing power cables is unavoidable, cross at 90°.
  • Keep cable runs as short as practical and avoid parallel runs with high-current conductors.
1-Wire (DS18B20)
  • Recommended: shielded 3-core ( +5V / DATA / GND ) for typical installations
  • High-EMI / long runs: shielded pairs + overall shield (e.g. LI2YCY PIMF 2×2×0.50)
  • Topology: daisy-chain (bus). Avoid star wiring.
  • Stubs: keep sensor stubs ≤ 0.5 m.
  • Pull-up (DATA): 4.7 kΩ typical; 2.2–3.3 kΩ for long/heavy loads.

RS-485 Cable

  • Construction: twisted pair for A/B
  • Characteristic impedance: 120 Ω (recommended)
  • Shielding: overall shield is recommended in cabinets; use individually shielded pairs + overall shield in high-EMI
  • Examples: J-Y(ST)Y 2×2×0.5 mm² or LI2YCY PiMF 2×2×0.50
  • Use one twisted pair for A/B and a third conductor for COM. COM must be run to every node.

Shield Grounding

  • Default recommendation: bond cable shield(s) to cabinet PE/EMC ground at the PLC end only.
  • Do not connect shields to signal terminals (AI/AO/RTD/1-Wire/RS-485 A/B/COM).
  • If both ends are in equipotential bonded cabinets, shields may be bonded at both ends using proper 360° clamps.

Connectors & terminal map

Top row (24Vdc | DI 24Vdc | RELAY)

PosLabelGroupFunction
1+VPOWER24 V DC input
20VPOWER24 V DC return
3I.1DI1DI1 input
4GNDDI1DI1 return
5CRELAYRelay common
6NCRELAYRelay normally closed

Bottom row (RS-485 | BUS)

PosLabelGroupFunction
1COMRS485RS-485 signal reference
2BRS485RS-485 data -
3ARS485RS-485 data +
4+5VBUS1-Wire sensor supply
5DBUS1-Wire data
6GndBUS1-Wire ground

Ports & service interfaces

IdTypeNote
USB-C5 V via USB-C (programming)

Housing notes

  • Relay exposes C and NC only. There is no NO terminal and the contact is CLOSED when the relay is de-energised - the same inverted behaviour as the OpenTherm Gateway.
  • ONE 1-Wire bus. The '1WIRE 1/2' legend labels the two data terminals of a single bus, not two buses.
  • DI pair reads signal-then-GND, like DIM and opposite to DIO.
  • Power reads +V then 0V.

System Architecture & Pinout

ESP32 MicroPLC System Block Diagram
System block diagram showing internal architecture and interfaces.
ESP32 MicroPLC Pinout Diagram
Complete GPIO and connector pin assignments.

Compliance & Certifications

The MicroPLC module is CE marked. ISYSTEMS AUTOMATION S.R.L. (HomeMaster® brand) maintains the technical documentation and a signed EU Declaration of Conformity (DoC) available for download in the Documents and Resources section above.

  • EMC Directive 2014/30/EU — EN 55032:2015 (Class B emissions), EN 55035:2017 (immunity), tested by Idvorsky Laboratories Ltd. (Job #1648)
  • Low Voltage Directive 2014/35/EU — EN 62368-1:2020 + A11:2020, in-house dielectric and isolation testing by ISYSTEMS AUTOMATION compliance laboratory
  • RoHS Directive 2011/65/EU — EN IEC 63000 technical documentation
  • HomeMaster® — registered EU trademark (EUTM No. 019082911, EUIPO, registered 15 January 2025)

Licensing. Hardware design files — schematics, PCB layouts and bills of materials — are published under CERN-OHL-W v2. Firmware and the ESPHome integration packages are published under the MIT licence. Full terms are in the LICENSE files in the HOMEMASTER repository.

Build Guides & Tutorials

Step-by-step projects built with the MicroPLC.

HomeMaster MicroPLC, DIO-430-R1 and WLD-521-R1 on a DIN rail with fireplace
Smart Chimney with MicroPLC →
Wood-fired fireplace water-jacket automation: two-pump logic, Modbus heat metering and gas-boiler fallback.