Victron VenusOS driver for serial battery BMS - LLT/JBD / Daly Smart / ANT / JKBMS / Heltec / Renogy


I have created a VenusOS driver that can talk to BMS/Batteries that has serial communications (instead of the normal CANbus). RS485 & RS232 and Venus 2.60+ (including v2.80) have been tested.

Currently it works with

  • LLT Power / JBD Battery / Overkill Solar BMS
  • Daly Smart BMS / Daly Sinowealth based BMS
  • MNB spi BMS - disabled by default as it requires extra libraries installed to work. Contact @Mike Dorsett for information
  • JKBMS / Heltec
  • Renogy

The current release is on GitHub if you want to check it out.

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

There is also an auto installer using a USB Flash drive or SD card, so no root access is required and the driver can handle VenusOS updates (no need to reinstall after your update)

You can up-vote for your BMS to be added to the driver in the issue list on github.

Louis van der Walt asked
bogi999 commented ·

44 Answers

Venus OS v2.86 released


Released today. Beta aka candidate feed is unchanged: still v2.90~something.

All the best, Matthijs

Venus OS v2.86 released

- Fix communication loss issues with EV Charger

- MFD HTML5 App: Fix white screen Simrad NSX 3007, 3009 & 3012 MFDs

- Add support for new Carlo Gavazzi EM530 and EM540 meters, sub-families X and PFC. Part numbers: EM530DINAV53XS1X, EM530DINAV53XS1PFC, EM540DINAV23XS1X, EM540DINAV23XS1PFC. For now, these mainly serve as an alternative for the EM24DINAV53DISX meter, not stocked by Victron, and the recommend meter for larger systems (> 65A per phase).

- MPPT RS Fix issue with daily tracker history retrieval

mvader (Victron Energy) asked

0 Answers

Venus OS v2.90~8 available for testing


Rather short, I’ll expand this later.

Previous post:

Changes since then:

- add wakespeed support (monitoring). Requires wakespeed firmware which is not available yet! I’ll post the details of that once available. Should be within a few weeks.

- Improve Bluetooth sensor menu & options (continuous scanning, see all inserted adapters, and more)

- improve bluetooth radio on Cerbo Gx stability: if it malfunctions due to over temperature, the chances of it restarting when cooled down are now higher. But rest stays and will always remain the same for current hardware version: for any serious use, insert a usb bluetooth adapter as per manual.

- gx lte & gx gsm: Add modem username/password settings, required by some providers

- various EV Charger improvements (menu, connection stability, VRM)

- Fix the sign of the current and power for DC meters that are configured as source (except fuel cell and alternator, which were correct). broken since venus v2.80~18

- Add missing "Inverter only" mode to mobile overview

- Add support for VE.Bus BMS v2 firmware updates

- Venus OS Large: fix Node-RED Dashboard button missing on VRM and fix image selection / check for update function in online update menu.

mvader (Victron Energy) asked
nebulight commented ·

15 Answers

CAN Bus communication via VE.Can with Pylontech BMS

First of all, many thanks to the forum operators for providing and maintaining this valuable source of information. Unfortunately, my search for my specific problem did not yield any hits. Therefore I would like to make a direct inquiry in this regard:

My plant consists of:

1 x Victron Color Control GX

4 x Victron BlueSolar MPPT 150/35 solar charge controller 12/24/36/48V 35 A.

2 x Multiplus-II 48/3000/35-32 inverter (master - slave)

3 x Pylontech LiFePO4 storage 48V 2,4 kWh US2000 Plus

...the latter communicate via Pylontech BMS with VE.Can.

By a lucky coincidence I was able to get another LiFePO4 battery, also 48V and 150Ah. For this package I developed my own BMS and implemented a MCP2515 Can module for communication with the CCGX. Basically, this system is equipped with enough safety mechanisms regarding all-pole disconnection via solenoids, over- and undervoltage monitoring as well as a balancing system, so that the system could sufficiently take care of its own safety... However, CCGX, for example, only reports half the currents during charging and discharging in this constellation.

Although I found a lot of information about communication through their document VE.Can-registers-public.pdf, I find the initial basic communication a bit difficult, especially in the context of the NMEA 2000 standard used. So I would be grateful for any sample code that includes, for example, the following parameters:

- Registration of the system to CCGX with ID and an individual name.

- transmission of the measured current, so that it is added to the one transmitted by Pylontech.

- Transmission of SOC

from here I could certainly figure out all the other steps on my own.

And one final question: at what interval is the stay alive message sent from CCGX to the BMS?

Many thanks and greetings


hartmut asked
jacquesvdm answered ·

3 Answers

VRM "Firmware Update" gets stuck with "No VE.Direct ping reply" and then fails in 2.90 beta

In VRM, Device List, when i select "Firmware Update" is starts off normally but in the middle of the scan, it seems to get stuck with the message:

Status: No VE.Direct ping reply.

And then after sometime VRM states the following:

The site's two-way communication service stopped responding. Please verify the internet connection and/or try again
Error: 1303

Firmware update use to work but stopped after I successfully updated my Multiplus firmware. Multiplus is directly connected to a Venus GX via the VE.BUS RJ45 Ethernet cable. Also connected to the Venus GX is a solar charger and BMV-712 via VE.Direct 1 and 2. VRM works normally and 2-way communication is enabled, the Multiplus also works fine and I can even do a "remote VEConfigure" via VRM. I have the following Multiplus

MultiPlus 12/3000/120-50 120V

Firmware version 496

Any ideas?


joe-d asked
hrehm answered ·

1 Answer

MPPT 75/15 charging voltage configuration

Hi everyone!

I need an MPPT charger, looking for this smartsolar 75/15, but I have a question before buy it.. my batteries are 5s2p lithium, that means I need to limite the charging voltage to 21v max, can I adjust this value through Bluetooth app?


scorcher asked

0 Answers

Venus OS v2.70 - Wifi not working on raspberrypi

Testing Venus OS v2.70~15 on an Raspberry PI 3B+ and I'm not able to get the WiFi to work. Worked as expected on 2.66, but on 2.70 I just get the message "No Wi-Fi adapter connected" Any other experiencing this or have any tip to make wifi work?


vga asked
squowse commented ·

7 Answers

Online updates do upgrade large images?

I'm currently using Venus v2.80 large. Today I saw that checking for updates returned an available version. But I didn't notice that the build didn't include "large".


The update brought several problems, so I booted the previous image. The result was that the node-red user data was all wiped. Now I'm thinking if that image was the large one.


Could that be the problem? Now the situation is more tricky, because if I now try to install the large image from the repo I'll loose the old good v2.80.

seriusrod asked
seriusrod commented ·

2 Answers

Victron Multiplus ll

Hi, I have installed a Victron MultiPlus ll 12/3000. I have a flashing absorption and float LED. I have checked the software and it up to date. Im also getting a Temperature sense error but don't think its related. Any advise will be appreciated

gary-wheeler asked

0 Answers

Ve.Direct Venus OS comuniction + Rx remote on/off

Hi there,

I have 3 smartsolar 75/15 connected to a Rspberry pi 3B+.

I've already read the documentation about the Tx and Rx functionality, it seams that if I have plugged in a Ve.Direct to USB cable (which I have..) I can't use the remote on/off function on the Rx pin.

I just made some test with the solar charger plugged into the Rpi3 via Ve.Direct, charging and displaying the data on the touch screen. At this point if I make a short between Rx and Gnd pins, I do not lose connection, and the smartsolar stops charging. Then when I relese the short, the smartsolar starts charging again.

My plan is to instal a relay to make the short between Rx and GND on demand, keeping everithing connected to Venus OS at the sme time.

It is safe to do so?

Thank you

diegotam asked
wkirby answered ·

1 Answer

Victron Bluetooth BLE Protocol announcement

Hello Bluetooth-protocol-craving-developers!

Its finally here, a Victron published protocol to get data from our devices over Bluetooth Low Energy aka BLE.

By implementing this protocol, you will be able to read Victron product data such as Voltages, Currents, Power, and so forth.

Each of those values is made available as a GATT characteristic. Which is the normal way of doing that in the official Bluetooth Low Energy protocol. The advantage of doing it that way is that its relatively straight forward to use it. For example you could use a readily available app such as the nRF Connect App by Nordic (screenshot below). And also its possible to query data straight from the command line in Linux.

The details:

  • This feature adds a new BLE Service. Its a new BLE service, and its a different one than the BLE Services we use ourselves for VictronConnect communication and firmware updates.
  • The UUID for this new service is: 65970000-4bda-4c1e-af4b-551c4cf74769
  • This protocol (and its BLE service) is not the same protocol as used by VictronConnect.
  • A keep alive is required. Without that, the device will automatically disconnect after one minute.
  • For now, this new feature is available only for the SmartShunt only. It was added in SmartShunt firmware version v2.31. Also, you need VictronConnect v5.42 (or later) to enable this feature in the settings, see screenshot.


  1. Use a SmartShunt, other devices don't support this yet.
  2. Use VictronConnect v5.42 or newer.
  3. Update the SmartShunt to version v2.31 or later.
  4. Connect to the SmartShunt using VictronConnect, and enable this protocol (screenshot below)
  5. Power cycle the SmartShunt
  6. Refresh the services cache on your host (ie. phone/tablet/laptop/raspberrypi). This is done by removing the SmartShunt from the list of bonded devices, and then re-add it. This is necessary because Android, Bluez/Linux and so forth all cache the list of available services.

Now its up and running and available. On a phone, try the Nordic nRF Connect App and look for the service with the UUID ending at 4769 as listed above.

On linux, use the gattool. I found a nice primer about it: How to Get Started with Bluetooth Low Energy on Linux. And there must be many more to be found on the internet.

To find out which GATT characteristic is what, you can read the "Characteristic User Description" parameters. Currently I don't have a list of all UUIDs and what they mean.

Now, a bit more detail on the keep alive:

  • The default time-out is configered to 60 seconds.
  • The UUID for the Keep-alive characteristic is 6597ffff-4bda-4c1e-af4b-551c4cf74769.
  • Writing 0xFFFF to it disables the auto connection, resulting in a connection forever.
  • We strongly recommend not to use that 0xFFFF in a production environment. During VictronConnect development we learned the hard way that Bluetooth stacks can end up being in weird states, on the host as well as in our product; and one good way to make it robust it is to make the host send a keepalive; and make the device issue an internal disconnect when it no longer receives that keep-alive. This then resets all states and resets the rest of the stack, so its in a connectable state again.

Last, how to get the data? BLE supports multiple methods. First there is the obvious read command, which allows you to read a value, and the host (GATT Client) then sends the read command to the Victron product (GATT Server), after which the response including the data is returned.

The other method is to have the host (GATT Client) subscribe to notifications. Our implementation supports these notifications, and how they work is that whenever a value changes, its automatically sent by the Victron product to your host. Note that notifications are not acknowledged.

That is all for now. We are aiming to write this up in a more complete and technical document, but I can't promise when that is completed.

All the best, Matthijs

Picture one: the setting to enable this "third party implementation"-protocol:


Picture two, the Nordic nRF Connect App showing the voltage (0x2005 = 0x0520 = 13.12V). Note how the app Allows you to retrieve the data, retrieve the user description, as well as receive other information about the characteristic:


Picture three: how to enable notifications in the Nordic nRF Connect App.


mvader (Victron Energy) asked
deadrabbit commented ·

12 Answers

RPI relays active high or low

With SetupHelper and GuiMods the Raspberry Pi with Venus OS can make use of up to 6 relays. They are all set up to be active on low current. Many relay boards to buy are fixed to be active on high current, only some can be configured as both low or high.
Is there a simple way to edit this function (file edit with SSH) to make use of a active high relay board connected to the RPi ? And make the change survive a FW update. Or is the best way out to find relay boards that is jumper configurable.

hallstein asked
Kevin Windrem answered ·

5 Answers

remote console and ssh connect fails venus raspberry

Remote console over and ssh connection fails on raspberry pi without any system changes. Data values from smartsolar connected with USB are actuall.

Both works over several months correctly, but since today only local network access with local ip is possible. Rebooting raspi nothing changes.




Any suggestions ?

mfreinf asked

0 Answers

eicke commented Modifications



Quattro Low battery warning 3x15000 quattros 3phase

Has anyone got a Idea re this as to how to solve it THANKS.

I am getting this warning, every time I reboot the cerbo and I cant seem to stop it from happening - I know its a minor issue but it should not be occurring.

The Quattro is 3 x 15000 48 volt units 3 phase Fw 496

Cerbo fw 2.85 and currently I moved it to 2.90~10 to see if this resolved the issue (Did not)

ess installed - Sustain set to 48v - country code set to other

low battery in the ve configure set to 41v

the ESS Dynamic cut-off is set to 45v - Sustain is set to 48v

I know these ESS low voltages are a bit low but I am trying to stop this warning.

Ess is set to (See picture)

NO BMV installed just using the quattros as the battery monitor.

Happens with the BMS software removed. however the BMS ess selection was Not removed for the test (See picture)





Paul B asked
Sebastiaan Adamo published ·

1 Answer

Top Contributors - Community Supporters

Alexandra avatar image Alexandra 193 Answers & Comments
klim8skeptic avatar image klim8skeptic 160 Answers & Comments
kevgermany avatar image kevgermany 152 Answers & Comments
Matthias Lange - DE avatar image Matthias Lange - DE 151 Answers & Comments
Jason - UK avatar image Jason - UK 111 Answers & Comments
shaneyake avatar image shaneyake 103 Answers & Comments
marekp avatar image marekp 92 Answers & Comments