Which BMS works with your inverter: the three-way match
Technical review pending — checked against public standards on
- compatibility
- selection
A BMS and an inverter only talk when the protocol dialect, the physical layer and the pack window all line up. Here is the order to check them in.
An inverter does not ask a BMS how many amps it can carry. It asks a question over a wire, in a language. Two products can both advertise CAN and still exchange nothing useful, which is why compatibility cannot be answered from a brand name.
Why having CAN answers nothing
CAN is a physical layer: a differential pair, a bitrate, a frame format. It defines how bits travel, not what they mean. Two devices with working CAN transceivers can share a bus, see frames from the other, and understand none of them — because the message set, meaning which identifier carries pack voltage, which carries state of charge, and what a fault code looks like, is defined by the protocol dialect on top.
Inverter manufacturers publish a list of battery protocols their firmware accepts. BMS manufacturers implement one or more dialects. Compatibility is a match between those two lists, plus the wire between them. A brand name does not shorten that check.
The three-way match, in order
- The accepted battery protocol list of the inverter. It is usually in the manual and repeated in the battery-type menu of the firmware. Copy the exact names it lists, not the category they belong to.
- The protocol document of the BMS. It has to name the dialect and the physical layer: CAN or RS485, the pinout, the bitrate. It has to be a document, not a marketing sentence.
- The pack window. Series count, chemistry and voltage range have to sit inside what the BMS can measure and protect. A correct protocol on the wrong pack is still a wrong system.
Check them in that order. If the first one fails, nothing later rescues it: a board that speaks a dialect the inverter does not list will not be fixed by wiring, by settings, or by a firmware update on the BMS side.
Open loop and closed loop
Not every inverter needs a data link. Many can run open loop: they watch pack voltage, apply their own charge profile, and the BMS stays a protection device rather than a partner in the control loop. Closed loop is the other arrangement: the BMS reports limits and state to the inverter over the protocol, and the inverter follows them instead of its own voltage thresholds.
That distinction decides how much compatibility work you actually have. An open-loop system needs no matching dialect at all, only a pack that stays inside the voltage window the inverter expects. A closed-loop system needs the full three-way match. Ask which arrangement the inverter supports before collecting any documents — it can turn a hard question into a simple one, or the reverse.
What to collect from each side
| From the inverter side | From the BMS side | Why it decides the answer |
|---|---|---|
| Battery protocol names in the manual and in the battery-type menu | Protocol document naming the dialect | A shared physical layer with different dialects still fails |
| Firmware version and its release date | Firmware version of the board | Accepted lists change between releases on both sides |
| Connector type and pin assignment (RJ45, terminal block) | Port type and pinout | Same connector with a different pin assignment is the classic silent failure |
| Baud rate or CAN bitrate setting | Baud rate or bitrate setting | A mismatch looks like no communication, never like an error message |
| Voltage window and pack topology it expects | Series range, chemistry and measurable voltage range | A correct protocol on the wrong pack is still a wrong system |
Where this usually fails
- Dialect read as physical layer. Both sides having CAN is the most common false positive in this decision.
- RJ45 pinout. Two products can use the same connector for different signals, and a straight-through cable then connects nothing, or connects the wrong pair.
- Bitrate. A silent bus is usually a timing disagreement rather than a broken transceiver.
- Firmware revision. An inverter that accepted a dialect last year may list a different set after an update, and the same is true of the board.
- Inverters that take only a voltage signal or dry contacts. Then no protocol is involved and the BMS is not the deciding part — the relay or signal interface is.
- RS485 wiring. Half-duplex pairs, termination and biasing decide whether the bus works at all, before any dialect question is reached.
- Grounding and isolation between pack and inverter. A data link on a floating reference can carry plausible but wrong readings, which is worse than no link.
What we will not tell you
We will not answer that a board works with a given brand, from the brand name alone. Two reasons. The accepted list is specific to a model and a firmware revision, so a brand-level yes would be wrong for some units and right for others. And we do not hold per-brand approvals, so there is nothing to base such a statement on.
Buyers ask us most often about Victron, EG4, Growatt, Deye and Solis inverters. For any of them the answer has the same shape: put the accepted list of the inverter next to the protocol document of the board, and the match is either in the two lists or it is not. If it is not, no setting on our side creates it.
Before you buy: the checklist
- Write down the protocol names the inverter lists. Copy them exactly as printed.
- Get the protocol document of the board and find the same names in it.
- Compare connector type and pin assignment, not only the connector shape.
- Confirm the bitrate or baud rate both sides expect.
- Confirm the pack sits inside the series, chemistry and voltage window of the board.
- Get the answer in writing from whoever supplies the board, with the two documents attached. A verbal yes is not a compatibility record.
If any line is blank, the honest state is not yet checked, which is different from not compatible. Keep the two apart in your notes: the first is a question you still have, the second is an answer.


