Built on the Tibbo TPP2W(G2) programmable platform

Get your Modbus registers onto MQTT — without writing code.

Point the gateway at your RS-485 meters, drives, and PLCs. It polls the registers you list, scales and timestamps every reading, and publishes them to your MQTT broker — plain values on clean topics, TLS optional.

or view the full specifications →

✓ Browser-based setup, no firmware rebuild ✓ Works with any MQTT broker ✓ Application engineer support
🔌 Modbus RTU field devices
Meters, drives, PLCs and sensors on one RS-485 bus
Slave IDs 1–255FC 1 · 2 · 3 · 4Tibbit 05
poll
↗ Modbus MQTT Gateway
Reads your register map, applies each tag's multiplier, timestamps and logs every sample
30 tags10,000-sample logWeb console
publish
☁️ Your MQTT broker
On-premise or cloud — Mosquitto, EMQX, HiveMQ, AWS IoT, Azure IoT and friends
TCP 1883TLSUser / password
Serial field bus in, MQTT out — one device, no middleware
30Register tags per gateway
4Modbus function codes read
10,000Timestamped samples logged on-device
TLSEncrypted MQTT with certificate
RS-485 Modbus RTU (Tibbit 05) Configurable baud, parity, data bits Poll interval 0–600 s Per-tag scale multiplier SNTP time sync with time zone Password-protected web console
Connect any industrial device

From an RS-485 register to your dashboard.

The gateway sits between the field bus and the broker: it polls each tag you listed, scales and timestamps the reading, then publishes it on your topic tree. Everything downstream is just an MQTT subscriber.

RS-485 · MODBUS RTU FC 1 · 2 · 3 · 4 · slave IDs 1–255 GATEWAY Ethernet · DHCP or static IP MQTT publish ≥ 5 s ⚙️PLC / controller Energy meter 🌀VFD / drive 🌡️Temperature sensor 💧Flow meter 📟RTU / I-O module POLL every 0–600 s TPP2W(G2) Modbus MQTT Gateway poll · scale · timestamp · publish 30 tags 10k log web UI plant1/line2/boiler_temp → 72.4 PUBLISH MQTT broker any broker · TLS optional SUBSCRIBERS 📊 Dashboards 📱 Mobile app 🖥️ SCADA / HMI ☁️ Cloud apps

← swipe the diagram to follow the data →

30 register tags Slave IDs 1–255 Poll 0–600 s Publish ≥ 5 s Topic prefix/tag_name TLS with certificate
Why engineers choose it

The boring part of an IIoT project, already finished.

Polling loops, register scaling, reconnect logic, topic naming, buffering — the plumbing between a serial field bus and an MQTT broker is all done and configurable from a browser.

🗺️

Register map you edit in a table

Each row is one tag: slave ID, register address, function code, multiplier, and the name it publishes under. Up to 30 tags, stored in flash — no rebuild to add a meter.

📡

Any MQTT broker

Standard MQTT client — host, port, client ID, username and password. Publishes plain values on a topic prefix you choose, so it drops straight into an existing topic tree.

🔐

TLS when you need it

Turn on MQTT TLS and point the gateway at a certificate file for encrypted transport to cloud brokers. Plain TCP on 1883 when you're inside the plant network.

📈

On-device history

Every reading is timestamped and appended to a 10,000-record log in flash, alongside a live value table — so a broker outage doesn't mean a blind spot.

🖥️

Built-in web console

Password-protected pages for network, serial, Modbus and MQTT settings, plus live tables that refresh every second. Nothing to install on the laptop.

🛠️

Programmable, not a black box

Built on Tibbo's TPP2W(G2) and AppBlocks. Need a JSON payload, a different topic scheme, or an extra protocol? The logic is open to extend.

Where it is used

If it has Modbus registers, it has a place on your dashboard.

The gateway doesn't care what the equipment is — a slave ID, a register address, and a function code are enough. These are the applications engineers bring to us most often; each one shows a slice of the register map you would type into the console, and the values that land on your broker.

🏢

Building management & HVAC

Chillers, air handlers, VRF controllers, and floor-level meters already speak Modbus RTU. Publish their temperatures, setpoints, and run states to a BMS dashboard or analytics platform without paying per point.

Devices table → broker
FC3 40001 ×0.1 → supply_temp  18.4
FC3 40105 ×1   → setpoint     21
FC1 00034      → fan_run      1
return tempvalve positionchiller kWfloor kWh
🏭

Manufacturing & machine monitoring

Read cycle counters, machine states, drive speed, and load from the PLCs and VFDs already on the line. Poll fast for a responsive process and still publish a tidy update every 30 s to your OEE or downtime dashboard.

Devices table → broker
FC3 40020 ×1   → cycle_count  84213
FC3 40044 ×0.1 → vfd_hz       47.5
FC1 00009      → fault        0
reject counterspindle loadoven temprun hours

Energy & tenant submetering

Poll power meters across a site and publish kWh totals, voltage, current, and power factor in engineering units — the per-tag multiplier turns raw counts into billable figures before they ever leave the gateway.

Devices table → broker
FC3 30002 ×.01 → kwh_total 10432.75
FC3 30010 ×0.1 → volts_l1    231.4
FC3 30016 ×.01 → power_fact   0.98
current per phasedemand peakfrequencykVArh
💧

Water, wastewater & pump stations

Unmanned sites with flow meters, pressure and level transmitters, and pump starters. The 10,000-sample on-device log keeps the history intact through a cellular or broker outage, so remote doesn't mean blind.

Devices table → broker
FC4 30007 ×1   → flow_rate    18
FC3 40012 ×0.1 → tank_level   62.5
FC1 00003      → pump_run     1
flow totaliserline pressurepump run hoursmotor current
🌡️

Cold chain, food & pharma

Temperature and humidity controllers on refrigeration plant, drying rooms, and storage. Every reading is timestamped against the device's SNTP-synced clock, then published for alerting and long-term retention.

Devices table → broker
FC3 40001 ×0.1 → chamber_t   -18.6
FC3 40003 ×0.1 → humidity     41.2
FC2 10005      → door_alarm   0
defrost stateevaporator tempcompressor runsetpoint deviation
☀️

Solar, storage & generators

String and hybrid inverters, battery management systems, and genset controllers all expose Modbus RTU. Feed DC and AC power, state of charge, fuel level, and alarm registers into an O&M portal over TLS.

Devices table → broker
FC3 40072 ×1   → dc_power     4820
FC3 40085 ×1   → soc          78
FC1 00021      → inv_fault    0
AC export kWstring voltagegenset fuel levelrun hours

Also deployed for

Data centre power chains (UPS, PDU, and CRAC units) · greenhouse and irrigation control · EV charger fleets · compressed air and process utilities · commercial laundry and kitchen equipment · marine and offshore auxiliaries · OEM machine builders adding cloud telemetry to an existing controller without touching its firmware.

Tell us which devices you need to read and we'll confirm the register map →

How it works

Two independent loops: poll, then publish.

Field polling and cloud publishing run on separate timers, so you can read a fast process at 1 s and still publish a tidy update every 30 s — or the other way around.

1

List your tags

Add each register to the Devices table from the web console — slave ID, address, function code, multiplier, name.

2

Gateway polls the bus

On every poll interval it walks the table, issuing one Modbus RTU read per tag with a 1 s response timeout.

3

Scale, timestamp, store

Each raw value is multiplied by the tag's factor, written to the live value table, and appended to the on-device history log.

4

Publish to MQTT

On the publish interval every tag goes out as prefix/tag_name with the value as the payload.

Register map (Devices table)
# id   addr    function code    mult   name
  1     40001   holding (FC3)    0.1    boiler_temp
  1     40007   input reg (FC4)  1      flow_rate
  3     00012   coil (FC1)       1      pump_run
  7     30002   holding (FC3)    0.01   kwh_total
What lands on your broker
# topic prefix: plant1/line2
plant1/line2/boiler_temp  72.4
plant1/line2/flow_rate    18
plant1/line2/pump_run     1
plant1/line2/kwh_total    10432.75

# one topic per tag, value as payload, QoS 0

Topic prefix, publish interval, and every tag name are settings — nothing above is hard-coded. Need a JSON envelope or per-tag topics instead? That's an AppBlocks edit, not a new product.

Configure from any browser

Every setting, on one password-protected console.

Point a browser at the gateway's IP and you get the full configuration — grouped exactly as below — plus live data tables that refresh every second. Here is every field the console exposes and what it ships with.

Every field, and what it defaults to

🔒 192.168.1.40/settings
SettingControlDefault
Web Admin PasswordText — protects the console(empty)
Device Time ZoneDrop-down, UTC−12:00 → UTC+14:00UTC+08:00

General. Set the console password and the device time zone — the time zone is what makes the timestamps in the sample log line up with your plant clock.

One page, three stakeholders

Answers for everyone in the decision.

Controls / Automation Engineer

  • Read coils, discrete inputs, holding and input registers
  • Per-tag multiplier — publish engineering units, not raw counts
  • Independent poll and publish intervals
  • On-device sample log for verifying a suspect reading

IIoT / Cloud Integrator

  • Standard MQTT client — any broker, any topic tree
  • TLS with certificate for cloud endpoints
  • Predictable prefix/tag topics, values as payloads
  • AppBlocks logic you can extend to JSON or Sparkplug-style payloads

Plant / Project Manager

  • Get existing equipment onto the dashboard without replacing it
  • No PC, no gateway software licence, no middleware server
  • Commissioned from a browser in minutes
  • Application engineer support from Tibbo
Specifications

Technical snapshot

Confirm exact model configuration and certifications for your region with our engineering team before you spec.

ParameterDetail
PlatformTibbo TPP2W(G2) programmable device, Zephyr runtime, configured with Tibbo AppBlocks
FunctionModbus master and MQTT publisher — polls Modbus registers and publishes each value to an MQTT broker
Field busModbus RTU over RS-485 via Tibbit 05; baud rate, parity, and data bits configurable from the console (default 9600, none, 8)
Function codesRead coils (FC1), read discrete inputs (FC2), read holding registers (FC3), read input registers (FC4)
Register mapUp to 30 tags, each with slave ID (1–255), register address (0–65535), function code, scale multiplier, and 30-character tag name; stored in flash
PollingConfigurable interval 0–600 s (default 5 s), 1000 ms Modbus response timeout, up to 10 outstanding requests
MQTTBroker host and port (default 1883), client ID, username and password, optional TLS with certificate file, 30 s keep-alive, topic prefix up to 240 characters, publish interval ≥ 5 s (default 30 s), QoS 0
Topic format<topic prefix>/<tag name>, scaled value as the payload
Data storage10,000-record timestamped sample log and 200-record event log in flash; live value table in RAM; SNTP time sync with time-zone setting
NetworkEthernet — DHCP or static IP, netmask, and gateway; DNS resolver for named brokers
Web consoleBuilt-in HTTP server on port 80, password protected, 1 s live refresh, settings pages plus editable and viewable data tables
Firmware / logicTibbo AppBlocks project (extensible); this build: Modbus MQTT Gateway, v0.1.19

Power, environmental ratings, dimensions, and regional certifications depend on the final hardware configuration — see the datasheet for the exact figures for your build. This build exposes Ethernet networking; the TPP2W(G2) platform is also Wi-Fi capable, and Modbus TCP as well as Wi-Fi can be enabled in AppBlocks on request.

↓ Download Datasheet (PDF)
Get moving

Request a quote or a technical call.

Tell us which devices you need to read and where the data has to land. An application engineer will come back with pricing, lead time, and a recommended configuration — usually within one business day.

✓ Quote & lead time ✓ Config recommendation ✓ Eval unit availability

Prefer email? sales@tibbo.com