Skip to Content

DIO-430-R1 Relay module

(0 review)
The DIO‑430‑R1 is a configurable smart digital I/O module designed for building automation, lighting control, HVAC, alarms, and industrial monitoring. With 4 opto‑isolated digital inputs, 3 high‑current SPDT relays, 3 user buttons, and 3 configurable LEDs, it offers flexible local logic and seamless integration via Modbus RTU (RS‑485). Ideal for smart homes, greenhouses, and automation panels.
130.00 130.00

Overview

The DIO-430-R1 is a configurable smart digital I/O module designed for digital input monitoring and relay-based output control in building automation, lighting, HVAC, alarms, and general control systems. It offers 4 opto-isolated digital inputs, 3 high-current SPDT relays, 3 user buttons, and 3 configurable user LEDs. All I/O channels are individually configurable, allowing flexible logic such as toggle, pulse, manual override, and alarm indication.

It connects via RS-485 (Modbus RTU) to a MicroPLC, MiniPLC, or any compatible controller, and can also integrate with Home Assistant (ESPHome) or SCADA/PLC systems. Configuration and diagnostics are performed through a driverless Web Serial interface via USB-C, using the browser-based WebConfig Tool. The module supports both master-controlled and standalone local logic modes.

Getting Started

Quick Setup Process
  1. Mount & Wire – Install on 35mm DIN rail, connect 24V DC power, sensors, and relay loads.

  2. Configure – Plug in USB-C, open the WebConfig tool in Chrome/Edge, set Modbus address and I/O mapping.

  3. Integrate – Connect to your controller via RS-485 and start automation.

What You Need
  • DIO-430-R1 module

  • 24V DC SELV power supply

  • RS-485 cable (twisted pair)

  • USB-C cable for configuration

  • Chromium-based browser (Chrome/Edge)

Web Configuration Steps
  1. Connect USB-C to module and PC

  2. Open https://www.home-master.eu/configtool-dio-430-r1

  3. Click "Connect" and select serial port

  4. Set Modbus address (default: 3) and baud rate (default: 19200 8N1)

  5. Configure input actions, relay mapping, LED modes, and button functions

  6. Settings save automatically to flash

Tech Specs

Technical SpecificationsDetails
MicrocontrollerRP2350, Dual-core ARM Cortex-M0+
Operating Voltage3.3V, 5V (logic), 24V DC input
Digital Input Pins4 (isolated)
Digital Output Pins3 (SPDT relay drivers)
User Buttons3 (configurable)
User LEDs3 (configurable)
UART1 (RS-485)
Flash Memory16 MB
EEPROMEmulated via LittleFS
Built-in LEDsPower, TX/RX indicators
Dimensions (W×H×D)70 × 90.6 × 67.3 mm
WeightApproximately 120 gr.
MountingDIN-rail EN 50022 (35 mm)
CommunicationRS-485 (Modbus RTU)
Configuration InterfaceUSB-C (Web Serial)
Operating Temperature0–40°C

Documentation

The DIO-430-R1 is open-source hardware! You can build your own board using the following files:

Hardware Design Files
Firmware & Software
Mechanical Files

All design files and documentation are available in the HomeMaster GitHub repository.

Input and Output

Digital Inputs (4 channels)
  • Isolated inputs compatible with dry contacts 24V signals

  • Individual enable/invert settings per channel

  • Configurable actions: None, Toggle, or Pulse

  • Target mapping to individual relays or all relays

  • PTC + TVS protection on each channel

Relay Outputs (3 channels)
  • SPDT contacts (NO/NC/COM)

  • 16A @ 250V AC rating

  • Individual enable/invert settings

  • Controlled via Modbus coils or local input mapping

  • RC/MOV snubbers recommended for inductive loads

User Interface
  • 3 Buttons: Configurable for relay override (toggle function)

  • 3 LEDs: Configurable steady or blink modes, linked to relay status

  • Status LEDs: PWR (power), TX/RX (Modbus activity)

Communication Interfaces

  • Protocol: Modbus RTU

  • Role: Slave device

  • Default Settings: Address 3, 19200 baud, 8 data bits, No parity, 1 stop bit

  • Supported Functions: Read Coils (0x01), Read Discrete Inputs (0x02), Read Holding Registers (0x03), Read Input Registers (0x04), Write Single Coil (0x05), Write Single Register (0x06)

Modbus Address Map
Coils (Read/Write) - Function Codes 0x01, 0x05
AddressNameTypeDescriptionAccess
00000R1_CMDCoilRelay 1 command (1=ON, 0=OFF)R/W
00001R2_CMDCoilRelay 2 command (1=ON, 0=OFF)R/W
00002R3_CMDCoilRelay 3 command (1=ON, 0=OFF)R/W
00010SAVE_CFGCoilWrite 1 to save configuration to flashWrite Only
00011RESETCoilWrite 1 to perform soft resetWrite Only
00200CMD_RLY1_ONCoilPulse Relay 1 ON (write 1)Write Only
00201CMD_RLY2_ONCoilPulse Relay 2 ON (write 1)Write Only
00202CMD_RLY3_ONCoilPulse Relay 3 ON (write 1)Write Only
00210CMD_RLY1_OFFCoilPulse Relay 1 OFF (write 1)Write Only
00211CMD_RLY2_OFFCoilPulse Relay 2 OFF (write 1)Write Only
00212CMD_RLY3_OFFCoilPulse Relay 3 OFF (write 1)Write Only
Discrete Inputs (Read Only) - Function Code 0x02
AddressNameTypeDescription
10000DI1_STATEDiscrete InputDigital Input 1 state (post-invert)
10001DI2_STATEDiscrete InputDigital Input 2 state (post-invert)
10002DI3_STATEDiscrete InputDigital Input 3 state (post-invert)
10003DI4_STATEDiscrete InputDigital Input 4 state (post-invert)
10060R1_STATEDiscrete InputRelay 1 actual state
10061R2_STATEDiscrete InputRelay 2 actual state
10062R3_STATEDiscrete InputRelay 3 actual state
10090LED1_STATEDiscrete InputLED 1 state
10091LED2_STATEDiscrete InputLED 2 state
10092LED3_STATEDiscrete InputLED 3 state
Holding Registers (Read/Write) - Function Codes 0x03, 0x06
AddressNameTypeDescriptionRange/Values
40000MODEL_IDRegisterModule model identifier (0x0430)Read Only
40001FW_VERSIONRegisterFirmware build YYYYMMRead Only
40002MB_ADDRRegisterModbus address (1-255)R/W (1-255)
40003MB_BAUDRegisterBaud rate setting0=9600, 1=19200, 2=38400, 3=57600, 4=115200
40004MB_PARITYRegisterParity setting0=None, 1=Even, 2=Odd
40010DI_EN_MASKRegisterDigital Input enable mask (bits 0-3)Bitmask
40011DI_INV_MASKRegisterDigital Input invert mask (bits 0-3)Bitmask
40012DI1_ACTIONRegisterDI1 action mode0=None, 1=Toggle, 2=Pulse
40013DI2_ACTIONRegisterDI2 action mode0=None, 1=Toggle, 2=Pulse
40014DI3_ACTIONRegisterDI3 action mode0=None, 1=Toggle, 2=Pulse
40015DI4_ACTIONRegisterDI4 action mode0=None, 1=Toggle, 2=Pulse
40016DI1_TARGETRegisterDI1 target relay4=None, 0=All, 1=R1, 2=R2, 3=R3
40017DI2_TARGETRegisterDI2 target relay4=None, 0=All, 1=R1, 2=R2, 3=R3
40018DI3_TARGETRegisterDI3 target relay4=None, 0=All, 1=R1, 2=R2, 3=R3
40019DI4_TARGETRegisterDI4 target relay4=None, 0=All, 1=R1, 2=R2, 3=R3
40020RLY_EN_MASKRegisterRelay enable mask (bits 0-2)Bitmask
40021RLY_INV_MASKRegisterRelay invert mask (bits 0-2)Bitmask
40022BTN1_ACTIONRegisterButton 1 action0=None, 5=R1 toggle, 6=R2 toggle, 7=R3 toggle
40023BTN2_ACTIONRegisterButton 2 action0=None, 5=R1 toggle, 6=R2 toggle, 7=R3 toggle
40024BTN3_ACTIONRegisterButton 3 action0=None, 5=R1 toggle, 6=R2 toggle, 7=R3 toggle
40025LED_MODERegisterLED mode configurationBits 0-1: LED1, Bits 2-3: LED2, Bits 4-5: LED3 (0=Steady, 1=Blink)
40030UPTIME_LORegisterUptime seconds (lower 16 bits)Read Only
40031UPTIME_HIRegisterUptime seconds (upper 16 bits)Read Only
40032ERROR_CODERegisterLast error codeRead Only
40033STATUS_FLAGSRegisterStatus flagsRead Only
Input Registers (Read Only) - Function Code 0x04
AddressNameTypeDescription
30000DI_STATE_MASKRegisterDigital Input state mask (bits 0-3)
30001RLY_STATE_MASKRegisterRelay state mask (bits 0-2)
30002BTN_STATE_MASKRegisterButton state mask (bits 0-2)
30003LED_STATE_MASKRegisterLED state mask (bits 0-2)

Home Assistant & ESPHome Integration Guide

Overview

The DIO-430-R1 integrates seamlessly with Home Assistant via ESPHome using the Modbus RTU protocol. This guide covers both quick integration using our pre-built package and manual configuration for advanced users.

Prerequisites

Before starting, ensure you have:

  1. ESPHome device (HomeMaster MiniPLC/MicroPLC or any ESP32/ESP8266 with RS-485)

  2. RS-485 connection between ESP device and DIO-430-R1

  3. 24V power to DIO-430-R1 module

  4. Home Assistant with ESPHome add-on installed

Configure Your ESPHome Device

Add this to your ESPHome YAML configuration:

yaml
# RS-485 Configuration
uart:
id: uart_modbus
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 19200
parity: NONE
stop_bits: 1

modbus:
id: modbus_bus
uart_id: uart_modbus

# Import DIO-430-R1 Package
packages:
dio_430_r1:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIO-430-R1/Firmware/default_dio_430_r1_plc/default_dio_430_r1_plc.yaml
vars:
dio_prefix: "Staircase" # Custom name for your entities
dio_id: staircase_module # Unique internal ID
dio_address: 3 # Must match WebConfig Modbus address
refresh: 1d
Customize Variables
  • dio_prefix: Appears in entity names (e.g., "Staircase Relay 1")

  • dio_id: Must be unique if adding multiple DIO modules

  • dio_address: Set to match your DIO-430-R1 Modbus address (default: 3)

Multiple DIO Modules

For additional modules, duplicate the package block with unique IDs:

yaml
packages:
dio_lights:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIO-430-R1/Firmware/default_dio_430_r1_plc/default_dio_430_r1_plc.yaml
vars:
dio_prefix: "Kitchen"
dio_id: kitchen_module
dio_address: 4
refresh: 1d

dio_hvac:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIO-430-R1/Firmware/default_dio_430_r1_plc/default_dio_430_r1_plc.yaml
vars:
dio_prefix: "HVAC"
dio_id: hvac_module
dio_address: 5
refresh: 1d

Programming

Supported Development Environments
  • Arduino IDE with RP2350 support

  • PlatformIO with RP2350 toolchain

  • MicroPython (community builds available)

Firmware Flashing

  1. Connect USB-C to PC

  2. Hold Buttons 2 + 3 to enter BOOT mode

  3. Upload via:

    • UF2 drag-and-drop to mounted drive, OR

    • PlatformIO/Arduino IDE upload

  4. Press Buttons 1 + 3 for hardware reset if needed

Pin Mapping (Default Firmware)

    Pin Name
    GPIO
    Function
    IN1
    GPIO6
    Digital Input 1
    IN2
    GPIO11
    Digital Input 2
    IN3
    GPIO12
    Digital Input 3
    IN4
    GPIO7
    Digital Input 4
    RLY1
    GPIO10
    Relay 1 Driver
    RLY2
    GPIO9
    Relay 2 Driver
    RLY3
    GPIO8
    Relay 3 Driver
    BTN1
    GPIO1
    Button 1
    BTN2
    GPIO2
    Button 2
    BTN3
    GPIO3
    Button 3
    LED1
    GPIO13
    User LED 1
    LED2
    GPIO14
    User LED 2
    LED3
    GPIO15
    User LED 3
    RS485_TX
    GPIO4
    RS-485 Transmit
    RS485_RX
    GPIO5
    RS-485 Receive