
The GTD IOT 8-Button Touch Switch (model 15D-BK-MODBUS) is a capacitive touch panel with 8 buttons on a tempered glass surface. It communicates via Modbus RTU over RS-485 and is designed for wall-mount light switching and scene control. The TapHome template exposes all 8 buttons as independent on/off switches with automatic LED backlight mirroring.
The panel operates at 12–24 V DC and supports customizable LED backlight colors (red, green, blue, white, yellow, orange). Each button press toggles the corresponding switch state and LED indicator.
Hardware connection
RS-485 wiring
Connect the panel to TapHome Core using a standard RS-485 connection:
- A+ → A+/D+ on TapHome RS-485
- B- → B-/D- on TapHome RS-485
- GND → GND on TapHome power supply
Communication settings:
- Baud rate: 19200
- Parity: None
- Stop bits: 1
- Data bits: 8
Power supply: 12–24 V DC via the same connector or a separate power feed.
Important — Grounding
The GND wire must be connected between the touch panel and the TapHome power supply. Without proper grounding, communication errors may occur.
Configuration
Slave ID
The Modbus Slave ID is configured during template import in TapHome. The default value is 1. Each panel on the bus must have a unique Slave ID.
Initialization
The template automatically initializes each button into touch-to-toggle mode on first connection:
- H:30–H:37 — set to 1 (touch-to-toggle mode for buttons 1–8)
- H:47 — set to 1 (global enable for touch input)
This initialization runs once via the InitializeScript when TapHome first communicates with the panel.
Device capabilities
Button control (Buttons 1–8)
All 8 buttons operate identically. Each button is exposed as an on/off switch in TapHome:
- Read: The switch state is read from holding registers H:0 through H:7 (one per button)
- Write: When toggled from TapHome, the template writes the switch state to H:0–H:7 and mirrors it to the LED register H:10–H:17
This means the physical LED on the panel always reflects the current switch state, whether the button was pressed locally on the panel or toggled remotely from TapHome.
| Button | Switch register | LED register | Poll interval |
|---|---|---|---|
| Button 1 | H:0 | H:10 | 100 ms |
| Button 2 | H:1 | H:11 | 100 ms |
| Button 3 | H:2 | H:12 | 100 ms |
| Button 4 | H:3 | H:13 | 100 ms |
| Button 5 | H:4 | H:14 | 100 ms |
| Button 6 | H:5 | H:15 | 100 ms |
| Button 7 | H:6 | H:16 | 100 ms |
| Button 8 | H:7 | H:17 | 100 ms |
Write script
The module-level WriteScript updates all 8 switch states and their corresponding LED states in a single Modbus transaction. When any button state changes in TapHome, the script writes both the switch register (H:0–H:7) and the LED register (H:10–H:17) to keep them synchronized.
Additional capabilities
The GTD IOT touch panel also supports features not currently implemented in the TapHome template:
- LED color control (likely H:20–H:27) — per-button LED backlight color selection (red, green, blue, white, yellow, orange)
- Button mode configuration (likely H:40–H:46) — per-button mode selection (toggle, momentary, dimmer). The current template uses only toggle mode
These can be added as custom Modbus devices in TapHome if needed.
Troubleshooting
No Modbus communication
- Check RS-485 cables:
- A+ correctly connected to A+/D+ on TapHome
- B- correctly connected to B-/D- on TapHome
- GND connected — most common issue
- Verify the Slave ID matches between the panel and TapHome
- Confirm TapHome is set to: 19200 baud, no parity, 1 stop bit, 8 data bits
- Check bus termination — if the panel is the last device on the bus, a 120 Ohm termination resistor may be needed
Button press not detected
- Verify the InitializeScript has run (H:30–H:37 and H:47 should be set to 1)
- Check that the panel is powered (12–24 V DC)
- Try re-importing the template in TapHome to re-trigger initialization
LED not matching switch state
- Confirm the WriteScript is active — it mirrors switch state to LED registers
- If LED was changed manually via a custom script, re-import the template to restore synchronization