Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

  1. Connections
  2. Generic - Modbus TCP Relay, Modbus TCP I/O

Generic

Modbus TCP Relay · Modbus TCP I/O

Communityv0.4.1Updated 4 months agoProtocols
DocumentationReport an issueView on GitHub

Documentation

Generic Modbus TCP

This module is intended for Modbus TCP relay and digital input devices that expose:

  • relay outputs as coils
  • digital inputs as discrete inputs

The module now provides:

  • configurable unit id, coil start address, input start address, and counts
  • direct coil actions for on, off, toggle, pulse, and all-coils control
  • coil, input, and register polling with state feedbacks and variables
  • Companion button presets for per-coil toggle plus utility controls

Waveshare devices

This module should work well with Waveshare devices that present:

  • coil-backed outputs
  • digital inputs as discrete inputs
  • Modbus TCP on port 502
  • unit id 1

That includes the common Waveshare Ethernet/PoE relay family where the device behaves like a standard Modbus TCP relay controller rather than needing a vendor-specific API.

Searching for Waveshare in Companion should also surface this module.

Common Waveshare setup

These defaults should work for common Waveshare relay boards:

  • port: 502
  • unit id: 1
  • coil (relay) start address: 0
  • coil (relay) count: 8
  • digital input start address: 0
  • digital input count: 8

If your device uses different Modbus addressing, adjust the start addresses and counts to match its register map.

Important note about coil offsets

Testing against a Waveshare unit on this system showed that Read Coils responded correctly at coil start address 0, but timed out for offsets such as 1, 2, 7, 8, 16, and higher.

For Waveshare boards like this one, you should keep:

  • Coil (Relay) start address: 0

If changing the coil offset causes timeouts instead of a Modbus exception, that usually indicates the device only responds on the base coil map starting at 0.

Example: Waveshare 8-relay board

Use these settings as a starting point:

  • host: 192.168.x.x
  • port: 502
  • unit id: 1
  • coil (relay) start address: 0
  • coil (relay) count: 8
  • enable digital input polling: false
  • coil (relay) poll interval: 500

Recommended Companion usage:

  • drag in the built-in Toggle coil (relay) 1 to Toggle coil (relay) 8 presets
  • add All coils (relays) on and All coils (relays) off presets for master control
  • use the Coil (relay) is on feedback on custom buttons if you want state indication
  • use the Pulse coil (relay) action if the output should behave momentarily

Example: Waveshare relay board with digital inputs

Use these settings as a starting point:

  • host: 192.168.x.x
  • port: 502
  • unit id: 1
  • coil (relay) start address: 0
  • coil (relay) count: 8
  • enable digital input polling: true
  • digital input start address: 0
  • digital input count: 8
  • input poll interval: 250

Recommended Companion usage:

  • use the Digital input is active feedback to show input state on buttons
  • use variables such as $(instance:input_1) and $(instance:input1_status) in labels or triggers
  • keep relay polling enabled so output button feedback stays in sync with the hardware

Notes on generic compatibility

This module does not assume Waveshare-specific toggle commands. For compatibility with generic Modbus devices, toggle actions are implemented by reading the current state and then writing the inverse state.

Details

Manufacturer
Generic
Products
Modbus TCP Relay, Modbus TCP I/O
Latest Version
v0.4.1
Author
Yannis Guedel
Contributors
Julusian(20)
yannisgu(9)
themusicnerd(3)
bryce-seifert(3)
dnmeid(2)

Open Issue and Request

RyanSceneTeknikk#14 [Feature]: Analog Modbus signal?

To file a new issue, you need to sign up for a user on GitHub.

Go to GitHub issues →

In other news

Buttons v1.8 Main with text

Buttons v1.8

October 2, 2026

Buttons v1.8 IBC award win

Bitfocus wins IBC2026 Best of Show Award for latest Buttons enhancements

September 21, 2026

Buttons v1.8 grey background

Biggest functionality boost yet makes Buttons the perfect platform for broadcast and media management

September 10, 2026

Vivid Buttons on screen

Bitfocus Buttons makes complex OB production feel simple

August 10, 2026

View all news →

More from Generic

AES70

Generic

Community
View Connection

Art-Net

Generic

Community
Protocols
View Connection

Bridge

Generic

Community
View Connection

Data Entry

Generic

Community
View Connection

Ember

Generic

Community
View Connection

Ember+

Generic

Community
Protocols
View Connection