08-13-2025, 02:05 PM
Help: Connect RS485 I/O modules to the Raspberry Pi 4 Relay Board (Server Mini) + Home Assistant OS
Hardware
Goal
What I’ve found / tried so far
Questions
Hardware
- Controller/board: KinCony Raspberry Pi 4 Relay Board / Server Mini (link: https://www.kincony.com/raspberry-pi-4-relay-board.html)
- Modules I want to add: KinCony RS485 I/O modules (link: https://www.kincony.com/rs485-io-module.html)
- Planned system: Home Assistant OS (not Raspberry Pi OS), running on the Pi inside the board
- Use case: Wired wall switches and I/O around the house → one RS485 bus, multiple modules, stable & scalable for many installs
Goal
- Daisy-chain several KinCony RS485 I/O modules to the Server Mini’s onboard RS485.
- Control/monitor them from Home Assistant OS (HA Modbus if possible).
- Best-practice for addressing many modules (bulk provisioning) without connecting a laptop each time.
What I’ve found / tried so far
- The board exposes RS485 via the Pi’s UART (I see pins marked GPIO14 = TX, GPIO15 = RX on documentation/pins).
- On Home Assistant OS, I cannot just edit /boot/config.txt like on Raspberry Pi OS, so I’m not sure about the correct way to enable the UART for the onboard RS485 under HA OS.
- I tried using generic HA Modbus config but I’m not 100% sure about the device path (e.g. /dev/ttyAMA0, /dev/ttyS0, or /dev/serial/by-id/...) and serial parameters (baud, parity, stop bits) for KinCony’s RS485 port on this board.
Questions
- Wiring
- Do I need a 120 Ω termination resistor at the last device? Are there built-in bias resistors on the Server Mini’s RS485 transceiver, or should I add my own?
- Any max bus length / topology recommendations? (I’ll use daisy chain, not star.)
- Do I need a 120 Ω termination resistor at the last device? Are there built-in bias resistors on the Server Mini’s RS485 transceiver, or should I add my own?
- Protocol & parameters
- Do those RS485 I/O modules speak Modbus RTU out of the box? If yes, what are the default serial parameters (baud, parity, stopbits) and the register map (coils/inputs/holding)?
- If it’s not Modbus RTU by default, is there a Modbus firmware or config mode I should use?
- Do those RS485 I/O modules speak Modbus RTU out of the box? If yes, what are the default serial parameters (baud, parity, stopbits) and the register map (coils/inputs/holding)?
- Addressing multiple modules
- How do I set unique addresses for each module? DIP switches? Command?
- For bulk installs, is there a recommended workflow to assign addresses without hooking up each module to a PC? (Auto-addressing, scan/assign tool, etc.)
- How do I set unique addresses for each module? DIP switches? Command?
- Home Assistant OS specifics
- On this KinCony board with HA OS, what is the correct serial device path for the onboard RS485 (e.g., /dev/ttyAMA0)?
- What is the recommended way to enable UART on HA OS for this board (since /boot/config.txt is read-only under HA OS)? Any KinCony-specific steps or an add-on?
- A minimal, known-good Home Assistant modbus: YAML example for one RS485 I/O module would be super helpful.
- On this KinCony board with HA OS, what is the correct serial device path for the onboard RS485 (e.g., /dev/ttyAMA0)?
- Examples
- Could you share example register addresses (coils/inputs) for:
- Reading digital inputs from a KinCony RS485 I/O module
- Controlling a relay output (if the chosen module has relays)
- Reading digital inputs from a KinCony RS485 I/O module
- Any sample configs for more than one module on the same bus?
- Could you share example register addresses (coils/inputs) for:

