DIY Serial battery driver for Victron GX

Thanks for the link …
Problem is that its only worth using an ANT with your solution if there is a readily available external interface on the BMS with the required protocol. Soldering voids warranty and a different protocol would mean extra work again.
As said already, I will test on the spare ANT next days …

I still have the DALYs and perhaps two LLTs the next days for testing (also in parallel maybe?).

With the BMS order, there may be a spare BMS with UART and RS485 port … just putting it out there.

That is a true story :slight_smile:


Did you had to solder stuff, or could you use the LCD unit for a UART?

What do you mean?

From here: BMS Group Buy

One of the original buyers has 2 x BMS’s they want to sell once they arrive.

I never got around to it, there is another BMS on a freight ship with my name on it

correction: on a flight that has not departed yet :smiley:

I am not really getting it, sorry. Has anybody seen a single ANT BMS with a UART interface yet? I am not able to find one …
And if not, I will probably stop trying to use it. The LLTs will hopefully work when they arrive.

@TheTerribleTriplet I may be back in - let me know when you get them and I’ll confirm.

Remind me …

1 Like

My Raspberry Pi has arrived, Venus OS installed and then I fired up my spare DALY Smart BMS for some tests. I have modified the ‘read_serial_data’ in’’ to work with (only) the DALY protocol and I get an answer from the BMS via RS232 and data and checksum are decoded successfully. The ‘Venus’ reacts with showing the device. Data is not decoded by now and the code is throwing some decode errors because some data is missing (e.g. hardware version).
Python is not my ‘mother tongue’, so I will stop here because the final driver should integrate different BMS protocols and that is too difficult for me at the moment.

This is the status now, so I am ready for testing something serious … :slight_smile:

That is good news. Perhaps you can PM me your changed read_serial_data function.
So far I have build the Daly class and now need to change the read_serial_data to work with multiple batteries. I’ve done some changes there for the Daly, but to look at your changes will confirm my changes. Then I can create a pre-beta build for you to run a test on.


i have the same problem.
After installing the BMS Driver the venus os dosn`t find any SmartSolar chargers anymore.
Waiting will not solve the problem.
My serial Adapters have serialnumbers, but there is a solution.

if i comment both lines out in /data/conf/serialstarter.d
and than reboot it will find my smartchargers again within 1 minute.

Than i removed the # in both lines of /data/conf/serialstarter.d
after that i started the driver in /opt/victronenery/serial-starter/ ./

and now i see my smartchagers and the battery.

Is there an easy way to start the driver with an delay of maybe 60 seconds?

@SchonRichtig which version of the driver are you using? The new build V04?
There is no way to delay that I know of, but perhaps there is a way so that the driver is started last.

Tell me are you connecting using a RS485 or RS232 cable?

I have the problem with Version 0.3 and 0.4 of the driver.
Also with Venus OS 2.60, 2.65 and 2.66.
RS232 Connection tried FTDI and PL… Adapters.
when the driver is installed i cannot use the victron devices anymore.

Im not good in linux, but this shourd be a way to delay a service in linux:
But i dont know where to put it in :slight_smile:

ExecStartPre=/bin/sleep 60

@Louisvdw Thank you very much for your work!

I got it to work with my serial adapters only by editing the rc.local in /data:

ln -s /data/etc/dbus-serialbattery /opt/victronenergy/dbus-serialbattery

sleep 60

mv /data/conf/serial-starter.wait /data/conf/serial-starter.d

./opt/victronenergy/serial-starter/ &

sleep 60

mv /data/conf/serial-starter.d /data/conf/serial-starter.wait

So i think this is not the finest way to rename files with delay, but it works :slight_smile:

1 Like

@Louisvdw Quick question, did you find a way to get 2 or more bms units connected in parallel to communicate to the GX?

Yes I’ve worked out how, but we’ve had lots of delays on my 2nd BMS so that I can make sure it all works as expected (i.e. test it). The BMS is on it’s way now though.

Cross your fingers yes!!!

@SchonRichtig there is a new build which should solve the issue where this driver disables other components. Now you should not need any sleep functions.
Just update to the latest release (v0.4)

curl -s | grep "browser_download_url.*gz" | cut -d : -f 2,3 | tr -d \" | wget -O venus-data.tar.gz -qi - | tar -zxf venus-data.tar.gz -C /data