Skip to Content

DIM-420-R1 AC Dimmer Module

(0 review)
The DIM‑420‑R1 is a configurable smart I/O module designed for dimming AC loads via leading/trailing edge phase control.
It includes 4 digital inputs2 dimming outputs4 user buttons, and 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 smart lighting, scene control, and automation of resistive or LED loads.
120.00 120.00

Overview

The DIM‑420‑R1 is a configurable smart I/O module designed for AC dimming control in building automation, lighting, HVAC, and general control systems. It offers 4 opto‑isolated digital inputs, 2 high‑current AC dimming channels, 4 user buttons, and 4 configurable user LEDs. All I/O channels are individually configurable, allowing flexible logic such as toggle, ramp, manual override, and scene control.

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
  • DIM‑420‑R1 module

  • 24V DC SELV power supply

  • AC loads (dimmable lamps, LED drivers)

  • 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-dim-420-r1

  3. Click "Connect" and select serial port

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

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

  6. Settings save automatically to flash

Tech Specs

ParameterDetails
MicrocontrollerRP2350, Dual-core ARM Cortex-M0+
Operating Voltage3.3V, 5V (logic), 24V DC input
Digital Inputs4 (isolated)
Dimming Outputs2 (Leading/Trailing edge phase-cut)
User Buttons4 (configurable)
User LEDs4 (configurable)
CommunicationRS‑485 (Modbus RTU)
Configuration InterfaceUSB‑C (Web Serial)
Built-in LEDsPower, TX/RX indicators
Dimensions (W×H×D)91 × 157.4 × 58.4 mm
Operating Temperature0–40℃

Documentation

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

Hardware Design Files
Firmware & Software

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

Input and Output

Digital Inputs (4 channels)
  • Optically isolated dry-contact inputs

  • Configurable press logic: Short, Long, Double, Short‑then‑Long

  • Actions: Toggle, Ramp, Preset recall, MAX, Ping‑pong

  • PTC + TVS protection on each channel

Dimming Outputs (2 channels)
  • Phase‑cut AC outputs (Leading/Trailing edge)

  • 110/230 VAC, MOSFET‑based (WMM36N65C4)

  • Configurable Lower/Upper thresholds

  • Zero‑cross detection and sync

  • Internal snubber and EMI suppression

User Interface
  • 4 Buttons: Configurable for local override (toggle, ramp, preset)

  • 4 LEDs: Configurable steady/blink modes, linked to channel or DI state

  • 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
AddressNameTypeDescriptionR/W
200CH1_ONCoilPulse CH1 ON (to Preset)Write Only
201CH2_ONCoilPulse CH2 ON (to Preset)Write Only
210CH1_OFFCoilPulse CH1 OFFWrite Only
211CH2_OFFCoilPulse CH2 OFFWrite Only
300–303DI1..4_ENABLECoilEnable DIxWrite Only
320–323DI1..4_DISABLECoilDisable DIxWrite Only
Discrete Inputs (Read Only) - Function Code 0x02
AddressNameTypeDescription
1–4DI1‑DI4Discrete InputDigital input state
50–51CH1_ON, CH2_ONDiscrete InputChannel active status
90–93LED1‑LED4Discrete InputLED physical state
120–121ZC1_OK, ZC2_OKDiscrete InputZero‑cross detection status
Holding Registers (Read/Write) - Function Codes 0x03, 0x06
AddressNameDescriptionRange
400/401LevelOutput level (0‑255)0–255
410/411LowerMinimum dimming level0–255
420/421UpperMaximum dimming level0–255
430/431Freq_x100Mains frequency ×100 (Hz)RO
440/441Percent×10Dimming percent ×100–1000
460/461LoadTypeLamp/Heater/Key0/1/2
470/471CutModeLeading/Trailing0/1
480/481PresetPreset dimming level0–255

Home Assistant & ESPHome Integration Guide


Overview

The DIM‑420‑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 DIM‑420‑R1

  3. 24V power to DIM‑420‑R1 module

  4. Home Assistant with ESPHome add‑on installed

RS‑485 Configuration
yaml
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 DIM‑420‑R1 Package
yaml
packages:
dim_430_r1:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIM-420-R1/Firmware/default_dim_420_r1_plc/default_dim_420_r1_plc.yaml
vars:
dim_prefix: "Living Room" # Custom name for your entities
dim_id: living_room_module # Unique internal ID
dim_address: 3 # Must match WebConfig Modbus address
refresh: 1d
Customize Variables
  • dim_prefix: Appears in entity names (e.g., "Living Room CH1 Level")

  • dim_id: Internal identifier for the module

  • dim_address: Modbus address (must match WebConfig setting)

Multiple Module Example
yaml
packages:
dim_kitchen:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIM-420-R1/Firmware/default_dim_420_r1_plc/default_dim_420_r1_plc.yaml
vars:
dim_prefix: "Kitchen"
dim_id: kitchen_module
dim_address: 4
refresh: 1d

dim_bedroom:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: DIM-420-R1/Firmware/default_dim_420_r1_plc/default_dim_420_r1_plc.yaml
vars:
dim_prefix: "Bedroom"
dim_id: bedroom_module
dim_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 3 + 4 to enter BOOT mode

  3. Hold Buttons 1 + 2 to RESET the module

  4. Upload via:

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

    • PlatformIO/Arduino IDE upload


Pin Mapping (Default Firmware)

Pin NameGPIOFunction
IN1GPIO6Digital Input 1
IN2GPIO11Digital Input 2
IN3GPIO12Digital Input 3
IN4GPIO7Digital Input 4
CH1GPIO10Dimming Channel 1 Driver
CH2GPIO9Dimming Channel 2 Driver
ZC1GPIO18Zero‑cross detection CH1
ZC2GPIO19Zero‑cross detection CH2
BTN1GPIO1Button 1
BTN2GPIO2Button 2
BTN3GPIO3Button 3
BTN4GPIO0Button 4
LED1GPIO13User LED 1
LED2GPIO14User LED 2
LED3GPIO15User LED 3
LED4GPIO20User LED 4
RS485_TXGPIO4RS‑485 Transmit
RS485_RXGPIO5RS‑485 Receive