diy solar

diy solar

BMS that doesnt mess with the coulomb counting?

squowse

Solar Enthusiast
Joined
Jan 4, 2021
Messages
586
I am getting so sick with JBD and JK BMS doing weird things with the state of charge measurement. It is not always practical or desirable to completely cycle a battery just to keep the bms happy.

One lost coulomb counting because of premature low cell voltage due to high discharge. So it went to 0% prematurely. Charged it back up to 100% and tripped the cell over voltage (deliberately). Down to cell under voltage again then ready for the charge back up. Its now decided its at 29%!

Would be amazing if a bms firmware had the option to just input the state of charge and let coulomb counting do the rest.

Please tell me there is one out there ?
 
I am getting so sick with JBD and JK BMS doing weird things with the state of charge measurement. It is not always practical or desirable to completely cycle a battery just to keep the bms happy.

One lost coulomb counting because of premature low cell voltage due to high discharge. So it went to 0% prematurely. Charged it back up to 100% and tripped the cell over voltage (deliberately). Down to cell under voltage again then ready for the charge back up. Its now decided its at 29%!

Would be amazing if a bms firmware had the option to just input the state of charge and let coulomb counting do the rest.

Please tell me there is one out there ?

So you want a BMS that in no way reports SoC?

I think you're asking for the wrong thing.

What it sound like to me is that you're dealing with an imbalanced battery operating at the extreme limits of the BMS and/or cell capabilities.

What you're seeing is not issues with coulomb counting but issues with voltage overrides to SoC. You want a BMS that never overrides the coulomb counting with voltage. It makes intuitive sense to a BMS that if a single cell hits empty, the whole battery is at 0%. It also makes sense that if a single cell hits full, the entire battery is full. That's why it overrides the counted SoC.

I don't see that cycling a battery is ever necessary to "keep the BMS happy." With JBD anyway, simply set the full charge voltage to something sensible that represents full charge and then fully charge it a couple times a week.
 
I am in a different situation than the OP and agree with the post from @sunshine_eggo that the OP is looking for the wrong thing. The SOC generated by my SolArk is not very reliable. However my Orion JR BMS has always been very reliable in the eight years I have used it. Therefore one of the main reasons for me to have closed communication is to use the SOC of the BMS to drive the programming of my SolArk
 
Yes I want the option to disable the voltage overrides as they are nearly always incorrect and unwanted. BMS seems to carry on doing them until it recognises a whole cycle.
 
Last edited:
I want the option to disable the voltage overrides as they are nearly always incorrect and unwanted
The voltage overrides are configurable, so if you set them to a sensible value (as @sunshine_eggo suggested), I don't see how they would be incorrect.

If you set the 'full voltage' to say 3500mV and 'end voltage' to say 2800mV, then the JBD will readjust its SOC to 100% or 0% accordingly if you reach those values - between that, it will do coulomb counting to give you its best estimate of SOC.

If you want to manually set the SOC to a given value, then first make sure the individual cell voltages are set to sensible values for each 10% SOC setting. Then, with the battery pack disconnected (so there is no active charge or discharge going on), just do a "save" settings to the JBD. That will trigger the JBD to adjust its SOC according to the cell voltages in the SOC table.

e.g. if you have defined 30% SOC as 3280mV and 40% SOC as 3290mV and the lowest cell voltage is at (say) 3285mV then, when you do a 'save' settings the JBD will interpolate the reading and set its SOC to 35% in that example.

Obviously over time, the calculation may drift, but if you charge to 100% from time to time, it will re-calibrate itself.

If the BMS is not keeping SOC correct at all, have you double checked that the 'cyclic capacity' setting matches that of your battery pack? e.g. 280000mAh for a 280Ah pack?

Final thought... I found my JBD overestimated discharge a little bit, so by tweaking the 'cyclic capacity' up a bit (I set mine to 320000mAh for a 280Ah pack) it seems to keep good track of SOC now.
 
The voltage overrides are configurable, so if you set them to a sensible value (as @sunshine_eggo suggested), I don't see how they would be incorrect.

If you set the 'full voltage' to say 3500mV and 'end voltage' to say 2800mV, then the JBD will readjust its SOC to 100% or 0% accordingly if you reach those values - between that, it will do coulomb counting to give you its best estimate of SOC.

If you want to manually set the SOC to a given value, then first make sure the individual cell voltages are set to sensible values for each 10% SOC setting. Then, with the battery pack disconnected (so there is no active charge or discharge going on), just do a "save" settings to the JBD. That will trigger the JBD to adjust its SOC according to the cell voltages in the SOC table.

e.g. if you have defined 30% SOC as 3280mV and 40% SOC as 3290mV and the lowest cell voltage is at (say) 3285mV then, when you do a 'save' settings the JBD will interpolate the reading and set its SOC to 35% in that example.

Obviously over time, the calculation may drift, but if you charge to 100% from time to time, it will re-calibrate itself.

If the BMS is not keeping SOC correct at all, have you double checked that the 'cyclic capacity' setting matches that of your battery pack? e.g. 280000mAh for a 280Ah pack?

Final thought... I found my JBD overestimated discharge a little bit, so by tweaking the 'cyclic capacity' up a bit (I set mine to 320000mAh for a 280Ah pack) it seems to keep good track of SOC now.
No i dont want the voltage overrides at all. Once its done one (including any time the configuration is altered) it needs a full cycle before it returns to coulomb counting. Drift doesn’t bother me - i could correct that if needed.

I started off doing what you described, trying to trick it into doing what i wanted. But it still changes the SoC according to the voltage and gets it wildly wrong. The voltage of lifepo4 cells is not a very reliable way to judge SoC. Unlike what we might do, it doesn’t wait for zero current and allow the cells to rest before it changes the SoC unbidden. Thats why i want the option to disable.
 
A lot of answers saying the BMS knows better than me where the SoC is ?
 
No i dont want the voltage overrides at all.
That's the most important job of a BMS, watch for over and under voltage cells. To protect the cells and you.

Also, if you aren't happy with the SOC reported by the BMS (but otherwise it's is working) the simplest answer is to just ignore the SOC. Every single BMS I have seen includes SOC.
 
That's the most important job of a BMS, watch for over and under voltage cells. To protect the cells and you.

Also, if you aren't happy with the SOC reported by the BMS (but otherwise it's is working) the simplest answer is to just ignore the SOC. Every single BMS I have seen includes SOC.
Whats the protection got to do with it?
I want to use the coulomb counting of the SoC, I don’t want the voltage overrides. The victron Smartshunt does it well but i dont want to spend and extra £120 on each battery when there is a shunt built into each BMS. Its just a software quirk.
 
Only if you "save" settings to it. Under normal operation it just does coulomb counting unless it hits max or min cell voltages as I mentioned in post #5.

Edited to add, but like even a victron smart shunt it will drift from true SOC over time, hence the need to charge to 100% every week or three.

Edited again to add.. like @RCinFLA just mentioned on this thread..
 
The drift I can handle.

The BMS resets to its SoC eatimate based in voltage under several circumstances.
Cell over and under voltage protection being one. Adjusting settings being another. Also fairly randomly sometimes. It settles down once you’ve done a full cycle top to bottom and back again. This is not always possible.

I am kind of repeating myself a lot here.
 
It would be nice to be able to manually enter a SOC value and / or be able to manually trigger the battery full level. That seems like it would be a fairly simple change to the programming.
The most frustrating thing with the JBD is when you change a setting and have to mess around with it to get it back to coulomb counting ..... same thing when you initially start it up.
It's also ridiculous to have to trigger and over voltage protection or under voltage protection to get the SOC to reset .... I think that's what's necessary with the JK.
 
Cell over and under voltage protection being one.
Well, if that is happening something else isn't working as it should. I've never had that happen in 15+ months of using mine. And surely if that happens then SOC being set to 0 or 100 is appropriate.

Adjusting settings being another.
Yes, correct.

Also fairly randomly sometimes. It settles down once you’ve done a full cycle top to bottom and back again.
Really random? I've never had that happen in 15+ months of using mine.
 
It would be nice to be able to manually enter a SOC value and / or be able to manually trigger the battery full level. That seems like it would be a fairly simple change to the programming.
Yes I agree, that would be nice to have. Shame they didn't think that option through.

The most frustrating thing with the JBD is when you change a setting and have to mess around with it to get it back to coulomb counting
It coulomb counts by default - it's just the starting point that it guesses from cell voltage.

It's also ridiculous to have to trigger and over voltage protection or under voltage protection to get the SOC to reset .... I think that's what's necessary with the JK.
That would be ridiculous, but that is not correct. You only need to trigger "full voltage" and "end voltage" which are typically set much more conservatively than over-voltage and under-voltage protection values.

My full voltage is set to 3500mV whereas over-voltage protection is set to 3650mV, for example.
 
It would be nice to be able to manually enter a SOC value and / or be able to manually trigger the battery full level. That seems like it would be a fairly simple change to the programming.
The most frustrating thing with the JBD is when you change a setting and have to mess around with it to get it back to coulomb counting ..... same thing when you initially start it up.
It's also ridiculous to have to trigger and over voltage protection or under voltage protection to get the SOC to reset .... I think that's what's necessary with the JK.
Yes that’s exactly what I’m taking about ?
 
Yes I agree, that would be nice to have. Shame they didn't think that option through.


It coulomb counts by default - it's just the starting point that it guesses from cell voltage.


That would be ridiculous, but that is not correct. You only need to trigger "full voltage" and "end voltage" which are typically set much more conservatively than over-voltage and under-voltage protection values.

My full voltage is set to 3500mV whereas over-voltage protection is set to 3650mV, for example.
Ive found from experience that it is necessary to trigger the over and undervoltage to reliably perform the capacity calibration. Thats with JBD.
 
Ok - maybe different firmware then - mine's an Overkill badged JBD.
 
Back
Top