diy solar

diy solar

JK BMS - Does It Recalculate Capacity?

power.esrl3

New Member
Joined
May 16, 2022
Messages
38
I have exhausted all my research capabilities regarding this matter, but I haven't found any specific answer to this question.

You see, Pace BMS such as in SOK or Jakiper, etc, when you do a full cycle (charge, discharge, and recharge to their limit protection), they recalculate their actual capacity.

I wonder if JK BMS does this? JK-PB2A16S20P to be specific. But the answer should to all iteration I guess?

TIA
 
Good question...
All I know is that my JKs will jump to 100% SOC if cell OVP is reached, or to 0% SOC when cell UVP is reached.
What happens in between? I don't really know, but would also like to find out.
 
All Columb counters work basically the same way.

It counts the incremental amp-seconds of charge (positive) and discharge (negative) battery current, then subtracts this from given battery AH size setting to get % of full charge. The unit may have a 'fudge factor' multiplication, particularly for charging efficiency or higher current rate where battery internal losses increase. LFP cells are very efficient for charging and discharging so do not need much 'fudging'.

Be careful on battery monitors that may have their fudge factor settings defaulted for lead-acid batteries. They need to have the fudge factor settings changed for LFP battery.

It is a bit like dead-reckoning navigation. You do need to get a known reference point every so often to wash out errors. The known reference point is usually a full charge condition.

It needs to be given the battery AH size and a reference point of SoC. How it gets these varies between battery monitors/BMS's.

Battery AH size is either setup by user or 'learned' by a full discharge cycle. I prefer direct user setting as auto-learning of battery AH size is prone to errors.

The reference SoC usually requires a full charge on battery which is triggered by battery voltage at full charge for given battery chemistry.

Many BMS's require charging to point of tripping a cell overvoltage charge shutdown to cause Columb counter to be reset to 100%. Some allow user to set battery trigger voltage for what is to be considered full charge. I prefer user set battery full trigger voltage and think it is rather stupid to require a cell overvoltage shutdown of charging to reset Columb counter.

The older JK BMS's do Columb counter reset on cell overvoltage trip. The larger recently released JK BMS with top end charging current DC to DC converter allows user to set battery voltage trigger point for full state of charge Columb counter reset.

When full charge state reset occurs at full charge, it may cause the jump in SoC display, which is the washing out of cumulated errors, resetting SoC to 100%.

It is important that cells are fairly well balanced when full charge reference is taken.

BMS's that do the automatic AH determination by full discharge cycle often do an initial estimate on SoC by battery voltage measurement at zero current to get the % SoC indicator started. The SoC % from initial voltage measurement is very poor accuracy. You need to ensure there has been no charging or discharging current on battery for about 5 minutes to allow cell voltage to reach its SoC equilibrium.

There is always some errors accumulated over time, primarily due to inaccuracy in current measurement particularly at low discharge currents, that needs to be washed out periodically by a full charge reset. Failure to allow a full charge reference reset every few months results in continually degrading SoC % accuracy.
 
Last edited:
Can't rely on coulomb counter too much if the pack has cells with high self-discharge rate.
The BMS doesn't take account of cell self-discharge rate.
In my case with JKBMS-inverter comm model and growatt inverter. When the coulomb counter causes the SOC % to reach 100% (instead of being triggered by "SOC-100% voltage" value in the app), growatt inverter basically stopped the charging if BMS communication is utilized. Due to few my Sinopoly cells have high self discharge rate, my battery pack is never fully charged and eventually the SOC % will be inaccurate until it caused UVP shutdown.
 
Can't rely on coulomb counter too much if the pack has cells with high self-discharge rate.
The BMS doesn't take account of cell self-discharge rate.
In my case with JKBMS-inverter comm model and growatt inverter. When the coulomb counter causes the SOC % to reach 100% (instead of being triggered by "SOC-100% voltage" value in the app), growatt inverter basically stopped the charging if BMS communication is utilized. Due to few my Sinopoly cells have high self discharge rate, my battery pack is never fully charged and eventually the SOC % will be inaccurate until it caused UVP shutdown.
Self-discharge of battery is another reason you need to have a full charge reference reset periodically. If you have higher than normal self-discharge leakage on battery you need to do a full charge reference reset more often to wash out the SoC errors accumulated for unaccounted for self-discharge.
 
Self-discharge of battery is another reason you need to have a full charge reference reset periodically. If you have higher than normal self-discharge leakage on battery you need to do a full charge reference reset more often to wash out the SoC errors accumulated for unaccounted for self-discharge.
That why I stopped using the BMS communication and I stick with USE mode instead........I don't want to do full charge reference once every one month just for sake of BMS communication with inverter......too much hassle.
 
Thank you all for your replies. Thats a lot of technical info, and I'm very grateful for it.

I totally accept the inaccuracies of these BMSes when in terms of their coulumb counters, and all the other factors that affects their accuracy.

What I just want to know if JK BMSes especially their new variants JK-PBxxx, if they behave just like the PaceBMS wherein you set a designed capacity but upon full cycle will give you a newly calculcated capacity apart from the user set capacity.

Why does this matter for me? Well, I want to have an "actual ballpark". You know. Just to "confirm" my "actual capacity". Smart shunts would totally solve this conundrum, but Pace's feature has been enough for my requirement.
 
Why does this matter for me? Well, I want to have an "actual ballpark". You know. Just to "confirm" my "actual capacity".
I found myself checking the battery voltage to "confirm" my battery SoC.

People hate hearing this but after a while, i found that i learned how my RV battery and my home battery SoC correlated to voltage.
My home system's Victron BMV shunt displays voltage and thats all i check when i am curious.
In my RV (Sprinter based Winnebago w/412Ah at 12V), 13.0V = getting low, 13.4V = pretty full, and points in-between pretty much as expected (not linear but VERY consistent with absolutely no drift).

If there were a 3rd way to estimate SoC, i might check that too.
 
I would rather not have automatic AH learning.

Self-learning AH takes charging and discharging additions and subtractions into account while system is operating under normal usage, along with their cumulative errors in measurements. In addition, you can never be confident as to when last Columb counter reset occurred when it is making decisions for AH capacity updates.
 
I found myself checking the battery voltage to "confirm" my battery SoC.

People hate hearing this but after a while, i found that i learned how my RV battery and my home battery SoC correlated to voltage.

They shouldn't.

When one understands the implications/nuances and has experience with their own system voltage/loads/SoC correlation, IMHO, it's perfectly acceptable - even with lead acid.

My home system's Victron BMV shunt displays voltage and thats all i check when i am curious.
In my RV (Sprinter based Winnebago w/412Ah at 12V), 13.0V = getting low, 13.4V = pretty full, and points in-between pretty much as expected (not linear but VERY consistent with absolutely no drift).

If there were a 3rd way to estimate SoC, i might check that too.

I have to update my shunts every month or so due to counting errors. My NMC charging NEVER hits sync criteria on either the Batrium or BMV because I'm charging to about 75% SoC only. Yes, I know it's much easier with NMC too. :p
 
A battery monitor like Victron 712 has fudge factors for the charging current efficiency and discharge current efficiency.

For LFP in the 0.2 C(A) battery current range, 99% efficiency for charge and discharge is about correct.
For LFP the Peukert constant is about 1.01.
Peukert calc for LFP2.png

AH capacity % round trip efficiency is greater than wH capacity % round trip efficiency due to battery voltage versus SoC.
(round trip is AH's or wH's put in during charging versus AH's or wH's taken out during discharging a full cycle)

LFP cell chg_dischg curves.png
 
I have a JK-BMS Hardware version 3, yes, it is 4 years old now. When the only thing charging it was my XW-Pro inverter. it would routinely reset to 100% SoC without a problem. But since I added the DC charge controller, both the BougeRV and now the Victron, I see the SoC creeping lower and lower with each charge cycle. It got to the point where it was hitting near 0% with the cell voltages still over 3.6 volts on Li NMC cells. My system is all working on voltage control, so this SoC error is not really a problem, but it is annoying.

Up until about 4 months ago, the cycle count looked pretty accurate. Each time I cycled 360 amp hours in and back out of the battery, it would add one cycle count. I read another thread on here, and watched one of Andy's (Off Grid Garage) videos where they trigger a reset to 100% by lowering the cell over volt disconnect. I tried it, and it worked, as soon as it went into cell over voltage, the SoC jumped right up to 100%, all good, right?

NOPE. The SoC was showing under 5% before that charge cycle, and it only took 185 Amp Hours or so before I triggered the cell OVP. Since then, the cycle counter jumped up to nearly double and is counting up twice as fast. It now adds a cycle eah time I cycle just 185 amp hours instead of 360 amp hours.

It evidently "Learned" a new battery capacity because of the short cycle to 100% SoC. Again, the numbers don't really bother me as I am not using them directly. But it was nice to see a quick read of how hard the battery was working. Now the numbers look bad like I am using up the battery nearly twice as fast.

IMG_4799.PNG

Here it is showing 620 cycles, but based on the actual capacity and amp hours cycled, it should only be 52% of that, or about 322 cycles so far. But the entry still shows my 360 amp hours entered, not the 187 or so it calculated.
 
I have a JK-BMS Hardware version 3, yes, it is 4 years old now. When the only thing charging it was my XW-Pro inverter. it would routinely reset to 100% SoC without a problem. But since I added the DC charge controller, both the BougeRV and now the Victron, I see the SoC creeping lower and lower with each charge cycle. It got to the point where it was hitting near 0% with the cell voltages still over 3.6 volts on Li NMC cells. My system is all working on voltage control, so this SoC error is not really a problem, but it is annoying.

Up until about 4 months ago, the cycle count looked pretty accurate. Each time I cycled 360 amp hours in and back out of the battery, it would add one cycle count. I read another thread on here, and watched one of Andy's (Off Grid Garage) videos where they trigger a reset to 100% by lowering the cell over volt disconnect. I tried it, and it worked, as soon as it went into cell over voltage, the SoC jumped right up to 100%, all good, right?

NOPE. The SoC was showing under 5% before that charge cycle, and it only took 185 Amp Hours or so before I triggered the cell OVP. Since then, the cycle counter jumped up to nearly double and is counting up twice as fast. It now adds a cycle eah time I cycle just 185 amp hours instead of 360 amp hours.

It evidently "Learned" a new battery capacity because of the short cycle to 100% SoC. Again, the numbers don't really bother me as I am not using them directly. But it was nice to see a quick read of how hard the battery was working. Now the numbers look bad like I am using up the battery nearly twice as fast.

View attachment 203777

Here it is showing 620 cycles, but based on the actual capacity and amp hours cycled, it should only be 52% of that, or about 322 cycles so far. But the entry still shows my 360 amp hours entered, not the 187 or so it calculated.
Thank you for sharing this.

This discouraged me for wanting that self learning algo just based from OVP in this case.

Though full discharge and recharge no interruption might solve this issue, but I see the point now.

Thank you everyone.
 
I have a JK-BMS Hardware version 3, yes, it is 4 years old now. When the only thing charging it was my XW-Pro inverter. it would routinely reset to 100% SoC without a problem. But since I added the DC charge controller, both the BougeRV and now the Victron, I see the SoC creeping lower and lower with each charge cycle. It got to the point where it was hitting near 0% with the cell voltages still over 3.6 volts on Li NMC cells. My system is all working on voltage control, so this SoC error is not really a problem, but it is annoying.

Up until about 4 months ago, the cycle count looked pretty accurate. Each time I cycled 360 amp hours in and back out of the battery, it would add one cycle count. I read another thread on here, and watched one of Andy's (Off Grid Garage) videos where they trigger a reset to 100% by lowering the cell over volt disconnect. I tried it, and it worked, as soon as it went into cell over voltage, the SoC jumped right up to 100%, all good, right?

NOPE. The SoC was showing under 5% before that charge cycle, and it only took 185 Amp Hours or so before I triggered the cell OVP. Since then, the cycle counter jumped up to nearly double and is counting up twice as fast. It now adds a cycle eah time I cycle just 185 amp hours instead of 360 amp hours.

It evidently "Learned" a new battery capacity because of the short cycle to 100% SoC. Again, the numbers don't really bother me as I am not using them directly. But it was nice to see a quick read of how hard the battery was working. Now the numbers look bad like I am using up the battery nearly twice as fast.

View attachment 203777

Here it is showing 620 cycles, but based on the actual capacity and amp hours cycled, it should only be 52% of that, or about 322 cycles so far. But the entry still shows my 360 amp hours entered, not the 187 or so it calculated.
interesting, before seeing this, I did not think it had any capacity learning function..!! would be nice if it showed it haha
 
interesting, before seeing this, I did not think it had any capacity learning function..!! would be nice if it showed it haha
My thoughts exactly. Atleast they should program the jk bms to show its latest "learned capacity" in this case, so we will know if something is right or wrong, so we could recalibrate.
 
My thoughts exactly. Atleast they should program the jk bms to show its latest "learned capacity" in this case, so we will know if something is right or wrong, so we could recalibrate.
Yes for sure. I wonder what triggers the learning or adjustment specifically. Fwiw I checked my bms (jk B2a24s15p) with around 1y126d / 340 cyc or so and the total Ah / cycles match the programmed capacity exactly.
 
All Columb counters work basically the same way.

It counts the incremental amp-seconds of charge (positive) and discharge (negative) battery current, then subtracts this from given battery AH size setting to get % of full charge. The unit may have a 'fudge factor' multiplication, particularly for charging efficiency or higher current rate where battery internal losses increase. LFP cells are very efficient for charging and discharging so do not need much 'fudging'.

Be careful on battery monitors that may have their fudge factor settings defaulted for lead-acid batteries. They need to have the fudge factor settings changed for LFP battery.

It is a bit like dead-reckoning navigation. You do need to get a known reference point every so often to wash out errors. The known reference point is usually a full charge condition.

It needs to be given the battery AH size and a reference point of SoC. How it gets these varies between battery monitors/BMS's.

Battery AH size is either setup by user or 'learned' by a full discharge cycle. I prefer direct user setting as auto-learning of battery AH size is prone to errors.

The reference SoC usually requires a full charge on battery which is triggered by battery voltage at full charge for given battery chemistry.

Many BMS's require charging to point of tripping a cell overvoltage charge shutdown to cause Columb counter to be reset to 100%. Some allow user to set battery trigger voltage for what is to be considered full charge. I prefer user set battery full trigger voltage and think it is rather stupid to require a cell overvoltage shutdown of charging to reset Columb counter.

The older JK BMS's do Columb counter reset on cell overvoltage trip. The larger recently released JK BMS with top end charging current DC to DC converter allows user to set battery voltage trigger point for full state of charge Columb counter reset.

When full charge state reset occurs at full charge, it may cause the jump in SoC display, which is the washing out of cumulated errors, resetting SoC to 100%.

It is important that cells are fairly well balanced when full charge reference is taken.

BMS's that do the automatic AH determination by full discharge cycle often do an initial estimate on SoC by battery voltage measurement at zero current to get the % SoC indicator started. The SoC % from initial voltage measurement is very poor accuracy. You need to ensure there has been no charging or discharging current on battery for about 5 minutes to allow cell voltage to reach its SoC equilibrium.

There is always some errors accumulated over time, primarily due to inaccuracy in current measurement particularly at low discharge currents, that needs to be washed out periodically by a full charge reset. Failure to allow a full charge reference reset every few months results in continually degrading SoC % accuracy.
That was such an awesome and well thought out answer.
 
I have found that charging a battery to where the BMS starts balancing the cells (and holding this charge voltage) but no cell reaches OVP will reset SOC to 100% and this 100% appears to be accurate with respect to battery capacity. Driving the charge to a single cell OVP will not necessarily allow for cell balancing
 
I have found that charging a battery to where the BMS starts balancing the cells (and holding this charge voltage) but no cell reaches OVP will reset SOC to 100% and this 100% appears to be accurate with respect to battery capacity. Driving the charge to a single cell OVP will not necessarily allow for cell balancing

That depends on the BMS. A JBD will reset 100% when

1) it counts back up to it based on input Ah
2) a single cell hits OVP
3) the "fully charged" cell voltage is hit (not sure if one or all have to be above this).
 
Back
Top