JK Inverter BMS Communication: Deye, Victron and Growatt Setup

A JK inverter BMS (the PB series, for example JK-PB2A16S20P) can tell a hybrid inverter its charge voltage, current limits and state of charge over CAN or RS485. When it works, the inverter charges the way the BMS asks instead of guessing from voltage. When it does not, the usual cause is one of five things: the wrong protocol number, the wrong port mode, the wrong address, a cable with CAN-H and CAN-L swapped, or a setting on the inverter side.

What has to match

Both ends must agree on four points.

SettingWhereWhat to choose
PortBMS and inverterCAN or RS485, the same on both sides
ProtocolBMS (CAN or UART1 protocol number)The inverter brand's protocol from the JK list
AddressBMS DIP switchesThe pack that talks to the inverter is the master
Battery typeInverter menuLithium with BMS communication, not lead-acid or a voltage profile

The JK app shows the protocol as a number with a name next to it. The numbering has changed between firmware versions, so pick by name, not by a number from an old forum post.

The JK protocol list

JK publishes a list of 14 inverter profiles, 10 on CAN and 4 on RS485. The ones most people need:

InverterInterfaceProtocol name in the JK listBus speed
Deye (low-voltage hybrid)CANDeye low-voltage hybrid inverter CAN500 kbit/s
Victron (through a GX device)CANVictron CAN-BUS BMS protocol 201707500 kbit/s
GrowattCANGrowatt BMS CAN-Bus low voltage500 kbit/s
GrowattRS485Growatt xxSxxP ESS9600 baud
Pylontech compatibleCANPYLON CANBUS500 kbit/s

Other entries cover GoodWe, SMA, INVT, SRNE, Voltronic, MUST, Megarevo and Luxpower. In older manuals, Deye is 001, Growatt CAN 003 and Victron 004, and several Victron users confirm 004 on V19 firmware. Treat those as a hint and check the name on your screen.

If your inverter brand is missing, many inverters accept the Pylontech protocol. Try that before giving up.

Port mode, address and the master pack

The PB board has one CAN socket and two RS485 sockets. One RS485 socket goes to the inverter (RS485-1), the other links packs in parallel (RS485-2). The shared port mode setting decides whether the inverter link runs as CAN or as RS485, so set it first, then the matching protocol number.

The 4-bit DIP switch sets the address from 0 to 15. With all switches off the address is 0. Each pack in a parallel bank needs its own address, and the pack wired to the inverter acts as the master that reports the whole bank. Most guides use address 0 for that pack and 1 to 15 for the others. Some Victron how-tos use 1 for a single pack. If the inverter sees nothing, check what your firmware's manual says about the master address. Change DIP switches with the BMS off, because the address is read at start-up.

Cable pinout

This is where most "no communication" problems come from. The JK-PB spec lists CAN-L on pin 4 and CAN-H on pin 5 of the CAN socket, with GND on pin 7. RS485-1 uses pins 1 and 8 for B, pins 2 and 7 for A, and pins 3 and 6 for GND. Many inverters expect CAN-H on pin 4 and CAN-L on pin 5, so a straight patch cable can have the two CAN wires swapped. Forum users report exactly this with Deye and others.

Check your inverter manual's BMS port pinout against the JK pins and make a cable if needed. Two wires plus ground is enough. A CAN bus also needs a 120 ohm terminator at each end. The GX devices from Victron ship with terminators, and many inverters have a switch for it.

Deye setup

  1. On the BMS: shared port mode CAN, CAN protocol set to the Deye entry.
  2. Master pack address as described above, then power cycle the BMS.
  3. On the Deye: Battery Setup, battery type Lithium, and the lithium mode for a CAN BMS (the Deye manual lists the mode numbers).
  4. Turn on the BMS error stop option (BMS_Err_Stop) so the inverter stops when the BMS reports a fault.

If the Deye shows the BMS SOC and current limits on its battery page, the link works. One user on the DIY Solar Forum tried four protocols without success until a full power cycle of both devices fixed it, so restart both before changing more settings.

Victron setup

Victron inverters do not read the BMS themselves. A GX device (Cerbo GX, Venus GX or a Multiplus with GX built in) does.

  1. On the BMS: CAN, protocol set to the Victron entry.
  2. Connect to the BMS-Can port of the Cerbo GX, or to a VE.Can port set to the 500 kbit/s BMS-Can profile in the GX menu (Settings, Services). A port set to 250 kbit/s will not see the BMS.
  3. Fit a terminator on the free side of the GX port.
  4. Turn on DVCC so the GX passes the BMS limits to the inverter and chargers.

The battery should then appear in the GX device list with its SOC, voltage and the charge voltage limit the BMS asks for.

Growatt setup

Growatt SPF inverters support both links. JK's compatibility notes for an SPF 3000TL HVM-48 give: program 05 set to LI, and program 36 set to 1 for the CAN protocol or 51 for the RS485 ESS protocol. Use the matching protocol and port mode on the BMS. Other Growatt models use different program numbers, so check the manual for yours.

The limits the inverter will follow

Once the link works, the inverter takes its charge voltage and current limits from the BMS. Those come from your settings: the cell RCV and cell count give the charge voltage, and the max charge current gives the current limit. A wrong value there becomes a wrong charge profile on the inverter, so check the LiFePO4 settings first. The parameters reference explains each communication field.

Check and back up with the editor

JK Preset Studio reads the BMS over Bluetooth in the browser and shows the port mode, CAN and UART protocol numbers and device address on its Communication tab. Read the settings, save a backup file, then change one thing at a time. Some smaller B-series boards do not have the CAN and UART2 protocol settings at all, and the editor marks them as not available on that BMS. The model number guide explains which boards have inverter ports.

FAQ

The inverter shows "BMS communication fault". Where do I start?

Check the cable pinout first, then the port mode, then the protocol name. Power cycle both devices after each change.

Do I need communication at all?

No. The BMS protects the cells either way. Without it, set the inverter's charge voltages by hand, a little below the BMS protection limits.

Can two packs both talk to the inverter?

No. Only the master talks to the inverter. The other packs report to the master over the parallel RS485 port.

Related guides

All guides