DIYBMS v4

Thank you for the detail - this is going to take some explaining to “average” user :slight_smile:

Do you know of any off the shelf BMS units which do similar ?

More than 6 months in continuous operation and no heating problem

image
image

2 Likes

If you’ve not seen my latest video, heres a link to it - LIFEPO4 48V setup including DIYBMS modules & controller.

1 Like

yes works good
but only with the 5000 speed rate, 9600 cause communication problems
do you have the same expierience?

Yes, I have the same problem, but it didn’t even occur to me that it could be a problem with the board, I also have them at 5K. The speed is enough because I will not pass in the best of cases 48 modules (now 36) do you think that this speed limitation is a consequence of the design of the board? I could revise the layout to increase the thickness of the data tracks a bit, but I’m not sure there’s room.

I love how your setup looks, is the other BMS a Seplos? Do they work simultaneously? no interference? At the time I tried to combine DIYBMS with a capacitor BMS and the result was not good.

I have done a small (cough) rewrite of the communication protocol that speeds up the whole thing a lot, despite the low baud rate. Smaller header, variable-length packets, concurrent send and receive.

If somebody wants to integrate these changes into the diyBMS controller code, I’m happy to help; I do have provisional patches. Problem is, the controller code I’m using on my own systems is written in MicroPython …

1 Like

i think the 9600 com problem is because the data track on the board is to close to each other so normaly you twist the com wires to avoid problems

maybe it will be better to use through hole contact and solder twisted wire for the communication so you have more room for current tracks and temperature sensors.
or place the com tracks as short as possible on the board in 5mm distance to each other and the longer ones make through hole for cable soldering
maybe it will solve that problem

the seplos works fine with the diy bms.
the seplos is a backup if somthing is going wrong with the diy bms so the seplos do the disconnect the diy bms do the balancing because the seplos can only balance with 150ma

and the diy bms is to slow even with 9600com on 32 modules i have now 16 but will use another 16 in future
so the seplos disconnect really fast
i have peak charge power of 10kw on a 23kwh battery now, another 23kwh is in costruction

That may be one of the issues, but the major factor if the optoisolator switching speed - its not a “digital comms” isolator (which are generally more expensive) so only supports switching speed.

I’ve got mine running at 10,000baud without comms issues, but it really does depend on how the cables are run and what EMI is picked up from other electronics - especially when high power charge/discharge is going on.

10,000baud is the max I can get out of the standard isolators and to be fair, there isn’t really a need to go quicker, unless you have hundreds of cells.

Would be interested to take a look, I also started down the route of variable-length packets as that will save quite a bit of time, but felt like an over optimisation for most people who are using 8-16 modules, so I spent my time doing other changes/fixes.

The archive is at GitHub - M-o-a-T/diyBMS-code: diyBMS v4 code for the ESP32 and new controller hardware .

NB: I also removed the floating-point code from the cells. Doing math is the controller’s job IMHO. The fact that even with the comms enhancement there’s now 1k of free space in the cells’ flash to play with / add debug code to doesn’t hurt either.

even with 10k it is to slow for me with 32 modules the voltage rises so fast at the end on lifepo it need a update maximum in one second

thats why im charging only to 3,5v to have a safety margin to 3,65v disconnect.
the seplos bms does a lightning fast disconnect while the diy bms is still updating…

… and that’s exactly why I implemented dynamic maximum voltage. When you do that, this basically cannot happen.

I do not want my BMS to disconnect. Ever. If it does that, something is wrong.

1 Like

yes i read your post about the mod.
but im to dumb for an integration

waiting for stuart to make a new firmware. thats easy for me to program

stuart has now his own lifepo battery maybe he can test it first

Are you using a charger which can be remotely controlled (over can?)

yes
victron mppt 450/100 and the sunny island
both with can support the 450/100 is controlled by venus os and the sunny island direct from the diy bms

Ok, in the next few days I’ll take a look at the interesting work @Smurfix has done and see how best to integrate some of those changes into the controller to control the charging voltage.

3 Likes

thank you
i think you should focus on pylontech canbus for new firmware builds
because it works with many inverters(sma, deye, voltronic etc.) also with the cerbo gx

Pylontech is pretty much done now. There are better protocols to emulate though, but do agree that the Pylontech is as generic as it gets.

Does the pylontech work on rs485 or is it just can at the moment? Thanks

Only CANBUS.