Modbus/RTU is a very common protocol for control and monitoring applications. It is supported by a wide range of device types from almost all manufacturers of control electronics. Modbus/RTU is popular because it is very reliable and simple to use and implement.

For detailed information about Modbus, please refer to http://modbus.org/

The ezeio supports Modbus/RTU over RS-485 serial multidrop bus, and the ezeio will act as the master device, polling other devices on the bus. All devices on the bus shall be connected in parallel.

RS-485 is not the same thing as Modbus/RTU. If your device specification does not explicitly state support for Modbus/RTU, it most likely is not compatible with the ezeio.

The Modbus/RTU protocol requires exactly one master device (the ezeio), and anywhere from one to 32 slave devices sharing the same communication bus. Note that there can only be a single master on the bus. All slave devices must be set up with unique addresses (see below).

Communication wiring

Modbus/RTU is using standard RS-485 connections. RS-485 uses two conductors for data, often referred to as 'D0/D1', 'A/B', 'A-/B+' or sometimes just '-/+'.

Per Modbus/RTU standard, the correct naming for the data wires are 'D0/D1'. Please note that the A/B and +/- designations are not standardized and may vary between device manufacturers.

Often the first step in troubleshooting is to simply swap the bus wires. When selecting a device driver the note field may contain device specific instructions like; Connect A to D1 or White wire to D0.

The data wires must be run as a single bus, with each device connecting to the next device in a chain. Avoid star configurations, and do not use long T-stubs.

End of line resistors

End of line resistors (also knows as termination resistors) are used to minimize the 'echo' of the data signal when it hits the end of the wire. Just like a audible echo, the reflected signal will bounce back-and forth on the wire and fade out with each bounce. The end of line resistor acts like a damper, absorbing the energy and thus reducing the effects of the echo. If the data wire is very long, the echo will take longer to fade out. On a short wire, the echo will disappear very quickly. Thus, end of line resistors are only required when the wire is long relative to the data rate.

Modbus/RTU typically runs at a relatively low data rate. 9600bps or 19200bps are typical default speeds for Modbus/RTU. At these rates, a 'long' wire is in the order of hundreds of meters. With shorter bus wires than 100m (300ft), end of line resistors are not required.

If your bus wiring is more than 100m (300ft), connect a 120 Ohm resistor between the D0 and D1 wires at the far end of the bus wire (or both ends if the ezeio is at the center of the bus).

Bus biasing

The ezeio has built-in biasing resistors. No additional biasing should be required.


A common misconception is that RS-485 does not need a ground connection. This is wrong. Without a ground connection the bus may still work, but if there is a voltage potential between the devices there is a significant risk the communication will fail or even damage the hardware.

Always use a ground connection between RS-485 devices

Device power

Devices may be powered from the ezeio as shown in the wiring example below. Please observe the max limits on current that can be sourced from the ezeio. Devices may also be self-powered or use a separate power supply. In any case, the ground wire (black) must run from the ezeio to all connected devices.

Polling address

Each device must be set up with a unique polling address (1 through 254). The method of setting the address varies between devices. Some have a DIP switch or rotary encoder, while other devices have a screen/menu or require special software to be set up. Please refer to the manufacturer's installation manual for your particular device. The polling address must be unique on the bus. If two devices are set up with the same polling address, the ezeio will not be able to communicate with these devices.

  • ezeio2/installation/modbusrtu.txt
  • Last modified: 2021-03-19 16:30
  • by johpar