diy solar

diy solar

YamBMS JK-BMS-CAN with new Cut-Off Charging Logic (open-source)

As a test - Right now its discharging
you would expect that it stops at 10% Or at least when the cell voltage reaches the cut of point set on th eBMS (3.34 0% SOC and even 3.33 UVP )

but it goes past it, bcos i think the current drives the voltage and therefore we do not know the true voltage when the current is flowing

View attachment 200819
3.33 V / cell UVP ???

You are NOT using LiFePo4 / LFP then !

Of course you can hit UVP during a "load step" but for LiFePo4 UVP is typically 2.50 V / cell (absolute minimum) to 2.7 V - 2.8 V / cell.
 
3.33 V / cell UVP ???

You are NOT using LiFePo4 / LFP then !

Of course you can hit UVP during a "load step" but for LiFePo4 UVP is typically 2.50 V / cell (absolute minimum) to 2.7 V - 2.8 V / cell.
Lithuim ....
# Data Sheet - Operating Voltage
46v (3.28) to 57v (4.07)
 
As a test - Right now its discharging
you would expect that it stops at 10% Or at least when the cell voltage reaches the cut of point set on th eBMS (3.34 0% SOC and even 3.33 UVP )

but it goes past it, bcos i think the current drives the voltage and therefore we do not know the true voltage when the current is flowing

View attachment 200819
Up date - This time it stopped (Expected Behaviour )

1709907591279.png

so its a hit and miss...
 
3.33 V / cell UVP ???

You are NOT using LiFePo4 / LFP then !

Of course you can hit UVP during a "load step" but for LiFePo4 UVP is typically 2.50 V / cell (absolute minimum) to 2.7 V - 2.8 V / cell.
Inverter necessary setup screenshot is above in previous post.
 
Well if your capacity is wrongly set the SOC value is wrongly calculated.

Then you hit UVP before inverter/bms says SOC too low ...
No,
The 0% SOC is 3.34
UVP is 3.33
it should stop at 3.34
and i use UVP as backup so it does not fall too below the inverter 10% Overdischarge SOC
 
No,
The 0% SOC is 3.34
UVP is 3.33
it should stop at 3.34
and i use UVP as backup so it does not fall too below the inverter 10% Overdischarge SOC
Your SOC was not 0 at 3.34V.

I said it before and say it again: "coulomb counting" / integration. Your SOC is NOT determined based on the voltage. Your 100% SOC is defined after equalization at the highest operating voltage for enough time as required by your cells to balance.

Then your SOC gets updated based on a balance of current in / current out of the battery.

In mathematical terms:

SOC(t + dt) =SOC(t) + 1/C * I(t) * dt

So if C is wrong so is the rate of change of your SOC ...
 
Then you hit UVP before inverter/bms says SOC too low ...
Nothing to tell the inverter it has reached 10% , no link, which is my point ....the link would have been - in the YAML script some little arithemtics to trick the inverter into thinking its at 15% when it reaches BMS 0% SOC.
Thats what i am asking the developers to consider
 
Your SOC was not 0 at 3.34V.

I said it before and say it again: "coulomb counting" / integration. Your SOC is NOT determined based on the voltage. Your 100% SOC is defined after equalization at the highest operating voltage for enough time as required by your cells to balance.

Then your SOC gets updated based on a balance of current in / current out of the battery.

In mathematical terms:

SOC(t + dt) =SOC(t) + 1/C * I(t) * dt

So if C is wrong so is the rate of change of your SOC ...
I said it before and say it again: "coulomb counting" / integration. Your SOC is NOT determined based on the voltage. Your 100% SOC is defined after equalization at the highest operating voltage for enough time as required by your cells to balance.

O.k i hear you ... i was with the impression the % is affected by the margin between 0% SOC and 100% SOC...i can swear i have seen it adjust when i adjusted the SOC upper and lower end...
 
I said it before and say it again: "coulomb counting" / integration. Your SOC is NOT determined based on the voltage. Your 100% SOC is defined after equalization at the highest operating voltage for enough time as required by your cells to balance.

O.k i hear you ... i was with the impression the % is affected by the margin between 0% SOC and 100% SOC...i can swear i have seen it adjust when i adjusted the SOC upper and lower end...
 
O.k i hear you ... i was with the impression the % is affected by the margin between 0% SOC and 100% SOC...i can swear i have seen it adjust when i adjusted the SOC upper and lower end...
What you seem to be asking is more of an alternate voltage-based minimum (with some time filtering of course) that would correspond to your theoretical 0% SOC.

Because no matter what, if your capacity is wrong, whether it's 0% SOC or 10%, it will be wrong.

You could try to ask for a "3.34 * 14" in your case voltage minimum (maybe with a bit of margin etc) and some time filtering. That would help you in the "long term", but if you have a load step on the output of your inverter when the battery is almost fully discharged already, it won't take much to hit UVP ANYWAYS when all you have left is maybe 0.1-0.2V TOTAL (not per cell).

The "solution" in my case was to install a variable charger in parallel to my battery, which will always ensure a minimum voltage.

But to each their own :) . I also have to deal with inefficiency due to double power conversion etc.
 
Your SOC was not 0 at 3.34V.

I said it before and say it again: "coulomb counting" / integration. Your SOC is NOT determined based on the voltage. Your 100% SOC is defined after equalization at the highest operating voltage for enough time as required by your cells to balance.

Then your SOC gets updated based on a balance of current in / current out of the battery.

In mathematical terms:

SOC(t + dt) =SOC(t) + 1/C * I(t) * dt

So if C is wrong so is the rate of change of your SOC ...
Also - i kind of suspected this was the case - so i have been playing aorund with the Ah to try and get the Batt 1 align with Batt-2, but have not succeeded yet, sometimes it batches then after some time it lags .....i guess this is the draw back with no RS485 comunication between both setup.
 
Also - i kind of suspected this was the case - so i have been playing aorund with the Ah to try and get the Batt 1 align with Batt-2, but have not succeeded yet, sometimes it batches then after some time it lags .....i guess this is the draw back with no RS485 comunication between both setup.
I think MQTT is fine. You are refreshing your SOC at 5s intervals max. That is plenty. You have 3x less capacity per battery bank than me, but it takes several MINUTES to even have 1% SOC variation to me (and I use/have more power). I still suspect you didn't top balance the pack and/or leave it at high voltage enough for the SOC to correctly "reset" to 100%.

It's also possible your batteries have different capacities. Or you have a cell that "stands out" in terms of low(er) capacity.

For current real-time could be important. For voltage/temperature, not so much (unless you are interested in the instantaneous voltage drop when you have a load step of course, but you might also be "panicking" for nothing if you look at that).
 
I think MQTT is fine. You are refreshing your SOC at 5s intervals max. That is plenty. You have 3x less capacity per battery bank than me, but it takes several MINUTES to even have 1% SOC variation to me (and I use/have more power). I still suspect you didn't top balance the pack and/or leave it at high voltage enough for the SOC to correctly "reset" to 100%.

I still suspect you didn't top balance the pack and/or leave it at high voltage enough for the SOC to correctly "reset" to 100%.

Yup - You might be right there, bcos i have not been able to get them both to absolute 100% yet
90% batt-1 and batt -2 maybe 80


It's also possible your batteries have different capacities. Or you have a cell that "stands out" in terms of low(er) capacity.

They are both built out of same model same capacity battery GBLI5001

but i suspect one performs more that the other...but the average voltage are always matched, if you look at the screenshot i sent..
 
Yup - You might be right there, bcos i have not been able to get them both to absolute 100% yet
90% batt-1 and batt -2 maybe 80
Remember to leave them at the high voltage for at least 12-24 hours. Otherwise the lowest-voltage cell will SKEW the whole thing.

Lithium is not as flat as LiFePo4, but I believe you could have the same problem if your voltage was not applied high enough for long enough.

Look more at the cells individual voltages during equalization. Remember, your "Whatever" SOC value is totally irrelevant, if (and before) the pack was not fully charged & balanced.
 
They are both built out of same model same capacity battery GBLI5001

but i suspect one performs more that the other...but the average voltage are always matched, if you look at the screenshot i sent..
The average doesn't matter much if your system is not linear at all. Look at all your 2 packs x 14 cells individual voltages. And ... again ... at the TOP of the charge curve with enough voltage for enough time.

What about cable lengths ? Are you sure they are the same to both batteries ? That would always pull more current from one battery, then the other would discharge into the first one.
 
The average doesn't matter much if your system is not linear at all. Look at all your 2 packs x 14 cells individual voltages. And ... again ... at the TOP of the charge curve with enough voltage for enough time.

What about cable lengths ? Are you sure they are the same to both batteries ? That would always pull more current from one battery, then the other would discharge into the first one.
Approximately the same length - yes

thanks for your energy...


#Edit
1709910827321.png
 
Remember to leave them at the high voltage for at least 12-24 hours. Otherwise the lowest-voltage cell will SKEW the whole thing.

Lithium is not as flat as LiFePo4, but I believe you could have the same problem if your voltage was not applied high enough for long enough.

Look more at the cells individual voltages during equalization. Remember, your "Whatever" SOC value is totally irrelevant, if (and before) the pack was not fully charged & balanced.
I will....
 
@Der_Hannes: One feature request from my side would be to set a slew-rate when e.g. setting absorbtion/equalization voltage.

Combined with load steps (and possibly a too OVPR of 3.45V when OVP is 3.60V) I can get lots of on-off etc (see purple curve)
1709912944863.png

Basically to make sure that the "tail current" is always kept relatively small.

Here, if you look at the current waveforms (possibly due to OVPR being too low, thus applying a 16 x (3.60V-3.45V) = 2.4 V step when OVPR is triggered, there is an overcurrent of approx 50A and another OVP soon thereafter.

1709913090737.png

Of course using your solution the aim would be to immediately LOWER the absorbtion/equalization voltage to AVOID OVP in the first place.

But does it actually do so ? Like setting the reference current (for the inverter) to zero or lowering the reference voltage (again, for the inverter) ?
 
Last edited:
I have decided and i want my 0% JKBMS SOC to be 3.34, My Solis Overdischarge SOC is currently set at 10% - but the issue is there are no arithmetics to my knowledge to tell the Solis that 0% means 10% or to tell the ESP that when BMS says 0% it means 10% (as the Solis only work by the percentage and not the cell SOC set voltages)

When BMS reaches 10 percent how will solis know this - it only knows of BMS's 0% - therefore it will let it drain to 0% and the only thing that tell the Solis to stop is the protection settings set on the BMS....this is a GAP

you understand?

# Edit
The Solis doesn't even know of the BMS 0% it just stops based on the BMS protection settings kicking in....
If the Solis Overdischarge SOC is set to 10%, then as soon as the BMS reports 10% to the Solis, use of the battery for power by the Solis should stop. Are you saying that is not happening? :unsure:
 
If the Solis Overdischarge SOC is set to 10%, then as soon as the BMS reports 10% to the Solis, use of the battery for power by the Solis should stop. Are you saying that is not happening? :unsure:
It was not happening ... i am gonna keep an eye on it and see if it goes wrong again.......and report back here
 
It was not happening ... i am gonna keep an eye on it and see if it goes wrong again.......and report back here
My bet is that your initial capacity was too high thus the JK BMS "thought" it still had "enough" SOC while in reality it was just about to drop off a cliff (UVP). Or, again, algorithm not properly reset due to insufficient voltage / time at the high end. Or balancing issues.

I did the same mistake myself a few days/weeks ago ...
 

diy solar

diy solar
Back
Top