
The INVT Goodrive 20 (GD20) and Goodrive 20-EU (GD20EU) are mini general-purpose variable frequency drives (VFDs) for 3-phase AC induction motors used in pumps, fans, conveyors and other industrial loads. They speak Modbus RTU on a 2-wire RS-485 bus through INVT’s optional SID2 communication card or the on-board RS-485 terminals.
The TapHome template uses Modbus TCP on port 502 and expects an external RS-485-to-Ethernet gateway (the XML description recommends a Waveshare RS485-to-ETH B converter) to bridge the IP network to the VFD’s RS-485 bus. The template exposes diagnostics — latched fault code, motor RPM, output current and a VFD identification register — together with a Fault Reset push-button. Run/stop, frequency setpoint and live status are not implemented (see the Possible improvements list below).
About the slug name “SID2”. SID2 is INVT’s internal name for the RS-485 communication card option on the GD20 — it has no Ethernet port. The TapHome template still talks Modbus TCP, so an external gateway (Waveshare RS485-to-ETH B, Moxa MGate, USR-W630 or equivalent) is always required. Any standard Modbus TCP-to-RTU converter works; SID2 vs. on-board RS-485 only changes the physical terminal block on the VFD side.
Hardware connection
The communication chain has two stages:
| |
The gateway must be on the same local network as TapHome Core and configured with a static IP (DHCP reservation or its own web UI). The gateway’s RS-485 port is wired in parallel with the VFD’s 485+ / 485- terminals.
Wiring of the control circuit

The RS-485 terminals are part of the GD20 control terminal block:
| Terminal | Function |
|---|---|
485+ | RS-485 line A (positive) |
485- | RS-485 line B (negative) |
PE | Cable shield / protective earth |
Wiring rules (from manual V1.9, section 3.2.4):
- Use a shielded twisted pair for the RS-485 bus.
- Connect
485+of the gateway to485+on the VFD, and485-to485-. - Bond the cable shield to
PEat one end only (typically the gateway side). - Maximum cable length depends on baud rate — at 19 200 bps with 24 AWG twisted pair the practical limit is roughly 600 m.
- Route control cables separately from the U/V/W motor cable to avoid noise pickup.
RS-485 bus layout

For a single drive, connect the gateway directly between 485+ and 485- on the VFD. For multiple drives, daisy-chain them on a single bus and place a 120 Ω terminator at each end. Star (chrysanthemum) topology is supported but daisy-chain is preferred for noise immunity. Each VFD on the bus must have a unique slave address (P14.00).
Termination resistor

Each GD20 has a small DIP switch block above the control terminals (labelled AO1, AO2, AI2, 485). The 485 switch toggles the on-board 120 Ω termination resistor for the RS-485 line. Set it to ON only on the last VFD at the end of the bus; on intermediate drives leave it OFF. The factory default position is marked by a black rectangle on the switch.
Verify the rear wire-cap. A common cause of communication errors is the small wire-cap on the back of the terminal block that connects the on-board termination to the bus — if it is missing or unseated, the 485 DIP switch has no effect.
Configuration
When importing the template in TapHome, provide:
- IP Address — the gateway’s address on the local network (default placeholder:
192.168.1.0) - Slave ID — Modbus slave address of the VFD (default
1, range1–247)
Modbus TCP runs on port 502 (hardcoded in the template).
Enabling Modbus communication
The VFD ignores writes from Modbus until the run channel and the frequency source are switched to communication. The relevant parameters all live in the P14 group on the VFD’s keypad menu (manual V1.9, section 5):
| Parameter | Function | Recommended value | Notes |
|---|---|---|---|
P00.01 | Run command channel | 2 (Communication) | Allows writes to H:0x2000 to control run/stop. Without this, only diagnostic reads work. |
P00.06 | A frequency source | 8 (Modbus) | Required only if the frequency setpoint will be sent over Modbus. |
P14.00 | Local communication address | 1 (default), unique per drive | Slave ID — must match the value entered in TapHome. 0 is reserved for broadcast. |
P14.01 | Communication baud rate | 4 = 19 200 bps (default) | Must match the gateway’s RS-485 setting. |
P14.02 | Data bit check | 1 = E,8,1 (Even, 8 data bits, 1 stop bit) | Must match the gateway. Other RTU options: 0=N,8,1; 2=O,8,1; 3=N,8,2. |
P14.04 | RS-485 timeout period | 0.0 (disabled) | If enabled and the bus goes silent for longer than the configured time, the VFD raises a CE fault (485 communication fault). |
The keypad navigation is: PRG → group P14 → select sub-index → press DATA/ENT → adjust value → press DATA/ENT again to save.
The TapHome template only reads diagnostic registers and triggers Fault Reset, so
P00.01andP00.06are not strictly required. If you only need monitoring, leave the run channel on the keypad/terminals and set justP14.00–P14.02so the VFD answers Modbus reads.
Gateway configuration
The gateway needs the following settings:
- Operating mode: Modbus TCP server on port
502 - RS-485 side: baud rate, parity, data and stop bits matching
P14.01andP14.02(default 19 200, E, 8, 1) - Static IP: assigned via the gateway’s web UI or DHCP reservation
- Transparent or RTU-in-TCP encapsulation is not required — TapHome speaks pure Modbus TCP and the gateway must convert frames internally
If the gateway is configured for “transparent UDP/TCP forwarding” instead of “Modbus TCP server”, TapHome will see timeouts. Use the Modbus protocol mode of the gateway, not raw passthrough.
Device capabilities
The template exposes six devices on the VFD module — all are read-only diagnostics except the empty Fault Reset push-button.
Diagnostics and monitoring
- Operation Speed — motor rotational speed in RPM, computed internally by the VFD from the running frequency and the configured motor parameters (motor parameter group P02). Reads register H:0x3005, range 0–65535 RPM.
- Output Current — motor line current from H:0x3004 in 0.1 A units (raw register value). Divide by 10 in TapHome scripts to get amperes; range up to 3000.0 A.
- VFD Identification Code — model identifier from H:0x3016. Useful for confirming the template is bound to a Goodrive 20 unit (see the note below about the choice of register).
Fault handling
Fault Code (latched) — latched fault number from H:0x5000. Persists across a transient fault until the user issues a Fault Reset, so the last fault stays visible on the dashboard. Codes follow the GD20 fault table:
Code Mnemonic Meaning 1 OUt1 Inverter unit U-phase protection 2 OUt2 Inverter unit V-phase protection 3 OUt3 Inverter unit W-phase protection 4 OC1 Overcurrent during acceleration 5 OC2 Overcurrent during deceleration 6 OC3 Overcurrent at constant speed 7 OV1 Overvoltage during acceleration 8 OV2 Overvoltage during deceleration 9 OV3 Overvoltage at constant speed 10 UV Bus undervoltage 11 OL1 Motor overload 12 OL2 VFD overload 13 SPI Phase loss on input side 14 SPO Phase loss on output side 15 OH1 Rectifier module overheat 16 OH2 Inverter module overheat 17 EF External fault 18 CE 485 communication fault 19 ItE Current detection fault 20 tE Motor auto-tuning fault 21 EEP EEPROM operation fault 22 PIDE PID feedback offline 23 bCE Braking unit fault 24 END Running time reached 25 OL3 Electronic overload pre-alarm 26 PCE Keypad communication error 27 UPE Parameter upload error 28 DNE Parameter download error 32 ETH1 To-ground short-circuit fault 1 33 ETH2 To-ground short-circuit fault 2 34 dEu Speed deviation fault 35 STo Synchronous-motor maladjustment 36 LL Electronic underload Fault Reset — push-button device intended to write
0x0007to the control register H:0x2000. The Read and Write scripts ship empty in the supplied template — the button is visible in TapHome but does not send any Modbus frame when pressed. To make it functional, open the device in the TapHome integration tool and addWriteButtonPressedState = MODBUSW(H, 0x2000, 0x0007), or trigger the same write from a Smart Rule.
Energy meter wrapper (Output Current, mislabelled)
Output Current (electricity meter wrapper) — a
ModbusElectricityMeterdevice that maps two service attributes onto the same Output Current register (H:0x3004, 0.1 A units):Service attribute UI label Reads Reality readtotalconsumptionTotal Consumption (kWh) H:0x3004 / 100Output current scaled by 1/100 — not cumulative energy readdemandDemand (W) H:0x3004Raw output current in 0.1 A — not instantaneous power The GD20 does not expose a kWh totalizer or an instantaneous power register over Modbus, so the original template fakes them by reading the line current. Use the dedicated Output Current sensor (above) for accurate readings, and ignore the values shown under “Total Consumption” and “Demand”. For real consumption tracking add an external kWh meter on the VFD’s input feed.
Why “Total Consumption” shows amps. The XML reuses register H:0x3004 (Output Current) three times. Both the energy and the power service attribute on the wrapper read the same current register and label it incorrectly. This is a known quirk of the supplied template — see the Possible improvements list for the correct power register (H:0x3006) and the lack of a kWh totalizer.
Troubleshooting
No Modbus communication (timeouts in TapHome)
- Ping the gateway from TapHome Core — confirm the static IP is reachable.
- Verify the gateway is configured as a Modbus TCP server on port 502 (not raw transparent passthrough).
- Confirm the VFD’s slave address (
P14.00) matches the Slave ID entered in TapHome. - Match the gateway’s RS-485 settings to
P14.01(baud rate) andP14.02(parity / data / stop bits) — defaults are 19 200, E, 8, 1. - Check the on-board 485 DIP switch at the end of the bus is
ONand that the rear wire-cap of the terminal block is seated. - Swap
485+and485-if the LEDs on the gateway are blinking but TapHome reports CRC errors — A/B polarity is the most common wiring mistake.
Drive shows fault CE (18)
The VFD itself has detected an RS-485 communication fault. Check:
- Wiring polarity (
485+↔ A,485-↔ B). - Termination resistor at both ends of the bus (120 Ω each).
- Cable shield grounded at one end only.
- Baud rate and parity match between gateway and
P14.01/P14.02. P14.04(RS-485 timeout) — if a value is set, the VFD must see traffic at least that often. Set to0.0to disable the watchdog while debugging.
Fault Reset button has no effect
The supplied template has empty Read/Write scripts on the Fault Reset device. Open the device in the TapHome integration tool and add a write script that sends 0x0007 to register H:0x2000. Until then, reset latched faults from the VFD keypad (STOP/RST button) or by power-cycling the drive.
Operation Speed reads 0 while the motor runs
Operation Speed (H:0x3005) is computed from the running frequency and the motor parameter group P02 (rated frequency, rated speed, pole count). If those motor parameters are at defaults that do not match your motor, the drive may report 0 or nominal nameplate values. Run motor auto-tuning or set the motor nameplate values manually in P02 so the drive can derive RPM correctly.
VFD Identification Code returns an unexpected value
The template reads the undocumented register H:0x3016. The documented identification register is H:0x2103, which returns 0x0106 for both Goodrive 20 and Goodrive 20-EU. If H:0x3016 returns something unfamiliar, treat it as opaque diagnostic data — the VFD is otherwise functional. To switch the read to the documented register, change the script in the TapHome integration tool to MODBUSR(H, 0x2103, Int16).
