Understanding the Victron BMS CAN

My system constists of RS450 connected to a Cerbo by 250kbit CAN and 2 groups of Pylons connected to the 500kbit BMS CAN port using the pylon LV-Hub. Unfortunately I cannot find many informations about the CAN protocols.

As far as I understand, the Pylon CAN protocol is proprietary and does not contain proper data link, addressing and transport layer functionality like NMEA2000. This constraints require a second separate BMS CAN port for the CerboGX. Pylons cannot coexist to the VE-CAN with the RS450 chargers.

Recently some BMS became available, what are able to select diffrent CAN protocols. Examples are Seplos and JK-Inverter BMS. Screendump with selections attached. Beside own proprietary CAN protocol most emulate a Pylon and a Victron BMS protocol.

Is that Victron CAN BMS protocol same than the one used by the Lynx BMS?
Is the Victron CAN BMS using the NMEA PGNs for coexistance with VE.CAN/ RS450@250kbit?
Is the Victron CAN BMS addressing >16 batteries without additional hardware like the Pylontech LV-Hub? Therefore using the NMEA auto configuration feature for up to 50 devices?

There are some technical documents here.

Can registers are publicly available.

And their data communication paper.

If you are wanting more then spend time in the modification section.

The 16 battery limit is an address limitations in the pylontec side. Same as the 8 used to be. Not related to Victron at all.

3 Likes

Thanks for the links, mainly the vregs description. Its hard to read between the lines to understand the things.

  1. The Victron CAN BMS protocol defined by Victron

is described in the VREGS Manual and is also known as VE-CAN. This is a NMEA2000 protocol using manufactuerer specific parameter group number (PGN) to identify diffrent BMS data. It is a true plug and play protocol working at 250kbit, using 29 bit CAN identifiers. The protocol features mandatory autoconfiguration for up to 50 devices. Battery aggregation happens inside Venus OS. Coexistance with other VE.CAN devices like the RS450 MPPT is no problem.

  1. The Victron CAN BMS protocol defined by non Victron manufacturers

is described in several PDFs on the internet what might be written by manufacturers, solar enthusiasts or open source authors. This is a point to point comunication at 500kbit what suffers from missing transport layer. It does do not implement basic requirements like error recovery, reininitate connection, flow control. data segmentation and reassembly or retransmissions on timeout. It is abusing the CAN 11 bit identifiers to identify diffrent BMS data contents.

As a consequence of the point to point communication, the Cerbo GX offers a second CAN port beside the VE.CAN port what is known as the BMS-CAN port. The BMS-CAN port only works at 500kbit while the same setup is also available for the Cerbo VE-CAN port. The protocol to setup in setup>services>BMS-CAN>CAN-BusProfile is the „CAN-bus BMS LV @500kbit“. This is the protocol what other manufactures call the „Victron BMS protocol“. It is a superset or subset of the Pylon protocol, wether this is intentional or unintetional by incomplete implementaions of the diffrent manufacturers. The inventor of this protocol is possibly the SMA, as the sunny island seems older than Pylontech US2000.

Another consequence of the point to point protocol is, that devices on this 500kbit CAN bus cannot share the bus hardware with any other CAN bus devices. Even not with another battery from the same model. To solve this, Battery aggregation happens inside a so called master battery rack what is the CAN slave communicating with CAN master in Venus-OS. Connection of other slave batteries are limited to 8,12 or 16 devices and require again another completely undocumented CAN bus and/or RS485 hardware.

The things seem to go really messy, if this point to point protocol needs to connect more than one master battery. To solve this, undocumented handshake lines on the RJ45 pins 1,2,3 are used together with also undocumented RS485 communication in the background. To do the aggregation of the master batteries another hardware known as the Pylon LV-hub is required. To make this LV-hub working, suspicious procedures like „wait to 3 beeps of master battery and then plug in cable“ and changing the dip-switch setup at specific times are described in the Pylon LV-hub manual.

Assume all, the Victron CAN BMS protocol defined by non Victron manufacturers or CAN-bus BMS LV @500kbit ist not what Victron users expect from trouble free operation for safety critical functionality with potential dangerous LiFePo battery devices. For this reason it seems to be important to know about the diffrences between Victron CAN BMS protocol and Victron CAN BMS protocol not only for DIY users. The only way to find out what battery uses what protocol is not reading the manuals but to buy it and then see its not working like expected. To be honest: Are there any known batteries what use the No. 1 Victron CAN BMS protocol except Victrons own Lynx BMS?

There are quite a few bms that are plug and play even though they are not officially supported.
The following BMS systems are known to correctly follow the Victron battery specification (but are not tested by Victron!):

123\SmartBMS - Victron instructions
REC BMS - https://www.rec-bms.com/ (various Victron documentation on their website)
Boostech GmbH BMS - https://www.boostech.de/bms-konfigurator/

All that is needed in some cases is a driver to be loaded. And then git hub is your friend.
The most well known one is this one here by Louis van der Walt

On the ekrano there is no bms can. Just can.
The cerbo it is defined but mainly it is the speed that is set to 500. Not 250 like the mppts use. Some batteries need 250

A specific example of a battery using can redflow.

The cans are not specific otherwise.

1 Like