• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

JK BMS SoC

Ai4px

Solar Enthusiast
Joined
Feb 20, 2021
Messages
274
My system is grid tied so my batteries sit at what I'll call 100% nearly all the time... 3.45v per cell. So my BMS should show 100% but JK doesn't seem to recognize when a battery is full and adjust the SoC to 100%. I suspect it's a calibration issue with the in built shunt. But is there a firmware that will simply reset the SoC when battery sits at top voltage for a time? I hate to have to recalibrate the shunt, I think I'll loose ground doing that.
 
The SOC will NOT set till it has run through 2 cycles. Take a look at my settings in the link below for the BMS which corrects some Bad Defaults as well. A Cycle means actually allowing the battery packs to do what they should and let them discharge & run things till they start to hit 25-30% and then recharge.

One common TRIP people fall over is the settings also determine the "Edges" for the SOC Calculations if you set the edges at 2.50 Cutoff & 3.65 for HVD Cutoff you will never ever see proper numbers. Working Voltage being 3.000-3.400 (which is where ALL your Amp hours are) is the reality. Set Low Volt Discon to 2.900 and High Volt disconnect to 3.500. FORGET the "Allowable Voltage Range" which is 2.500-3.650. Anything below 2.500 or above 3.650 is harming the cells and hence this is why it is the "Allowable Range" but NOT the working range.

See this thread for the settings for BMS as well as scc/charger (your is likely different but similar)

Hope it helps, Good Luck.
Look at the goodies in my Signature as well.
 
A note on Calibration as well.
Realize that every terminal, fuse, breaker and even a Busbar will contribute to some like loss that includes Voltage & Amperage from end to end. Each one may not be that significant BUT it is cumulative. So if the SCC says it is pushing say 27.0V to the batteries, what actually is hitting the individual battery pack may be 26.8V because of everything in between. The GOTCHA here is that when you are actually at 100% and resistance is down it will be 27.0V. It's weird but that's how it rolls. What really matters is what is being seen at the Battery Terminals themselves for the charging and only a 2 or 3 decimal place accurate DVOM will tell you that... 2 Decimal is not hard to find and not that $$ but 3 Decimal get's "cookoo" so a good 2 decimal will do just fine. Also the Inverter/Charger needs to be addressed because say you have LVD Cutoff at 22.4V (2.800Vpc) and there is a 0.300 drop between it will cutoff @ 3.100 because it thinks it sees 2.800Vpc. due to the line loss, so you have to compensate on the settings again. HVD Cutoff is yet another bugger to correct for.

My Wire Run from Inverter -> E-Panel/SCC -> Common DC Bus -> battery Packs is actually 14' using 4/0 Royal Excelene Premium cable. There is a Main 250A DC Breaker on the E-Panel + 1x 200A MRBF Fuse on busbar per battery pack, plus all the lugs and it is most certainly measurable AND noticeable.

Little Things that add up:
If you have 5/16 Bolts on the Busbar use lugs with 5/16" holes NOT 3/8's. for example. Always use the right size to what you are connecting to. Battery Terminals tend to be 3/8s but many of the Rackmountables seem to use 5/16 and provide a little more contact surface for the Lug Face (which s good).

Hope it helps, Good Luck.
 
Well i swapped bms and the new one is off by a lot. I must've lucked out with the first one. I didn't need to wait.
 
I tricked the jk bms by increasing the float charge to a higher value and once one of the cells hit the limit of 3.6 it corrected the SOC to 100 percent.
 
I tricked the jk bms by increasing the float charge to a higher value and once one of the cells hit the limit of 3.6 it corrected the SOC to 100 percent.
Interesting.... but I don't want my cells at 3.6... should I set the upper cutoff voltage to 3.5 for example? and charge to that limit? Will that reset it? Hmmm.... do you have to hit the upper cutoff? is that the trick? Enquiring minds wanna know!!
 
Interesting.... but I don't want my cells at 3.6... should I set the upper cutoff voltage to 3.5 for example? and charge to that limit? Will that reset it? Hmmm.... do you have to hit the upper cutoff? is that the trick? Enquiring minds wanna know!!
Yes you can do that, but it's only temporary so either way. It will update once the over voltage is tripped.
 
I messed with this again and had to get it to relearn because I changed the amps calibration. Charge batt to the single cell voltage limit and once triggered the state of charge goes to 100%
 
The SOC will NOT set till it has run through 2 cycles. Take a look at my settings in the link below for the BMS which corrects some Bad Defaults as well. A Cycle means actually allowing the battery packs to do what they should and let them discharge & run things till they start to hit 25-30% and then recharge.

One common TRIP people fall over is the settings also determine the "Edges" for the SOC Calculations if you set the edges at 2.50 Cutoff & 3.65 for HVD Cutoff you will never ever see proper numbers. Working Voltage being 3.000-3.400 (which is where ALL your Amp hours are) is the reality. Set Low Volt Discon to 2.900 and High Volt disconnect to 3.500. FORGET the "Allowable Voltage Range" which is 2.500-3.650. Anything below 2.500 or above 3.650 is harming the cells and hence this is why it is the "Allowable Range" but NOT the working range.

See this thread for the settings for BMS as well as scc/charger (your is likely different but similar)

Hope it helps, Good Luck.
Look at the goodies in my Signature as well.
I note you mention 2 cycles for the JK to adequately calculate SOC - now you say at least got down to 25-30%? I have one that went down once to 6% ( doing a battery capacity test ) and it seems OK, my other two have never been below 70% and they are hopeless. I want to try and improve them by going once down to 25% . Do you think that will be adequate ? Anyone actually tested this
 
Here is my experience with JK BMS.

3.60V - BMS OVP
3.45V - BMS Start Balance
2.80V - BMS UVP

I charge my cells up to 3.5V, balancing starts at 3.45V.

Screenshot_20230704_210456_BMS.jpg

I started by doing a capacity test of my battery after manually balancing them. So I hit 3.65V/cell and the SoC was at 100%. Then I fully discharged the battery to 2.5V/cell to test the battery capacity. At this stage I had not yet calibrated my JK BMS, we were in winter.

Then I put my system into production, rare were the days when I arrived at 100% (gray and little sun). Without reaching 100% every day the SoC was really wrong. I then started to take an interest in the calibration of the BMS and I realized that the measurement of low current was bad. During the night I had a low load of +/- 50W and at certain times I was in bypass mode on the grid and with only the no-load consumption of my inverter ready to take over in the event of a grid failure. There I realized that JK BMS measured 22W for the no-load consumption of my inverter when in reality it is 48W, so if JK counts 22W per hour instead of 48W per hour you understand that there is have a big problem in the calculation of the SoC.

Then I calibrated my JK BMS to have a correct measurement of low current, to do it correctly you must have a stable load. I configured my inverter to charge the battery with a fixed current of 5A (250W), I measured the current with a good ammeter clamp and I calibrated JK BMS to correspond to this value.

What happens now?

The BMS coulomb counter works well with my base load of +/- 250W which is the longest time without counting errors. But with high amps like 30A or 50A (positive or negative) there is always an error between 3A and 6A.

So during a beautiful sunny day, when I charge my battery at 47A, JK BMS counts 51A which is more than reality and I reach 100% every day when I arrive +/- at 54.8V (I don't never triggers any OVP alarm in JK BMS).

In the other direction, when I have a large consumption (oven, dishwasher, washing machine, etc.) if I draw 47A there too JK BMS counts me 51A which is more than there reality. So let's say it balances out.

Then when my inverter supports the base load (+/- 250W) from 8 p.m. to 8 a.m. it counts very well because I calibrated it for low current.

Since that day I have a SoC that really corresponds to reality and I reach 100% every day when my cells are +/- 3.425V maybe even sometimes JK tells me that I have 70% whereas in reality it may be a little more.

Hoping to help you.
 
Last edited:
Here is my experience with JK BMS.

3.60V - BMS OVP
3.45V - BMS Start Balance
2.80V - BMS UVP

I charge my cells up to 3.5V, balancing starts at 3.45V.

View attachment 155765

I started by doing a capacity test of my battery after manually balancing them. So I hit 3.65V/cell and the SoC was at 100%. Then I fully discharged the battery to 2.5V/cell to test the battery capacity. At this stage I had not yet calibrated my JK BMS, we were in winter.

Then I put my system into production, rare were the days when I arrived at 100% (gray and little sun). Without reaching 100% every day the SoC was really wrong. I then started to take an interest in the calibration of the BMS and I realized that the measurement of low current was bad. During the night I had a low load of +/- 50W and at certain times I was in bypass mode on the grid and with only the no-load consumption of my inverter ready to take over in the event of a grid failure. There I realized that JK BMS measured 22W for the no-load consumption of my inverter when in reality it is 48W, so if JK counts 22W per hour instead of 48W per hour you understand that there is have a big problem in the calculation of the SoC.

Then I calibrated my JK BMS to have a correct measurement of low current, to do it correctly you must have a stable load. I configured my inverter to charge the battery with a fixed current of 5A (250W), I measured the current with a good ammeter clamp and I calibrated JK BMS to correspond to this value.

What happens now?

The BMS coulomb counter works well with my base load of +/- 250W which is the longest time without counting errors. But with high amps like 30A or 50A (positive or negative) there is always an error between 3A and 6A.

So during a beautiful sunny day, when I charge my battery at 47A, JK BMS counts 51A which is more than reality and I reach 100% every day when I arrive +/- at 54.8V (I don't never triggers any OVP alarm in JK BMS).

In the other direction, when I have a large consumption (oven, dishwasher, washing machine, etc.) if I draw 47A there too JK BMS counts me 51A which is more than there reality. So let's say it balances out.

Then when my inverter supports the base load (+/- 250W) from 8 p.m. to 8 a.m. it counts very well because I calibrated it for low current.

Since that day I have a SoC that really corresponds to reality and I reach 100% every day when my cells are +/- 3.425V maybe even sometimes JK tells me that I have 70% whereas in reality it may be a little more.

Hoping to help you.
Can you post all settings? If i want to change some settings it has an sending failure. This die other settings are lower than your 3 settings showing above.
 
You did not mention which JK BMS you have. Older one resets Columb counter differently than newer PB version.

You have more control on the Columb counter reset calibration on the newer PB version.

Current measurement accuracy is the primary reason for building error in the Columb count. It needs to be reset to 100% full periodically to wash out cumulated errors that build up. This reset reference point is a full recharge.

The parallel 1 milliohm chip resistors that make up the current shunt are poor for stable shunt resistance over temperature. The op amp that amplifies the voltage across the resistive shunt suffers from DC offset stability, and the 12-bit microcontroller ADC that reads the amplified voltage to get current reading is not the best resolution.

I believe the older (smaller) JK BMS requires a cell overvoltage trip to reset Columb counter. If when you do a full recharge, and you don't see SoC going to 100% you have not reset the Columb counter and cumulative error will remain. Some people temporarily lower the OVP trip point just to get the Columb counter to reset, then set OVP back to regular value.

If you want the best SoC accuracy you must fully charge to reset Columb counter at least every couple of weeks and also keep the cells SoC balanced.
 
Last edited:
Can you post all settings? If i want to change some settings it has an sending failure. This die other settings are lower than your 3 settings showing above.

What is the exact version of your BMS? The latest hardware version JK-B 11A uses the same priorities (OVPR < SOC 100% and UVPR > SOC 0%) as the new JK-PB.
 
Charge UTP and UTPR are too low. For LFP they should be both 0C or above. Mine are UTP 2C and UTPR 7C.
 
Charge UTP and UTPR are too low. For LFP they should be both 0C or above. Mine are UTP 2C and UTPR 7C.

Agree with you.

@tigger57

Your UTP Charge must not be lower than 0°C.

Charge and Discharge OTP 50°C / OTPR 45°C

Concerning the settings you must respect a certain order (OTP > OTPR / UTP < UTPR) to not have a sending failure.
 
I changed those settings you recommended.

Are there more settings that recommends change?

I find your SoC 0% and UVPR a little low but that's a personal opinion.
I consider my battery empty at 3.0V, there is nothing more to take below.
 
The RCV and RFV are requests made to inverter/charger when there is inverter/charger communication. The inverter/charger sets its absorb and float voltage to these numbers, but its voltage calibration might be a little different then BMS. There may also be voltage drop in the cabling between BMS/battery and inverter/charger.

Slight calibration difference between inverter/charger and BMS may cause BMS trigger voltages not being met. This includes RCV, 100%-SoC, balance start voltage, and RFV.

Second question is whether the firmware SoC reset loop still operates if there is no inverter communications hooked up.

The loop could still work, at least for 100% SoC reset, without inverter communications, if inverter is manually setup with appropriate BMS matching charging absorb voltage and absorb timer in inverter/charger.

If open loop inverter charge absorb voltage is set too low or absorb timer is set too short, bms would not get out of step 1 or step 4. It would never reset Columb counter to 100%-SoC and SoC would gradually continue to degrade due to accumulated amp-sec counting accuracy errors.

It might revert to old original Columb counter reset method, requiring a charging cell overvoltage trip.

JK PB Columb Counter reset v15.png
 
Last edited:
Another question is what triggers PCL module. I am assuming the PCL module is the 10A buck converter in parallel with charging path pass power MOSFET's. The 10A buck converter is the large toroid coil end of JK PB BMS board.

It appears its primary use is when parallel battery arrays are connected where, for some reason, one pack is significantly different in SoC. When connected to parallel batteries, a large battery to battery current flow may occur.

The overcurrent is detected which opens charging pass MOSFET and PCL module is activated to allow up to 10 amps to charge battery around the disabled charging pass MOSFET. Eventually the parallel batteries will converge in SoC.

There is no setup parameter specifically stated for PCL module operation so the assumption is its activation trip is derived from max charger current setting. Likely max charge current setting or some percentage greater than the user set max charging current number.
 
Last edited:

diy solar

diy solar
Back
Top