Skip to Content

ENM-223-R1 3-Phase Power Quality & Energy Metering Module

https://www.home-master.eu/web/image/product.template/737/image_1920?unique=69325c5
(0 review)

The ENM-223-R1 is an advanced three-phase energy monitoring and automation module designed for real-time measurement, protection logic and automated power control. It measures voltage, current, power, frequency and energy consumption per phase while offering built-in relays, alarm logic, and data reporting through Modbus RTU.

Designed for seamless integration with HomeMaster MiniPLC and MicroPLC controllers, this energy meter is ideal for smart homes, solar systems, industrial installations, and power-sensitive environments.


110.00 110.0 USD 110.00 Tax Excluded

0.00 lei Tax Excluded

PRE-ORDER

    This combination does not exist.


    Display Name: ENM-223-R1 3-Phase Power Quality & Energy Metering Module

    ENM-223-R1 — 3‑Phase Power Metering & I/O Module

    HOMEMASTER – Modular control. Custom logic.

    Firmware Version: 2025-09 snapshot

    Firmware Version
    Modbus
    License

    ENM-223-R1 — 3-Phase Power Metering & I/O Module

    HOMEMASTER – Modular control. Custom logic.

    MODULE photo
    Module Description

    The ENM-223-R1 is a configurable smart I/O module designed for 3-phase power quality and energy metering.
    It includes 3 voltage inputs, 3 current channels, 2 relays, and optional 4 buttons / 4 LEDs, with configuration via WebConfig using USB-C (Web Serial).
    It connects over RS-485 (Modbus RTU) to a MicroPLC/MiniPLC, enabling use in energy monitoring, automation, and smart building applications.


    Table of Contents


    1. Introduction

    1.1 Overview of the ENM‑223‑R1 Module ⚡

    The ENM‑223‑R1 is a modular 3‑phase energy metering + I/O device for power monitoring, automation, and local control. It features 3 voltage channels (L1/L2/L3‑N), 3 current channels (external CTs), 2 SPDT relays, 4 user LEDs, and 4 buttons—all driven by an RP2350 MCU with QSPI flash and a dedicated ATM90E32AS metering IC.

    It integrates with MiniPLC/MicroPLC controllers or any Modbus RTU master over RS‑485, and it’s configured in‑browser via USB‑C Web Serial (no drivers). Typical uses include energy dashboards, demand response, alarm‑driven relay control, and building automation. Defaults ship as Modbus address 3 @ 19200 8N1 (changeable in WebConfig).

    Quick device flow:
    Wire Lx/N/PE + CTs → set address/baud in WebConfig → calibrate gains/offsets → define alarms per L1/L2/L3/Totals → map relays/LEDs/buttons → connect RS‑485 A/B (and GND if separate PSUs) → poll via Modbus.


    1.2 Features & Architecture
    Core Capabilities
    Subsystem Qty Description
    Voltage Inputs 3 L1/L2/L3‑N measurement (divider network on FieldBoard) feeding ATM90E32AS
    Current Inputs 3 Differential CT inputs (IAP/IAN, IBP/IBN, ICP/ICN) with filtering/burdens
    Relays 2 SPDT dry contacts (NO/NC); opto‑driven; alarm‑ or Modbus‑controlled
    LEDs 4 User LEDs; sources: overrides/alarms/warnings/events; steady or blink
    Buttons 4 User actions (toggle relays/LEDs, overrides, acks) with live state feedback
    Metering & Energy ATM90E32AS: Urms/Irms, P/Q/S, PF, angle, freq; energy kWh/kvarh/kVAh (phase & totals)
    Config UI Web Serial In‑browser WebConfig over USB‑C (Chrome/Edge); live meter, calibration, alarms, relays, LEDs, buttons
    Modbus RTU RS‑485 Multi‑drop slave; address 1…255; baud 9600–115200 (default 19200 8N1)
    MCU RP2350 + QSPI Dual‑core MCU, native USB, external W25Q32 flash; RS‑485 via MAX485 transceiver
    Power 24 VDC Buck to 5 V → 3.3 V LDO; isolated analog domain via B0505S DC‑DC + ISO7761
    Protection TVS, PTC, fuses Surge/ESD on USB & RS‑485; resettable fuses on field I/O; reverse‑polarity protection

    1.3 System Role & Communication 🍰

    The ENM‑223‑R1 is a smart Modbus RTU slave. It executes local alarm logic (thresholds & acks) and mirrors states/values to a PLC or SCADA via registers/coils. Configuration (meter options, calibration, relay/LED logic, button actions, Modbus address/baud) is done via USB‑C WebConfig, stored to non‑volatile memory.

    Role Description
    System Position Expansion meter+I/O on the RS‑485 trunk (A/B/GND)
    Master Controller MiniPLC / MicroPLC or any third‑party Modbus RTU master (polling)
    Address / Baud Configurable 1…255 / 9600–115200; factory default: ID 3 @ 19200 8N1
    Bus Type RS‑485 half‑duplex; termination/bias per bus rules; share GND if separate PSUs
    USB‑C Port Setup/diagnostics via Chromium browser (Web Serial); native USB D+/D− to MCU
    Default Modbus ID 3 (change in WebConfig)
    Daisy‑Chaining Multi‑drop on shared A/B; ensure unique IDs and end‑of‑line termination

    Note: The UI exposes per‑channel Alarm / Warning / Event with min/max thresholds and Ack required option; relays can follow selected alarm kinds or be Modbus‑controlled. Buttons can toggle/override relays; LEDs reflect overrides or alarm states.

    2. Use Cases

    This section outlines practical application examples for the ENM‑223‑R1 module. Each use case includes a functional goal and a clear configuration procedure using the WebConfig tool and/or Modbus RTU integration.

    These templates are applicable in energy management, automation, industrial control, and building infrastructure deployments.


    2.1 Overcurrent Alarm with Manual Reset

    Purpose: Activate Relay 1 when current exceeds a configured threshold and hold it until manually acknowledged.

    Configuration:
    • Alarms → Channel: Totals
      • Enable Alarm
      • Metric: Current (Irms)
      • Max threshold: e.g. > 5000 (for 5 A)
      • Enable Ack required
    • Relays → Relay 1
      • Mode: Alarm Controlled
      • Channel: Totals, Kinds: Alarm
    • LEDs → LED 1
      • Source: Alarm Totals, Mode: Steady
    • Acknowledge: via Web UI, Modbus coils 610–613, or front panel button (if assigned)

    2.2 Manual Override for Load Control

    Purpose: Allow field operators to override Relay 2 using a button, regardless of Modbus or automation control.

    Configuration:
    • Relays → Relay 2
      • Mode: Modbus Controlled
      • Enabled at power-on
    • Buttons → Button 2
      • Action: Override Relay 2 (hold 3s)
    • LEDs → LED 2
      • Source: Override R2, Mode: Blink or Steady

    Holding the button for 3 seconds enters override mode. A short press toggles the relay. Holding again exits override mode.


    2.3 Environmental Voltage/Frequency Alarm with Auto-Clear

    Purpose: Detect power quality faults (sag/swell or freq drift), activate Relay 1 as an output, and auto-reset when back in range.

    Configuration:
    • Alarms → Channel: L1
      • Enable Alarm
      • Metric: Voltage (Urms)
      • Min: 21000 (210 V), Max: 25000 (250 V)
      • Leave Ack required unchecked
    • Relays → Relay 1
      • Mode: Alarm Controlled, Channel: L1, Kinds: Alarm
    • LEDs → LED 1
      • Source: Alarm L1

    2.4 Staged Load Shedding via Modbus Scenes

    Purpose: Use a controller to shed non-critical loads as power consumption increases.

    Configuration:
    • Relays → Relay 1 and Relay 2
      • Mode: Modbus Controlled
    • In PLC logic:
      • Monitor Totals S (VA) via Input Register
      • If S > 8000, write coil 600 = OFF (Relay 1)
      • If S > 10000, write coil 601 = OFF (Relay 2)
      • Restore relays when values drop below defined hysteresis limits

    Ideal for HVAC or lighting where priority-based power shedding is needed.


    Summary Table
    Use Case Feature Used Reset Method Relay Mode
    Overcurrent Alarm + Ack Alarms, Ack, Relay 1 Manual (Ack) Alarm Controlled
    Manual Override via Button Button override, LED Button toggle Modbus Controlled
    Voltage/Frequency Fault Auto-Reset Alarm (no ack), Relay Auto (value returns) Alarm Controlled
    Load Shedding (Staged Scenes) PLC Modbus, Relay 1 & 2 PLC-controlled Modbus Controlled

    🛠 All parameters are configurable via USB‑C WebConfig. Modbus control assumes master-side logic (PLC, SCADA, or MicroPLC/MiniPLC).


    3. Safety Information

    These safety guidelines apply to the ENM‑223‑R1 3‑phase metering and I/O module. Ignoring them may result in equipment damage, system failure, or personal injury.

    ⚠️ Mixed Voltage Domains — This device contains both SELV (e.g., 24 V DC, RS‑485, USB) and non-SELV mains inputs (85–265 V AC). Proper isolation, wiring, and grounding are required. Never connect SELV and mains GND together.


    3.1 General Requirements
    Requirement Detail
    Qualified Personnel Installation and servicing must be done by qualified personnel familiar with high-voltage and SELV control systems.
    Power Isolation Disconnect both 24 V DC and voltage inputs (Lx/N) before servicing. Use lockout/tagout where applicable.
    Environmental Limits Mount in a clean, sealed enclosure. Avoid condensation, conductive dust, or vibration.
    Grounding Bond the panel to PE. Wire PE and N to the module. Never bridge GND_ISO to logic GND.
    Voltage Compliance CT inputs: 1 V or 333 mV RMS only. Voltage inputs: 85–265 V AC. Use upstream fusing and surge protection.

    3.2 Installation Practices
    Task Guidance
    ESD Protection Handle only by the case. Use antistatic wrist strap and surface when the board is exposed.
    DIN Rail Mounting Mount securely on 35 mm DIN rail inside an IP-rated cabinet. Allow cable slack for strain relief.
    Wiring Use correct gauge wire and torque terminal screws. Separate relay, CT, and RS‑485 wiring.
    Isolation Domains Respect isolation: Do not bridge GND_ISO to GND. Keep analog and logic grounds isolated.
    Commissioning Before power-up, verify voltage wiring, CT polarity, RS‑485 A/B orientation, and relay COM/NO/NC routing.

    3.3 I/O & Interface Warnings
    ⚡ Power
    Area Warning
    24 V DC Input Use a clean, fused SELV power source. Reverse polarity is protected but may disable the module.
    Voltage Input Connect L1/L2/L3/N/PE only within rated range (85–265 V AC). Use circuit protection upstream.
    Sensor Domain Use CTs with 1 V or 333 mV RMS output. Never apply 5 A directly. Observe polarity and shielding.
    🧲 Inputs & Relays
    Area Warning
    CT Inputs Accept only voltage-output CTs. Reversing polarity may affect power sign. Use GND_ISO reference.
    Relay Outputs Dry contacts only. Rated: 5 A @ 250 VAC or 30 VDC. Use snubber (RC/TVS) for inductive loads.
    🖧 Communication & USB
    Area Warning
    RS‑485 Bus Use twisted pair. Terminate at both ends. Match A/B polarity. Share GND if powered from different PSUs.
    USB-C (Front) For setup only. Not for permanent field connection. Disconnect during storms or long idle periods.
    🎛 Front Panel
    Area Warning
    Buttons & LEDs Can override relays or trigger alarms. Use firmware settings or lockout for safety-critical installs.
    🛡 Shielding & EMC
    Area Recommendation
    Cable Shields Terminate at one side only (preferably PLC/controller). Route away from VFDs and high-voltage cabling.

    ✅ Pre‑Power Checklist
    • All wiring is torqued, labeled, and strain-relieved
    • No bridge between logic GND and GND_ISO
    • PE and N are wired to terminals
    • RS‑485 A/B polarity and 120 Ω termination confirmed
    • Relay loads do not exceed 5 A or contact voltage rating
    • CTs installed with correct polarity and securely landed
    • Voltage inputs fused, protected, and within spec (85–265 V AC)

    🧷 Tip: In single-phase installations, energize L1 and tie L2/L3 → N to prevent phantom voltages.

    4. Installation & Quick Start

    The ENM‑223‑R1 connects to your system over RS‑485 (Modbus RTU) and supports configuration via USB‑C WebConfig. Setup involves:
    1) Physical wiring, 2) Digital setup (WebConfig → Modbus or PLC/ESPHome control).


    4.1 What You Need
    Category Item / Notes
    Hardware ENM‑223‑R1 module: DIN-rail, 3 voltage channels, 3 CTs, 2 relays, 4 buttons, 4 LEDs, RS‑485, USB‑C
    Controller MicroPLC, MiniPLC, or any Modbus RTU master
    24 VDC Power (SELV) Regulated 24 V DC @ ~100–200 mA
    RS‑485 Cable Twisted pair for A/B + COM/GND; external 120 Ω end-termination
    USB‑C Cable For WebConfig setup via Chromium browser (Chrome/Edge)
    Software Web browser (Web Serial enabled), ConfigToolPage.html
    Field Wiring L1/L2/L3/N/PE → voltage inputs, CT1/2/3 → external CTs
    Load Wiring Relay outputs (NO/COM/NC); observe relay max rating and use snubbers on inductive loads
    Isolation Domains GND (logic) ≠ GND_ISO (metering); never bond these directly
    Tools Torque screwdriver, ferrules, USB-capable PC, 120 Ω terminators if needed

    Quick Path
    ① Mount → ② wire 24 VDC + RS‑485 (A/B/COM) → ③ connect USB‑C → ④ launch WebConfig →
    Set Address/Baud → assign Inputs/Relays/LEDs → confirm data → ⑤ disconnect USB → hand control to Modbus master.


    4.2 Power

    The ENM‑223‑R1 uses 24 V DC input for its interface domain and internally isolates metering circuits.

    • Power Terminals: Top left: V+ and 0V
    • Voltage Range: 22–28 V DC (nominal 24 V)
    • Typical Current: 50–150 mA (relays off/on)
    • Protection: Internally fused, reverse-polarity protected
    • Logic domain: Powers MCU, RS‑485, LEDs, buttons, relays
    4.2.1 Sensor Isolation
    • Metering IC (ATM90E32AS) is powered from an isolated 5 V rail
    • Analog domain uses GND_ISO, fully isolated from GND
    • Do not connect GND_ISO ↔ GND; isolation via B0505S + ISO7761

    Only voltage inputs (Lx-N) and CTs connect to the isolated domain.


    4.2.2 Power Tips
    • Do not power relays or outputs from metering-side inputs
    • Use separate fusing on L1–L3
    • Tie L2, L3 → N if using single-phase only (prevents phantom voltage)
    • Confirm PE is wired — improves stability & safety

    4.3 Networking & Communication
    4.3.1 RS‑485 (Modbus RTU)

    Physical

    Terminals Description
    A, B Differential signal pair (twisted/shielded)
    COM/GND Logic reference (tie GNDs if on separate supplies)

    Cable & Topology

    • Twisted pair (with or without shield)
    • Terminate with 120 Ω at each bus end (not inside module)
    • Biasing resistors (pull-up/down) should be on the master

    Defaults

    Setting Value
    Modbus Address 3
    Baud Rate 19200
    Format 8N1
    Address Range 1–247

    🧷 Reversed A/B will cause CRC errors — check if no response.


    4.3.2 USB‑C (WebConfig)

    Purpose: Web-based configuration tool over native USB Serial. Supports:

    • Live readings
    • Address/baudrate config
    • Phase mapping
    • Relay/button/LED logic
    • Alarm setup
    • Calibration (gains/offsets)

    Steps

    1. Connect USB‑C to PC (Chrome/Edge)
    2. Open tools/ConfigToolPage.html
    3. Click Connect, select ENM serial port
    4. Configure settings: address, relays, LEDs, alarms, calibration
    5. Click Save & Disconnect when finished

    ⚠️ If Connect is greyed out: check browser support, OS permissions, and close any other apps using the port.

    4.4 Installation & Wiring

    Use diagrams and explain:

    • Inputs
    • Relays
    • Sensor rails (12/5V)
    • RS-485 terminals
    • USB port

    4.5 Software & UI Configuration

    The ENM‑223‑R1 is configured using the browser‑based WebConfig Tool
    (tools/ConfigToolPage.html) over USB‑C.
    No drivers or software installation is required — configuration happens directly via Web Serial API (Chrome/Edge).

    • WebConfig refreshes live data every 1 s.
    • Click into a field to pause refresh for that field.
    • Press Enter to apply a change.
    • All settings are stored in non‑volatile flash.

    1) Modbus Setup (Address & Baud)
    WebConfig — Modbus address & baud
    • Click Connect and select the USB serial port.
    • The Active Modbus Configuration bar shows the current Address and Baud Rate.
    • You can configure:
      • Modbus Address: 1–255 (default = 3)
      • Baud Rate: 9600 / 19200 / 38400 / 57600 / 115200 (default = 19200)
    • Changes are live and applied on selection.
    • If you change baud or address, remember to reconnect the controller with updated settings.

    2) Meter Options & Calibration
    Meter options and calibration

    Meter Options

    • Line Frequency: 50 / 60 Hz (affects metering IC behavior)
    • Sum Mode:
      • 0 = algorithmic (P = P1 + P2 + P3)
      • 1 = absolute (P = |P1| + |P2| + |P3|)
    • Ucal (gain): global voltage scaling multiplier
    • Sample Interval (ms): rate at which readings update (10–5000 ms)

    Calibration (per phase A/B/C)

    • Ugain / Igain: scaling gains (16-bit, 0–65535)
    • Uoffset / Ioffset: calibration offsets (signed)
    • Press Enter after editing to write the value to the module.

    3) Alarms / Inputs (Per‑Channel Rules)
    Alarms per channel

    The ENM has 4 measurement channels: L1, L2, L3, and Totals.

    Each channel supports:

    • 3 rule slots: Alarm, Warning, Event
    • Metric types:
      • Voltage (Urms)
      • Current (Irms)
      • Active Power P
      • Reactive Power Q
      • Apparent Power S
      • Frequency

    You can configure:

    • Enable toggle
    • Metric, Min, and Max thresholds
    • Ack required — latches the Alarm state until acknowledged

    Acknowledgment:

    • Press Ack L1–L3 / Totals in UI
    • Or write to Modbus coil (610–613)

    💡 ENM has no digital inputs (DIs). These rules are “virtual inputs” based on real-time metering data.


    4) Relay Logic Modes
    Relay logic options

    Each of the two onboard SPDT relays can be configured independently.

    Options:

    Setting Description
    Enabled at Power-On Relay state after boot (on/off)
    Inverted (active-low) Affects both relays; sets low = ON
    Mode None, Modbus Controlled, or Alarm Controlled
    Toggle Manually toggle the relay from the UI
    Alarm Control Options Select Channel: L1–L3 or Totals and which kinds to follow: Alarm / Warning / Event

    In Alarm Controlled mode, direct Modbus writes may be blocked when an alarm is active.


    5) Button & LED Mapping
    Buttons and LED mapping

    Buttons (1–4)

    Each button can be mapped to:

    • None
    • Toggle Relay 1/2
    • Toggle LED 1–4
    • Override Relay 1/2 (hold 3s)
      • Hold 3 s to enter override
      • Short press toggles the relay
      • Hold again to exit override

    User LEDs (1–4)

    Each LED has:

    • Mode: Steady (when active) or Blink (when active)
    • Source:
      • Override R1/R2
      • Alarm, Warning, Event — for any channel
      • Any (A|W|E) — a combined indicator per channel

    💡 Use Override R1 as LED 1 source to give a clear local override status.


    6) Live Meter & Energies
    Live meter values

    Live Meter View:

    • U (V), I (A), P (W), Q (var), S (VA)
    • PF, angle, frequency, temperature
    • Totals and per-channel tiles
    • Phase validation and wiring checks

    Energies:

    • Per phase + totals:
      • Active (+ / –) in kWh
      • Reactive (+ / –) in kvarh
      • Apparent in kVAh

    Use this screen to verify CT orientation, load phase mapping, and live alarm behavior during commissioning.

    4.6 Getting Started (3 Phases)
    Phase 1 — Wire
    • 24 V DC to V+ / GND (top left terminals)
    • Voltage inputs: PE / N / L1 / L2 / L3
      • For single-phase: energize L1 only, tie L2/L3 → N
    • CTs to CT1/CT2/CT3 with correct ± polarity (1 V or 333 mV RMS)
      • Arrow → load; shielded pairs preferred
    • RS‑485 A/B/COM
      • Use shielded twisted pair; terminate bus ends with 120 Ω
    • (Optional) Relay outputs: COM/NO/NC
      • Add snubber on inductive loads (RC/TVS)
    • Ground panel PE and avoid bridging GND ↔ GND_ISO

    👉 See: Installation & Quick Start


    Phase 2 — Configure (WebConfig)
    • Open tools/ConfigToolPage.html in Chrome/Edge
    • Connect via USB‑CSelect port → Connect
    • Set:
      • Modbus Address / Baud
      • Line Frequency, Sample Interval
      • Alarm thresholds per L1/L2/L3/Totals
      • Relay modes: Alarm or Modbus Controlled
      • Map Buttons & LEDs (override, Ack, follow alarms)
      • (Optional) Adjust U/I gains, save calibration

    👉 See: WebConfig UI


    Phase 3 — Integrate (Controller)
    • Connect controller via RS‑485
    • Match Modbus address / baud
    • Poll:
      • Input registers: meter values (U, I, P, Q, S, PF, angle, kWh, etc.)
      • Coils: relays (600/601), Ack (610–613), button state
    • Send:
      • Coil writes: toggle relays, acknowledge alarms
    • Use with:
      • HomeMaster MicroPLC / MiniPLC
      • SCADA / ESPHome

    👉 See: Modbus RTU Communication & Integration Guide


    ✅ Verify
    Area What to Check
    LEDs PWR = ON; TX/RX = blink during comms
    Voltage L1–L3 read ~230 V (or phase-neutral voltage)
    Current

    5. ENM-223-R1 — Technical Specification


    5.1 Diagrams & Pinouts
    System Diagram
    System Block Diagram
    MCU Pinout
    RP2350 MCU Pinout
    Field Board Terminal Map
    Field Board Layout
    MCU Board Layout
    MCU Board Layout

    💡 Note: Pinouts correspond to hardware revision R1. Terminals are pluggable 5.08 mm pitch (26–12 AWG, torque 0.5–0.6 Nm).


    5.2 I/O Summary
    Interface Qty Description
    Voltage Inputs 3 L1 / L2 / L3–N, 85–265 V AC via precision divider to ATM90E32AS metering IC
    Current Inputs 3 CT1–CT3, external 333 mV / 1 V RMS split-core CTs
    Relay Outputs 2 SPDT dry contact, HF115F series, opto-driven; 5 A @ 250 VAC / 30 VDC (module limit)
    User LEDs 4 Assignable status / override indicators (GPIO18–21)
    Buttons 4 Momentary tactile switches (GPIO22–25)
    RS-485 1 A/B/COM, Modbus RTU, MAX485 transceiver
    USB-C 1 Native USB 2.0 (Web Serial + firmware flashing), ESD-protected
    Power Input 1 24 V DC (22–28 V) logic supply, reverse & surge protected

    5.3 Absolute Electrical Specifications
    Parameter Min Typ Max Unit Notes
    Supply Voltage (V+) 22 24 28 V DC SELV; reverse / surge protected input
    Power Consumption 1.85 3.0 W Module only, no external loads
    Logic Rails 3.3 / 5 V Buck (AP64501) + LDO (AMS1117-3.3)
    Isolated Sensor Rails +12 / +5 V From B0505S-1WR3 isolated DC-DC
    Voltage Inputs 85 265 V AC Divided to ATM90E32AS AFE
    Current Inputs 1 / 0.333 V RMS External CTs
    Relay Outputs 5 A SPDT; 250 VAC/30 VDC; varistor + snubber recommended
    RS-485 Bus 115.2 kbps MAX485; short-circuit limited; fail-safe bias
    USB-C Port 5 5.25 V DC Native USB; ESD protected
    Operating Temp. 0 40 °C ≤ 95 % RH non-condensing
    Isolation (DC-DC) 1.5 3.0 kV DC Metering domain via B0505S-1WR3
    Isolation (Digital) 5.0 kV RMS ISO7761 6-ch isolator between MCU ↔ AFE

    🧩 Values validated from schematics and manufacturer datasheets for ATM90E32AS, ISO7761, B0505S-1WR3, HF115F, AP64501.


    5.4 Connector / Terminal Map (Field Side)
    Block / Label Pin(s) (left→right) Function / Signal Limits / Notes
    POWER V+, 0V 24 V DC SELV input Reverse / surge protected
    VOLTAGE INPUT PE, N, L1, L2, L3 AC sensing (85–265 V AC) Isolated domain
    CT INPUT CT1+, CT1–, CT2+, CT2–, CT3+, CT3– External CT (333 mV / 1 V RMS) Shielded pairs recommended
    RS-485 A, B, COM Modbus RTU bus Terminate 120 Ω at ends
    RELAY 1 NO, C, NC SPDT dry contact 5 A max @ 250 VAC/30 VDC
    RELAY 2 NO, C, NC SPDT dry contact 5 A max @ 250 VAC/30 VDC
    USB-C D+, D–, VBUS, GND Web Serial / Setup Not for field mount
    LED / BTN Interface Internal header MCU ↔ Field Board Service only

    5.5 Reliability & Protection Specifics
    • Primary Protection: Reverse-path diode + MOSFET high-side switch; distributed inline fuses
    • Isolated rails: Independent +12 V / +5 V DC with LC filters; isolated returns (GND_ISO)
    • Inputs: Per-channel TVS and RC filtering; debounced in firmware
    • Relays: Coil driven via SFH6156 optocoupler → S8050 transistor → HF115F SPDT; RC/TVS suppression recommended for inductive loads
    • RS-485: TVS (SMAJ6.8CA) + PTC; failsafe bias on idle; TX/RX LED feedback
    • USB: PRTR5V0U2X ESD array on D+/D–; CC pull-downs per USB-C spec
    • Memory Retention: FM24CL16B FRAM for energy counters (>10¹⁴ writes); W25Q32JV QSPI flash for firmware/config

    5.6 Firmware / Functional Overview
    • Alarm Engine: Four channels (L1–L3 + Totals); each has Alarm/Warning/Event rules
      • Modes: Active-while / Latched-until-ack
      • Metrics: Urms, Irms, P, Q, S, Frequency
    • Relay Control: Per relay Enable / Invert / Group mode; Manual override (hold 3 s) via buttons
    • LED Feedback: User-assignable LEDs for Alarms / Overrides / Events (Steady or Blink)
    • Setup & Telemetry: WebConfig over USB-C; configure Modbus addr/baud, relay groups, thresholds, and live readings
    • Data Retention: Energy and configuration stored in FRAM (non-volatile, instant writes)

    5.7 Mechanical Details

    Property Specification
    Mounting DIN rail EN 50022 (35 mm)
    Material / Finish PC / ABS V-0, matte light gray + smoke panel
    Dimensions (L × W × H) 70 × 90.6 × 67.3 mm (9 division units)
    Weight ~420 g
    Terminals 300 V / 20 A / 26–12 AWG (2.5 mm²) / torque 0.5–0.6 Nm / pitch 5.08 mm
    Ingress Protection IP20 (EN 60529)
    Operating Temp. 0–40 °C / ≤95 % RH (non-condensing)
    Mechanical Dimensions
    ENM-223-R1 Physical Dimensions (DIN-rail enclosure)

    5.8 Standards & Compliance
    Standard / Directive Description
    Ingress Rating IP20 (panel mount only)
    Altitude Limit ≤ 2000 m
    Environment RoHS / REACH compliant

    6. Modbus RTU Communication

    The ENM‑223‑R1 communicates over RS‑485 (Modbus RTU) and supports:

    • Real-time metering via Input Registers
    • Configuration via Holding Registers
    • Control and acknowledgment via Coils
    • Status monitoring via Discrete Inputs

    The device acts as a Modbus Slave and can be polled by a PLC, SCADA, ESPHome, or Home Assistant system.


    6.1 Addressing & Protocol Settings
    Setting Value
    Default Address 3 (configurable: 1–255)
    Baud Rate 19200 8N1 (configurable)
    Physical Layer RS‑485 (half-duplex, A/B/COM)
    Function Codes 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x10
    Termination External 120 Ω at bus ends
    Fail-safe Bias Required on master side

    📌 Use the WebConfig tool over USB‑C to set Modbus address and baud rate.


    6.2 Input Registers — Real-Time Telemetry (FC04)
    Address Type Metric Unit Scaling
    100–102 U16 Voltage L1/L2/L3 V ×0.01
    110–112 U16 Current L1/L2/L3 A ×0.001
    200–207 S32 Active Power (L1–3, Totals) W 1
    210–217 S32 Reactive Power (L1–3, Totals) var 1
    220–227 S32 Apparent Power (L1–3, Totals) VA 1
    240–243 S16 Power Factor L1–3, Total ×0.001
    244–246 S16 Phase Angle L1–3 ° ×0.1
    250 U16 Frequency Hz ×0.01
    251 S16 Temperature (internal) °C 1

    6.3 Energy Registers (Wh/varh/VAh, FC04)
    Address Type Energy Type Phase / Total Unit
    300–307 U32 Active Energy (+ import) A/B/C/Totals Wh
    308–315 U32 Active Energy (− export) A/B/C/Totals Wh
    316–323 U32 Reactive Energy (+ inductive) A/B/C/Totals varh
    324–331 U32 Reactive Energy (− capacitive) A/B/C/Totals varh
    332–339 U32 Apparent Energy A/B/C/Totals VAh

    Energy values are 32-bit unsigned integers (Hi/Lo word pairs).


    6.4 Holding Registers — Configuration (FC03/06/16)
    Address Type Description Range / Units
    400 U16 Sample Interval 10–5000 ms
    401 U16 Line Frequency 50 or 60 Hz
    402 U16 Sum Mode 0 = algorithmic
    1 = absolute
    403 U16 Ucal Gain 1–65535
    410–420 U16 Ugain A/B/C 16-bit
    421–431 S16 Uoffset A/B/C 16-bit
    440–450 U16 Igain A/B/C 16-bit
    451–461 S16 Ioffset A/B/C 16-bit
    499 U16 Factory Reset Trigger Write 1 to reset

    6.5 Coils — Output Control (FC01/05/15)
    Address Description
    600 Relay 1 Control (ON/OFF)
    601 Relay 2 Control (ON/OFF)
    610–613 Alarm Acknowledgment (L1–L3, Totals)

    6.6 Discrete Inputs — Read-only Status (FC02)
    Address Description
    500–503 LED Status (U.1–U.4)
    520–523 Button Press (1–4)
    540–541 Relay State (1–2)
    560–571 Alarm/Warning/Event flags

    6.7 Scaling Summary
    Metric Register Type Scale Factor
    Voltage (V) Input Register ÷100
    Current (A) Input Register ÷1000
    Power Factor Input Register ÷1000
    Frequency (Hz) Input Register ÷100
    Angle (°) Input Register ÷10
    Energy (Wh) 32-bit Input 1

    6.8 Polling Best Practices
    • Typical polling rate: 1 s for live data (powers, voltages, current)
    • Energy: poll less often (e.g. every 5–10 s)
    • Batch reads: Use FC04 and FC03 with multi-register reads for speed
    • Avoid writing frequently to EEPROM-backed registers (e.g., Ucal or gains)
    • Coils: Fast updates (e.g. overrides) okay; no debounce needed

    🛠 To reduce bus collisions, stagger multiple ENMs on a shared RS‑485 bus using different poll intervals and address spacing.


    6.9 Modbus Integration Example (MiniPLC)
    modbus_controller:
      - id: enm223
        address: 3
        modbus_id: rtu_bus
        update_interval: 1s
    
    sensor:
      - platform: modbus_controller
        modbus_controller_id: enm223
        name: "Urms L1"
        register_type: read
        address: 100
        value_type: U_WORD
        unit_of_measurement: "V"
        accuracy_decimals: 2
        filters:
          - multiply: 0.01
    
    switch:
      - platform: modbus_controller
        modbus_controller_id: enm223
        name: "Relay 1"
        register_type: coil
        address: 600
    

    7. ESPHome Integration Guide (MicroPLC/MiniPLC + ENM‑223‑R1)

    The HomeMaster controller (MiniPLC or MicroPLC) running ESPHome acts as the Modbus RTU master over RS‑485. It polls one or more ENM‑223‑R1 modules and publishes all sensors, relays, LEDs, and alarms into Home Assistant.

    No Home Assistant add-ons are required — all logic runs on the ESPHome controller.


    7.1 Architecture & Data Flow
    • Topology: Home Assistant → ESPHome (MicroPLC) → RS‑485 → ENM‑223‑R1
    • Roles:
      • ENM: metering, alarm rules, relays, LEDs, buttons
      • ESPHome: Modbus polling, sensor/relay control, entity publishing
      • HA: dashboards, energy view, automations

    LED mappings, alarm logic, and override behavior are configured on the ENM module (via WebConfig). Home Assistant only reacts to exposed states.


    7.2 Prerequisites (Power, Bus, I/O)
    1. Power
    • ENM: 24 V DC → V+ / 0V
    • Controller: per spec
    • If separate PSUs: share COM/GND between controller and ENM
    2. RS‑485 Bus
    • A—A, B—B (twisted pair), COM shared
    • Terminate with 120 Ω resistors at both ends
    • Default speed: 19200 baud, set in WebConfig
    3. Field I/O
    • Voltage inputs: L1, L2, L3, N, PE
    • CTs: CT1–CT3 (1 V or 333 mV)
    • Relays: dry contact, driven by internal logic or Modbus
    • Buttons / LEDs: wired to MCU, mapped in firmware/UI

    7.3 ESPHome Minimal Config (Enable Modbus + Import ENM Package)
    uart:
      id: uart1
      tx_pin: 17
      rx_pin: 16
      baud_rate: 19200
      stop_bits: 1
    
    modbus:
      id: rtu_bus
      uart_id: uart1
    
    modbus_controller:
      - id: enm223_1
        address: 4
        modbus_id: rtu_bus
        update_interval: 1s
    
    packages:
      enm223_1:
        url: https://github.com/isystemsautomation/HOMEMASTER
        ref: main
        files:
          - path: ENM-223-R1/Firmware/default_enm_223_r1_plc.yaml
            vars:
              enm_id: enm223_1
              enm_address: 4
              enm_prefix: "ENM #1"
    

    7.4 Entities Exposed by the Package
    Binary Sensors
    • Relay states
    • Button presses
    • LED status
    • Alarm conditions (Alarm / Warning / Event)
    Sensors
    • Urms, Irms L1/L2/L3
    • Power (P, Q, S) totals
    • Frequency, PF, Angle
    • Energies: kWh, kvarh, kVAh (active/reactive/apparent)
    Switches
    • Relay 1/2 (Modbus coil 600/601)
    • Acknowledge coils 610–613
    • Override controls (force override toggle, hold-style)
    Numbers (Optional)
    • Sample interval
    • Calibration gains (Ugain / Igain)

    7.6 Using Your MiniPLC YAML with ENM
    1. Keep existing uart: and modbus: blocks
    2. Add the packages: block (as shown) and set enm_address from WebConfig
    3. Flash the controller — ESPHome discovers all sensors/entities automatically
    4. Add HA dashboard cards and switches for relay, override, and ack actions

    7.7 Home Assistant Setup & Automations
    • Go to: Settings → Devices & Services → ESPHome → Add by hostname or IP
    • Dashboard auto-discovers:
      • Energies (for HA Energy view)
      • Relays, buttons, LEDs
      • Alarm states
    • You can create:
      • Energy Dashboard source: VAh Total or AP Total
      • Automation:

    8. Programming & Customization

    8.1 Supported Languages
    • MicroPython
    • C/C++
    • Arduino IDE

    8.2 Flashing via USB-C
    1. Connect USB-C to your PC.
    2. Enter boot/flash mode if required.
    3. Upload the provided firmware/source.

    Boot/Reset combinations:

    • Buttons 1 + 2 → forces the module into BOOT mode
    • Buttons 3 + 4 → triggers a hardware RESET

    These combinations are handled in hardware. Use them when flashing or manually rebooting the module.

    🧭 Button layout reference:

    Button layout
    8.3 Arduino IDE Setup
    • Board Profile: Generic RP2350
    • Flash Size: 2MB (Sketch: 1MB, FS: 1MB)
    • Recommended Libraries:
    #include <Arduino.h>
    #include <SPI.h>
    #include <SimpleWebSerial.h>
    #include <Arduino_JSON.h>
    #include <LittleFS.h>
    #include <math.h>
    #include <limits>
    
    • Pin Notes:
      • Buttons: GPIO22–25
      • LEDs: GPIO18–21
      • RS-485: MAX485, DE/RE control over TX
      • USB: native, no UART bridge

    8.4 Firmware Updates
    • Upload via USB-C using Arduino IDE or PlatformIO
    • Enter boot mode (Buttons 1 + 2)
    • Upload default_enm_223_r1.ino from /firmware/
    • Configuration is preserved (stored in LittleFS)
    • Energy counters are safe (stored in FRAM)

    9. Maintenance & Troubleshooting

    Symptom Fix or Explanation
    Relay won’t activate May be in override; check relay logic mode
    RS-485 not working A/B reversed or un-terminated bus
    LED doesn’t light up Reassign in WebConfig or check GPIO18–21
    Button unresponsive Test using WebConfig > Button state live
    CRC Errors Confirm baud, address, and wiring (A/B swap)
    Negative Power Reading Flip CT or check phase/CT alignment

    10. Open Source & Licensing

    Component License
    Hardware CERN-OHL-W v2.0
    Firmware GPLv3
    Config Tool MIT

    11. Downloads

    The following key project resources are included in this repository:

    • 🧠 Firmware (Arduino/PlatformIO)
      firmware/default_enm_223_r1.ino
      Core firmware implementing Modbus RTU, alarm logic, relays, LED control, overrides, and WebConfig support.

    • 🧰 WebConfig Tool
      tools/ConfigToolPage.html
      HTML-based USB Web Serial interface for live configuration, calibration, alarm setup, and logic assignment.

    • 🖼 Images & UI Diagrams
      Images/
      Contains front-panel photos, system diagrams, wiring illustrations, and screenshots from WebConfig UI.

    • 📐 Hardware Schematics
      Schematics/
      Includes PDF schematics for Field Board and MCU Board — ideal for developers, reviewers, or third-party modders.

    • 📄 Datasheets & Manuals
      ENM-223-R1 Datasheet.pdf
      Covers full electrical and mechanical specs, terminal layout, block diagram, and pinout.

    • 📦 ESPHome YAML Templates
      ENM223R1_ESPHome_Integration_Guide.md
      Ready-to-use packages: block for ESPHome controllers, with sensors, relays, alarms, override logic, and Home Assistant tips.

    🔁 Latest releases can also be found in the Releases tab or in the Firmware/ directory.


    12. Support

    If you need help using or configuring the ENM‑223‑R1 module, the following support options are available:

    🛠 Official Resources

    📡 Community & Updates