CANbus Lithium Batteries

CANbus Lithium Batteries

Video on compelling benefits of 48V Systems

Traditional Shunt based Battery State of Charge

A "shunt" is a large piece of metal with a precision low value resistor that measures the current flow through it by voltage drop accross it. They are "in the power circuit" and because they are large devices, typically are placed on the negative lead from the batteries to the loads. They are needed to calculate "State of Charge" in a battery by a monitoring system. Such a monitoring system, like Simarine, resets the SOC to 100% when the battery voltage is high and only a small amout of current is flowing. Then based on the enterred value for the battery capacity, the battery monitor counts down, and up, as the current flows in and out. Stored energy in a battery is commonly referred to as Amp Hour capacity. A 100Ah battery, for example, with a shunt measuring 100A discharge will show the "time to go" as 1 hour.

There are problems with this type of measurement as it is a calculation by an unrelated system based on parameters that the user enters. There is a charge efficiency factor and Peukerts factor, the exact battery capacity and C5, C10 and C20 values. At best, the calculated SOC may be 5% accurate, at worst 25%.

There is another minor problem that measuring amp hours with the shunt does not take into account the voltage. Stored energy is measured in Watt hours which takes into account the voltage. Using a current shunt, 100A charging a battery at 14.4V and 100A discharging a battery at 12.5V will look the same, but the energy difference is 14%. 

Charging Parameters

Fortunately, most charging systems don't use SOC but voltage levels to charge. This introduces another problem: the voltage drop between the charger and the battery. A small voltage drop can make a difference in some systems. Based on the measured voltage at the charger, the battery charger, whether AC, Solar or DC to DC will operate at a programmed voltage level. Commonly these levels are referred to as Bulk, Float levels. Victron also have a Storage mode that relaxes Lithium batteries to reduce chemical ageing.

This requires all the charging devices to charge at exactly the same level with the same parameters. Victron have a "shared voltage" and "Shared current" sense values that as the name implies shares the same voltage value accross all devices by a data network. Typically the cabling to each charge device is not even and the measured voltage will be slightly different at each charger. Imagine the difficulty when the system is a combination of various brands, or even if the same brand, different charging algoithms in each. For Lithium batteries such a "mixed bag" of charging devices leads to a long term problem.

Measuring SOC inside the Battery

It may seem obvious, but the best way to measure State of Charge is inside the battery itself. With Lithium batteries this is easily done as the BMS has to know current flow and voltage to operate. It is all inside every Lithium battery that has a decent BMS. The difficulty is sharing the data accross a charging network. There are only a few battery manufacturers who produce the entire system from battery to all the charging devices. We know of only two: Victron and Mastervolt. There would not be value for consumers who buy a brand of battery with a hall effect sensor inside, only to find it does not use a common protocol to share that information. There are hundreds of Lithium battery manufacturers, mostly in China, that have this problem.

Victron decided on an "open" approach to communicate with third party Lithium battery manufacturers and publishedan open protocol that uses CANbus.


A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. CAN also stands for Computer Automotive Network.

The key point is that a host computer is not needed. Every modern vehicle operates the mirco-computers on a CANbus in the vehicle. In fact, there are generally multple buses and speeds. It is also the basis for the marine standard referred to as NMEA , and the aircraft standard. It has a very, very clever way of broadcasting data without need of a host.

CANbus also enables multiple lithium batteries to operate as "one system" for data measurement, typically with a host battery leading the data from a linked set of lithium batteries.

There is a lot more data than just voltage and current shared over the CANbus. Battery health of cells, battery temperature and many BMS alerts are also shared over the network.

The CANbus Lithium battery therefore becomes the centre of the network broadcasting how it should be charged as well as alerts to all charge devices. It becomes the master ... as it should be.

Based on Victron's lead, Safiery has invested in CANbus controllers, much like veicle ECU's. They are robust automotive grade controllers. Safiery is committed to using CANbus for communication. Other manufacturers with closed systems use RS485. This is 30 year old technology. It is cheap and cheerful for simple applications.

Here is what we see when connect by CANbus to Safiery Lithium battery.

CANbus Controlled Lithium Battery

Once a Lithium battery broadcasts all this data, the charging system follows the lead of the battery. In the case of Victron, the charging system displays "Externally Controlled" message. The battery is visible throughout the Victron GX connected system.

CANbus Controlled Alternator charging

There are devices not manufactured by Victron that Safiery provide in the same network. So that the the system operates as a single uniform system, these are CANbus controlled in the same way and use the same battery data.

The Alternator controller and the 3kW Buck Boost both use CANbus control.

CANbus Battery Status Viewed Over Victron Remote

Connecting to the Vehicle's CANbus

This is also available with relays outputs for systems that are not CANbus enabled. Safiery have a CANbus trigger device that will give up to 6 relay outputs based on selected programmed parameters read from the vehicle's CANbus ECU. Here is a list what can be read. An example is a relay can close when a vehicle is travelling over 80km/h and the high beam is turned on- perfect for Light bars. Another example is using the vehicles key to lock and unlock the vehicle will turn off the inverter and all the internal lights in the canopy.

Up to 6 devices can be read and 6 relays open/closed. Note Engine RPM and Speed are 2 of the 6

  • Speed
  • Blinker active (left or right)
  • Bonnet open
  • Boot opened Vehicle’s remote control
  • Vehicle opened Vehicle’s remote control
  • Vehicle locked Vehicle’s remote control
  • Hand Brake applied
  • High Beam
  • Low Beam
  • Parking Lights
  • Hazard Lights
  • Engine RPM
  • Front Right Door
  • Rear Right Door
  • Front Left Door
  • Rear Left Door
  • Boot Opened
  • Reverse Selected with timer
  • Rear Fog Lights
  • Ignition On with Timed period 15 seconds
  • Ignition On with Timed period 15 seconds and vehicle speed
  • Rear Window
  • Brake Applied