Skip to main content

Charger Modbus manual

J
Written by Juhan Harm

The VOOL charger exposes a Modbus TCP/UDP interface for local integrations. This page carries the full interface manual (22.01.2026, firmware v1.9.40; GW v1.17.7, MCU v2.12.3). The PDF version is attached below.

Description

The Modbus interface is available on the Ethernet and Wi-Fi interfaces. Hybrid connection — using Modbus on Wi-Fi and OCPP on Ethernet (or vice versa) at the same time — is not supported; all connections use one common interface at a time.

By default Modbus is disabled and can be enabled using the special parameter 522 — Enable Modbus TCP/UDP interface. VOOL support can also enable it remotely for a given serial number.

Protocol specifications

  • Port: 502 (TCP and UDP)

  • Endianness: big-endian

  • Maximum simultaneous connections: 3 — further connection attempts are rejected

  • Timeout: 60 s (the connection is closed when there is no communication)

This Modbus interface does not include any security. Use it only in local, secure networks. VOOL is not liable for damage caused by unauthorised access to the Modbus interface.

Register table

All registers are holding registers.

Address

Description

Type

Access

Unit

Decimal point

100

Charger state

uint

R

enum

-

101

EV Phases

uint

R

binary

-

102–104

AC Current L1 / L2 / L3

int

R

A

0.01

105–107

Voltage L1 / L2 / L3

int

R

V

0.1

108

Active Power (total)

int

R

kW

0.01

109–111

Active Power L1 / L2 / L3

int

R

kW

0.01

200–201

Energy Imported (MSB, LSB)

uint32

R

Wh

1

500

Charging Command

uint

W

enum

-

501

External Current Limit

uint

R/W

A

0.01

502

External Allowed Phases

uint

R/W

binary

-

Registers marked W allow read operations, but the response might not contain a meaningful value. Note: register address 502 (External Allowed Phases) is unrelated to TCP port 502 — the shared number is a coincidence.

Charger state (register 100)

0 = UNDEFINED, 1 = AVAILABLE, 2 = PREPARING, 3 = CHARGING, 4 = SUSPENDED_EV, 5 = SUSPENDED_EVSE, 6 = FINISHING, 7 = RESERVED, 8 = UNAVAILABLE, 9 = FAULTED, 10 = STARTING_CHARGING

EV Phases (register 101)

Indicates how many phases the EV is using (not grid phases): bit 0 = L1, bit 1 = L2, bit 2 = L3. Example: 0b001 — the EV uses only L1 (a 1-phase EV); 0b111 — all phases (a 3-phase EV). 0b110 (L2+L3) is usually an abnormal combination and can hint at a cable or connection failure on L1.

Charging Command (register 500)

1 = Start Charging, 2 = Stop Charging. Commands are processed on the register write event: if the charger has stopped for any reason, the start command must be written again to initiate a new start. Read the reaction from the Charger State register. Do not write valid command values periodically — it will not cause failures but spams the system and renders internal logs unusable.

External Allowed Phases (register 502)

Defines which grid input phases (L1, L2, L3) the charger may use: bit 0 = L1, bit 1 = L2, bit 2 = L3. The charger's phase outputs automatically select a suitable configuration and always connect the L1 output first — when only L2 is allowed, the charger connects grid L2 to EV L1. Example: 0b010 — only L2 allowed; 0b101 — L1 and L3 allowed, L2 forbidden.

Maximum 10 switching operations per hour. The charger counts and automatically limits switching operations; the counter resets one hour after the first operation. Enabling phases is allowed even beyond the limit, to avoid a lockout situation.

An updated manual covering the next charger firmware generation is in preparation and will replace this page when that firmware ships.

Did this answer your question?