diy solar

diy solar

Victron VenusOS driver for serial connected BMS - JBD / Daly / ANT / JKBMS / Heltec / Renogy / Tian / ECS

Louisvdw

Solar Enthusiast
Joined
Dec 18, 2020
Messages
166
I have created a VenusOS driver that can talk to BMS/Batteries that has serial communications (instead of the normal CANbus). RS485/RS232/TTL/UART and Venus 2.80+ have been tested.

Currently it works with
  • JBD BMS (LLT Power / Overkill Solar)
  • Daly BMS (Daly Smart BMS / Daly Sinowealth based BMS)
  • ANT BMS
  • MNB spi BMS - disabled by default as it requires extra libraries installed to work. Contact @Mike Dorsett for information
  • JKBMS / Heltec
  • Renogy
  • Tian Power BMS (Revov battery / LifePower)
  • ECS (GreenMeter)
The driver will act as Battery Monitor inside VenusOS which will also publish the battery to your VRM.
The following values are included:
  • State Of Charge
  • Voltage
  • Current
  • Power
  • Can handle batteries with from 3 - 32 cells
  • battery temperature
  • min/max cell voltages
  • raise alarms from the BMS
  • available capacity
  • history of charge cycles

The current release is on GitHub if you want to check it out.
 
Last edited:
Does this have to be reinstalled after every venus firmware update?
No need to reinstall the driver. It handles VenusOS firmware upgrades gracefully.
It also has an easy installer. You don't need root access. Just download the driver to a USB flash drive (or SD card), plug it in and reboot.

The driver will act as Battery Monitor inside VenusOS and update the following values:

  • State Of Charge
  • Voltage
  • Current
  • Power
  • Can handle batteries with from 3 - 32 cells
  • battery temperature
  • min/max cell voltages
  • raise alarms from the BMS
  • available capacity
  • history of charge cycles
The only thing it does not do well yet is that the charge/discharge current limits are hard coded and it only handles 1 battery bank. This will be fixed in future builds.
 
That's great news. I can't wait for the version for Daly BMS to be released as well. I volunteer for testing!
I have a Raspberry Pi 4b loaded with VenusOS.
For that connection, we will use standard Ve.Direct USB cable to UART connector on Daly?
 
This is exciting, I am planning to load VenusOS on a pi4 once I get my system up and running. With a Daly smart with uart
 
standard Ve.Direct USB cable to UART connector on Daly
Die Daly smart BMS has a RS485 (Ve.Direct is based on RS232), so you can use Victron's RS485 cable or look at another USB-RS485 cable. Some after market cables can give issues while others do work fine. Best would be Victron's cable or a FTDI based cable
 
Will this work with the Victron Cerbo?
Yes, it should work on any GX device. From the CCGX, the VenusGX to the latest Cerbo and the built-in Multiplus GX versions as well as the Rasberry Pi. They all run on the same VenusOS.
 
Looking forward to the Daly driver code being added. Can save a fortune on a Batrium or similar BMS that speaks "Victron". Have a Pi 3B here loaded up with a touch screen. Getting the MPPT to reduce current while the BMS balances cells would be nice, and seeing all the detail on the batteries screen itself without having to pull out a phone or tablet would also be great!
 
Do you have a driver for SBMS0?
The SBMS0 does not use a MODBUS RTU based communication protocol. Instead it has it's own custom base 91encoding data dump.

So it is not a natural fit to how the driver works and I don't currently have plans to include it. But with enough people interested things can always change. Also it does seem that you will loose the wifi connection when you want to use the UART for a data connection
 
There is a Chargery driver already, but it should be easy enough to add support for that BMS this this driver.
or https://github.com/magpern/venus-chargerybms
Thank you very much, i will try this.
Little bit offtopic: Do you think its possible to get other devices with serial port like an Grid tie Inverter integrated in the Victron Ess?
 
other devices with serial port like an Grid tie Inverter integrated in the Victron Ess
Possibly, but I have not looked at this so this would just be speculation. It would depend on what data you want to share and what is used and required.
 
I have not seen their comms protocol published anywhere. If can find their protocol I can add them to the list.
This is all I could find. Not sure if it applies to their batteries.
 

Attachments

  • ROVER MODBUS.pdf
    328.2 KB · Views: 51
Quick Question:
Do I also need a shunt in my system if my BMS is being monitored? I was going to use the Victron Smartshunt until I found this.
More details:
I am building 2 - 12V 310Ah banks with a JDB BMS on each. My system will be monitored with a Raspberry Pi 4 with VenusOS. I want to get the JBD BMS communicating with the Pi using this method.
My system will be wired mostly like this:
 
Quick Question:
Do I also need a shunt in my system if my BMS is being monitored? I was going to use the Victron Smartshunt until I found this.
More details:
I am building 2 - 12V 310Ah banks with a JDB BMS on each. My system will be monitored with a Raspberry Pi 4 with VenusOS. I want to get the JBD BMS communicating with the Pi using this method.
My system will be wired mostly like this:
I can't speak for the JBD BMS, but I would use a shunt. My Daly is very inaccurate showing amps in or out. Using voltage as a SOC is not that accurate for LiFePO4 cells or packs. You have the Pi already, only makes sense to track in/out for the packs.
 
Quick Question:
Do I also need a shunt in my system if my BMS is being monitored? I was going to use the Victron Smartshunt until I found this.
More details:
I am building 2 - 12V 310Ah banks with a JDB BMS on each. My system will be monitored with a Raspberry Pi 4 with VenusOS. I want to get the JBD BMS communicating with the Pi using this method.
My system will be wired mostly like this:
The JBD does have a shunt built it. Once you set up your BMS with the size cells you have I find it very accurate.
It does not use the voltages for SOC. As such when you begin with the BMS it will assume a starting SOC and calculate the min/max from there. This will naturally not be 100% what the cells are at, so I found that it will block charge with the first full charge and then reset the SOC from there. The BMS will also adjust your battery capacity (default is max 10%) if you set it wrong.
 

diy solar

diy solar
Back
Top