Overview
The STR-3221-R1 is a configurable smart LED and I/O controller designed for multi-channel lighting control and digital input monitoring in building automation, architectural lighting, stair illumination, and general control systems. It offers 4 opto-isolated digital inputs, 32 MOSFET-switched outputs, 4 user buttons with LEDs, and 4 configurable status LEDs. All I/O channels are individually configurable, allowing flexible logic such as toggle, pulse, manual override, and pattern sequencing.
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
Mount & Wire – Install on 35mm DIN rail, connect 24V DC power, sensors, and relay loads.
Configure – Plug in USB-C, open the WebConfig tool in Chrome/Edge, set Modbus address and I/O mapping.
Integrate – Connect to your controller via RS-485 and start automation.
What You Need
STR-3221-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
Connect USB-C to module and PC
Click "Connect" and select serial port
Set Modbus address (default: 3) and baud rate (default: 19200 8N1)
Configure input actions, mapping, LED modes, and button functions
Settings save automatically to flash
Tech Specs
| Category | Specification |
|---|---|
| Microcontroller | RP2350 Dual-core ARM Cortex-M0+ |
| Operating Voltage | 24V DC (SELV) |
| Logic Voltage | 3.3V / 5V |
| Digital Inputs | 4 (optically isolated via ISO1212) |
| Digital Outputs | 32 (low-side MOSFET, 1A per channel) |
| User Buttons | 4 |
| User LEDs | 4 (via TLC59208F driver) |
| Communication | RS-485 (Modbus RTU) |
| Configuration Interface | USB-C (Web Serial) |
| Flash Memory | 16 MB (W25Q32) |
| Operating Temperature | 0–40°C |
| Dimensions (W×H×D) | 70 × 90.6 × 67.3 mm |
| Mounting | 35mm DIN rail |
Documentation
The ESTR-3221-R1 is open-source hardware! You can build your own board using the following files:
Hardware Design Files
Field Board Schematic: SRT-3221-R1-FieldBoard.pdf
MCU Board Schematic: SRT-3221-R1-MCUBoard.pdf
System Block Diagram: STR_SystemBlockDiagram_New.png
Field Board Layout: FieldBoard_Diagram.png
MCU Board Layout: MCUBoard_Diagram.png
All design files and documentation are available in the HomeMaster GitHub repository.
Input and Output
Digital Inputs:
4× isolated 24V DC inputs (ISO1212)
9–30V operating range, 8V typical ON threshold
PTC fuse and TVS diode protection per channel
Configurable as normally open, normally closed, or toggle
LED Outputs:
32× low-side MOSFET outputs
Grouped in 4 banks of 8 channels
12–24V DC operation, 1A max per channel
Constant-current drive via TLC59208F controllers
Auxiliary:
2× fused sensor rails (SENS.A, SENS.B)
200 mA total current limit
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)
Home Assistant & ESPHome Integration Guide
Overview
The STR-3221-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:
ESPHome device (HomeMaster MiniPLC/MicroPLC or any ESP32/ESP8266 with RS-485)
RS-485 connection between ESP device and STR-3221-R1
24V power to STR-3221-R1 module
Home Assistant with ESPHome add-on installed
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 STR-3221-R1 Package:
packages:
str_3221_r1:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: STR-3221-R1/Firmware/default_str_3221_r1_plc/default_str_3221_r1_plc.yaml
vars:
str_prefix: "Main" # Custom name for your entities
str_id: main_module # Unique internal ID
str_address: 3 # Must match WebConfig Modbus address
refresh: 1d
Customize Variables:
str_prefix: Appears in entity names (e.g., "Main Panel Voltage L1")
str_id: Internal identifier for the module
str_address: Modbus address (must match WebConfig setting)
Example with Multiple STRs:
packages:
str_main:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: STR-3221-R1/Firmware/default_str_3221_r1_plc/default_str_3221_r1_plc.yaml
vars:
str_prefix: "Main"
str_id: str_main
str_address: 3
refresh: 1d
str_second:
url: https://github.com/isystemsautomation/HOMEMASTER
ref: main
files:
- path: STR-3221-R1/Firmware/default_str_3221_r1_plc/default_str_3221_r1_plc.yaml
vars:
str_prefix: "Second"
str_id: str_second
str_address: 4
refresh: 1d
Programming
Supported Development Environments
Arduino IDE with RP2350 support
PlatformIO with RP2350 toolchain
MicroPython (community builds available)
Firmware Flashing
Connect USB-C to PC
Hold Buttons 3 + 4 to enter BOOT mode
Hold Buttons 1 + 2 to RESET the module
Upload via:
UF2 drag-and-drop to mounted drive, OR
PlatformIO/Arduino IDE upload
Pin Mapping (Default Firmware)
MCU Board GPIO Mapping
| MCU Pin | GPIO | Function | Connected To |
|---|---|---|---|
| GPIO14 | 14 | Digital Input 1 | ISO1212 output |
| GPIO15 | 15 | Digital Input 2 | ISO1212 output |
| GPIO16 | 16 | Digital Input 3 | ISO1212 output |
| GPIO17 | 17 | Digital Input 4 | ISO1212 output |
| GPIO2 | 2 | Button 1 | SW1 |
| GPIO3 | 3 | Button 2 | SW2 |
| GPIO4 | 4 | Button 3 | SW3 |
| GPIO5 | 5 | Button 4 | SW4 |
| GPIO8 | 8 | RS-485 TX | MAX485 DI |
| GPIO9 | 9 | RS-485 RX | MAX485 RO |
| GPIO10 | 10 | RS-485 DE/RE | MAX485 driver enable |
| GPIO22 | 22 | I²C SCL | TLC59208F SCL |
| GPIO23 | 23 | I²C SDA | TLC59208F SDA |
| GPIO51/52 | 51/52 | USB D± | USB-C connector |
LED Driver Configuration
| TLC59208F | Controls Outputs | I²C Address |
|---|---|---|
| U1 | O1-O8 | 0x40 (default) |
| U2 | O9-O16 | 0x41 |
| U3 | O17-O24 | 0x42 |
| U4 | O25-O32 | 0x43 |
Related products
These other products might interest you