Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Modbus Universal
By: Joe Liggero
Updated: June 13, 2026
Version: 1.1
Modbus Universal is a single RTI driver for any Modbus TCP device or RS-485/TCP gateway: energy meters, solar inverters, relay/IO boards, thermostats, EV chargers, generators, pumps, PLCs and BMS. It ships with curated device presets (Eastron SDM120/SDM630, Waveshare relays, SolarEdge/SunSpec inverters, generic thermostat/relay) so popular gear is plug-and-play. It handles the two things that make Modbus painful as simple settings — addressing base (0-based protocol vs 1-based register numbers) and multi-register data types & byte order (uint/int/float 16/32/64-bit, ABCD/CDAB/BADC/DCBA, scale + offset) — and reads SunSpec scale-factor registers automatically. Map up to 64 points per instance; add instances for more, all covered by one license. 120-minute free trial; one-time MAC-locked license per processor.
Modbus Universal v1.1 - Setup Guide
Custom Control Drivers LLC - control any Modbus TCP device from RTI: energy meters, solar inverters, relay boards, thermostats, PLCs, BMS and more.
What it does
Acts as a Modbus TCP master. It polls a device's registers/coils, decodes them into RTI System Variables you bind to pages, and writes registers/coils on command. It handles the two things that make Modbus painful - address numbering and multi-register data types / byte order - as plain settings, and ships with built-in PRESETS for popular devices so you skip the register homework entirely.
The fast path
1. Set the Device IP Address (and Port, default 502) and Unit / Slave ID (usually 1 for native-TCP devices; for an RS-485-to-TCP gateway it is each meter's address).
2. If your device is in the Device Preset list, pick it. Done - the driver loads that device's register map and fills the Point variables with named, scaled, unit-tagged values. Skip to Binding to pages.
3. No preset? Map points by hand under Custom Points (next section).
4. Leave License Key blank for the 2-hour trial; paste your key to license the processor.
Connection settings
Device IP Address - the device or gateway IP on your LAN. Use a DHCP reservation so it never changes.
Port - Modbus TCP port, default 502.
Unit / Slave ID - 0-255. Native Ethernet devices commonly use 1. Behind an RS-485 gateway, this is the address dialed on the meter (add one driver instance per meter).
Poll Interval (ms) - idle time between full poll cycles (default 2000). The driver reads one register group at a time to keep processor CPU low; a full refresh = this interval plus a little per group.
Addressing Base - how YOU type Custom Point addresses (see the next section). Presets are unaffected. Debug Level - leave Off for normal use; set High to watch traffic in the processor System Log.
Custom Points - mapping registers by hand
Each Custom Point maps one register or coil to a numbered Point slot (Point01_Value, Point02_Value, ... up to 64). Set Number of Custom Points (0-64) to reveal that many rows, then fill each. To control a relay or other output, add a point with Data Model = Coil:
Name - a friendly label (e.g. "Voltage L1"). Shown in Point##_Name.
Data Model - which Modbus table / function code: Coil (read/write bit, FC01/05), Discrete Input (read-only bit, FC02), Input Register (read-only 16-bit, FC04), or Holding Register (read/write 16-bit, FC03). Leave a slot Off to disable it.
Address - the register/coil number, read using the Addressing Base setting (below).
Format - the data type and byte/word order (below). Ignored for Coil/Discrete (always a bit).
Scale and Offset - final value = raw x Scale + Offset. Use Scale = 0.1 for a value reported x10, etc. Ignored for bits.
Gotcha 1 - Addressing (the off-by-one)
Modbus has two common ways to write the same address, and mixing them up is the #1 cause of "it reads the wrong value":
Protocol address (0-based) - what the wire actually uses; what Node-RED, pymodbus and most developer tools show. Pick this and type the raw address (e.g. Holding 0).
Register number (1-based) - what many device MANUALS print, often as 4xxxx / 3xxxx / 1xxxx / 0xxxx (Modicon). Pick this and type the manual's number minus its table base. Example: a manual that lists "40001" for the first holding register -> Data Model = Holding Register, Address = 1 with Addressing Base = Register number. The driver subtracts 1 to hit protocol address 0. When in doubt, try one; if every value is shifted by one register, switch the base.
Gotcha 2 - Multi-register types & byte order
Values bigger than 16 bits (uint32, int32, float32, 64-bit) span 2-4 registers, and vendors disagree on the order. If a 32-bit value looks like garbage, change the word order:
ABCD - normal big-endian (most common). CDAB - word-swapped (very common on meters). BADC - byte-swapped. DCBA - both swapped. Pick the float32/uint32/int32 Format that matches; if the number is wildly wrong or looks byte-reversed, try CDAB first.
Many meters report scaled integers instead of floats (e.g. voltage as 2305 meaning 230.5). Use a 16-bit Format with Scale = 0.1.
Device Presets
A preset is a curated, correct register map for a known device - names, addresses, data types, byte order, scale and units already filled in. Pick one and bind; no register homework. v1 includes:
Waveshare 8CH Relay - 8 read/write coils. Beats hand-mapping a relay board.
Eastron SDM120 - single-phase energy meter (voltage, current, power, PF, frequency, import/export/total energy) as float32.
Eastron SDM630 - three-phase energy meter (per-phase V/I/P, totals, frequency, energy).
SolarEdge / SunSpec Inverter - AC current/power/frequency/energy, DC power, temperature. Handles SunSpec scale-factor registers automatically (the value and its exponent are read together).
Generic Thermostat / Generic 16CH Relay - starting points you adjust for similar gear.
Custom Points are always ADDED AFTER preset points, so you can extend a preset with a few extra registers. Don't see your device? Email us the public register map and we will add it.
Binding to pages
Read feedback - bind labels/indicators to Point##_Value (the decoded value), and use Point##_Name / Point##_Unit to label them. Point##_State is a boolean (on when the value is non-zero) handy for relay indicators. Point##_Present / Point##_Writable tell you which slots are in use and which accept writes.
Writing - use Set Point (pick the Point slot, give a value) for any writable register or coil; Set Coil On/Off and Toggle Coil for relays. Match a slider's Command to Set Point and its Value to Point##_Value so the thumb doesn't snap back.
Raw / Advanced - Write Holding Register (raw) and Write Coil (raw) poke an address directly, for one-off registers you didn't map.
System - Reconnect, Poll Now, Refresh All. ConnectionState and StatusText show link health; the driver auto-reconnects with backoff and detects a dead link from missed responses.
Scaling - points and devices are effectively unlimited
Each driver instance handles up to 64 points on one device/gateway - enough for the full useful map of any normal meter, inverter, relay board or PLC control surface.
Need more than 64 points on one device? Add a second Modbus Universal instance pointed at the SAME IP (Modbus TCP allows multiple connections) and map the next 64.
More devices? Add one instance per device/gateway (each with its own IP and Unit ID).
One license covers EVERY instance on the processor - so a whole building of meters, inverters and gateways is licensed once.
License
Leave License Key blank for the 2-hour trial; paste your key to license this processor. One license covers every Modbus Universal instance on the same processor (see Scaling above).
Support
support@customcontroldrivers.com - customcontroldrivers.com
This driver includes a free 120-minute trial that starts the moment it is loaded onto a processor — evaluate it fully with no license. After the trial it locks until a license key is entered. The license is MAC-locked to one processor and covers unlimited instances of this driver on that processor (buy once per processor). Purchase and instant license delivery: https://customcontroldrivers.com/drivers/modbus-universal