diy solar

diy solar

JBD BMS - How to correct inaccurate SOC value ✅

Vi s

Learning
Joined
Dec 6, 2020
Messages
340
Location
Thailand
*Edited, inserted instructions how to solve the SOC issue. All this here is based on WingNut's post here https://diysolarforum.com/threads/x...-remaining-capacity-display.22472/post-295322

Greetings to all JBD BMS owners!

Did you also notice that the SOC % value as well the remaining capacity value in your phone App is sometimes displayed inaccurately!?
IMG_20220601_081755.jpg

How does this issue occur?
Whenever you change certain parameters in your BMS phone App, the app recalibrates the SOC in reference to following set % voltage values.
IMG_20220601_071441.jpg
...and in particular to following more detailed ones which you can only access through the Chinese PC app (UART tool needed for that).
IMG_20220601_080054.jpg
Inaccurate % voltage reference/calibration values will lead to inaccurate SOC and remaining capacity values.

How to solve the issue of inaccurate SOC?
There are two choices.
1. After every time you change parameters in the phone app you have to fully charge your battery to reset SOC and capacity again.
2. Or determine the precise 100 90 80 70 60 50 40 39 20 10% cell voltage values of your battery and replace the inaccurate values with the accurate ones.

How to determine precise % voltage values step by step:
(Btw the coulomb counter of the JBD BMS is highly accurate! I compared it with the TK15 coulomb counter and the EBC-A05+ battery meter. Once you start this test don't change any parameters in the phone or PC app. Doing so the readings of the internal coulomb counter will stay accurate.)

1.
1.1 In the BMS phone App set the right (actual capacity) nominal and cycle capacity value of your battery, set single full voltage to 3.65V or to whatever voltage you usually gonna top-balance up.
IMG_20220601_070905.jpg
1.2 Charge and top-balance your battery to 100%
1.3 Let it rest for 30min (by this time the voltage is [almost] stable)
1.4 Write down the average (of all your cells) cell voltage (eg 3.500V)

2.
2.1 Calculate or time how much time it needs to discharge 10% of your battery capacity with your chosen test load and set an alarm when to pause discharging again.
2.2 Discharge to 90% and pause
2.3 Let it rest 30min
2.4 Write down the average cell voltage (like 3.333V)

3.
3.1 Discharge to 80% and follow through the same steps as before
3.2 Continue to follow those steps till 10%.
3.3 Connect BMS via UART tool to your PC (you can't adjust the 10 30 50 70 90% voltage calibration value points through the phone app) and correct all % voltage calibration value points.

I tested it and I can assure that now the totally inaccurate SOC issue doesn't occur anymore as well "reset capacity" in the phone app resets to almost (+-5%) actual SOC and true remaining capacity. If you want to have it spot on you have to go to one of the 100 90...10% points, let it rest 30min and then hit reset capacity.
 
Last edited:
I did some more digging to see if anyone on the diysolar forum had offered any hints as to how the jbd bms soc functionality works. I came across this post and tried it on my bms - it does seem to work!

When the BMS is initially powered up .... or any time a parameter setting is changed... the BMS calculates a guesstimated SOC based on the pack voltage. This guesstimate is derived from the cell 20-80% Cap. Voltage parameters ... and these parameters can be adjusted.
Once one cell reaches the cell full voltage, the BMS resets to 100% SOC and starts tracking via charge and discharge current ... which is coulomb counting.


My soc was giving the usual nonsensical value. All of my cells were sitting at about 3.35 volts. So I went into the parameters and changed the 'Cell full voltage' ( AKA - Single full voltage ) parameter to 3.3 volts.

Note that when you click on the question mark beside a parameter it will display a description of that parameter. Admittedly some of the chinglish is indecipherable and you need to have internet access for it to work at all...

Screenshot_20220531-125521.jpg

After saving the parameter values ( the check mark in the upper right corner of the screen ) I went back to the main screen and lo & behold the SOC was sitting at 100% - 120ah remaining capacity!


Screenshot_20220531-130012.jpg

So basically the bms resets the soc to 100% when the average voltage of all the cells equals the 'Cell full voltage' value. I suspect that for this to work reliably you'll want to set it to some value slightly lower than what your cells will be when your pack is almost fully charged. Only experimentation will answer that question...

The next test was to compare the jbd bms soc & remaining ah against my thornwave powermon
The results were very close - I pulled about 9ah out of the battery and everything was in agreement
The jbd remaining ah value fell from 120 to 110.9 and the powermon indicated -8.95 ah consumed
So the coulomb counting functionality appears to be working correctly.


Screenshot_20220531-175611.jpgScreenshot_20220531-175603.jpg
 
Last edited:
*Deleted because obsolete now. Solution and explaination presented in first post.
 
Last edited:
I did some more digging to see if anyone on the diysolar forum had offered any hints as to how the jbd bms soc functionality works. I came across this post and tried it on my bms - it does seem to work!

When the BMS is initially powered up .... or any time a parameter setting is changed... the BMS calculates a guesstimated SOC based on the pack voltage. This guesstimate is derived from the cell 20-80% Cap. Voltage parameters ... and these parameters can be adjusted.
Once one cell reaches the cell full voltage, the BMS resets to 100% SOC and starts tracking via charge and discharge current ... which is coulomb counting.


My soc was giving the usual nonsensical value. All of my cells were sitting at about 3.35 volts. So I went into the parameters and changed the 'Cell full voltage' ( AKA - Single full voltage ) parameter to 3.3 volts.

Note that when you click on the question mark beside a parameter it will display a description of that parameter. Admittedly some of the chinglish is indecipherable and you need to have internet access for it to work at all...

View attachment 96595

After saving the parameter values ( the check mark in the upper right corner of the screen ) I went back to the main screen and lo & behold the SOC was sitting at 100% - 120ah remaining capacity!


View attachment 96596

So basically the bms resets the soc to 100% when the average voltage of all the cells equals the 'Cell full voltage' value. I suspect that for this to work reliably you'll want to set it to some value slightly lower than what your cells will be when your pack is almost fully charged. Only experimentation will answer that question...

The next test was to compare the jbd bms soc & remaining ah against my thornwave powermon
The results were very close - I pulled about 9ah out of the battery and everything was in agreement
The jbd remaining ah value fell from 120 to 110.9 and the powermon indicated -8.95 ah consumed
So the coulomb counting functionality appears to be working correctly.


View attachment 96659View attachment 96660
I find this approach only works if you can set charger to a high voltage and trigger the over cell voltage.
If you change the cell full value to 3.3v as described, it will reset the SoC to 100% (assuming the cell is resting over 13,2v).
BUT - if you leave this setting then it will jump to 100% during charging. So you must change the cell full to 3.6 or similar. Immediatley afte changing this value to will change Soc to it's incorrect guesstimate value.
 
So I have a Frankenstein battery bank
4-100ah @24v
2-200ah @24v
All run to same bus bar(s)
The 4 - 100ah’s have jbd BMS’s
And one of the BMS is was reading the wrong SOC
I read on one of the posts on this forum that if you charge all your batteries up to for the BMS will reset and so I did that and it actually worked

Now my situation may not be like others as I have several Batteries Frankensteined together but it did work for me and my situation
 
'2.1 Calculate or time how much time it needs to discharge 10% of your battery capacity with your chosen test load'

@Vi s how do you do this please? Let's say I top up at 100% at 3.45V, how do you know when to stop discharging to obtain 10% discharge? You said to calculate the time but how do you do this please, thanks
 
'2.1 Calculate or time how much time it needs to discharge 10% of your battery capacity with your chosen test load'

@Vi s how do you do this please? Let's say I top up at 100% at 3.45V, how do you know when to stop discharging to obtain 10% discharge? You said to calculate the time but how do you do this please, thanks
Hi, Let's say you have a 10ah battery. So discharging 1ah of it means 10%. For this you need of course a ah-meter, wattmeter or similar. If you don't have one then use a set load, let's say you discharge at 1a for easy math, then it takes 1h till you have discharged 10%.
1a x 1h = 1ah = 10% of 10ah
 
Hi, Let's say you have a 10ah battery. So discharging 1ah of it means 10%. For this you need of course a ah-meter, wattmeter or similar. If you don't have one then use a set load, let's say you discharge at 1a for easy math, then it takes 1h till you have discharged 10%.
1a x 1h = 1ah = 10% of 10ah
Thanks for your help.
I have a clamp multimeter to measure current, if my battery is a 200Ah it means I have to discharge it to 180Ah (10%) but how do I measure these 20Ah with my multimeter? You mentionned a "ah-meter" or "wattmeter" I guess my multimeter is not capable to do this and I can't do this method at all...
 
Thanks for your help.
I have a clamp multimeter to measure current, if my battery is a 200Ah it means I have to discharge it to 180Ah (10%) but how do I measure these 20Ah with my multimeter? You mentionned a "ah-meter" or "wattmeter" I guess my multimeter is not capable to do this and I can't do this method at all...
Clampmeter is enough for the beginning, if you want to have more accurate numbers you will have to buy something like following:
TK15 Professional Precision Battery Capacity Tester for Portable Equipment E-bike/Balance Car/Cleaning Machine https://a.aliexpress.com/_mqXxTd0
Or cheaper and good as well
DigitalVoltage Current Power Meter Volt Detector Tester Monitor DC0-300V 50A 100A 200A 300A LCD Energy Meter PZEM-025 https://a.aliexpress.com/_mMLA6Fu

200ah, 12.8v (if 25.6v x 2, 51.2v x 4)
200ah x 12.8v = 2560Wh
20ah x 12.8v = 256Wh
So discharge with 256W for 1h = discharged 10%. Or discharge with 512W for 1/2h, same result.
 
Clampmeter is enough for the beginning, if you want to have more accurate numbers you will have to buy something like following:
TK15 Professional Precision Battery Capacity Tester for Portable Equipment E-bike/Balance Car/Cleaning Machine https://a.aliexpress.com/_mqXxTd0
Or cheaper and good as well
DigitalVoltage Current Power Meter Volt Detector Tester Monitor DC0-300V 50A 100A 200A 300A LCD Energy Meter PZEM-025 https://a.aliexpress.com/_mMLA6Fu

200ah, 12.8v (if 25.6v x 2, 51.2v x 4)
200ah x 12.8v = 2560Wh
20ah x 12.8v = 256Wh
So discharge with 256W for 1h = discharged 10%. Or discharge with 512W for 1/2h, same result.
ah I have the PZEM and I didnt think of using it to measure Ah's thank you much for the reminder.
My 200Ah is full at 13.5v I think around that, I have to confirm this.
So 10% discharge means 20Ah or 270Wh. I will use these numbers then, thanks again for the explanation !
 
ah I have the PZEM and I didnt think of using it to measure Ah's thank you much for the reminder.
My 200Ah is full at 13.5v I think around that, I have to confirm this.
So 10% discharge means 20Ah or 270Wh. I will use these numbers then, thanks again for the explanation !
Excellent!

Usually the Battery Ah (200ah) are calculated with its nominal voltage which is 3.2V or 4s = 12.8v. you should use that number.

If you want to have exact numbers fully charge and discharge your battery to check real Ah and Wh of your battery.
 
I have a JBD BMS I don't know if it is smart :) I am using the xianxiang android app. I'd like to follow all the process you described in order to enter the most accurate values for the 20/40/60/80% current values in the app.

That's surprising to use 3.2 as voltage for the calculations, in my mind 3.2v means the cells is almost empty (around 20% remaining). And I thought I have to start from a full battery to do all the calculations that's why I used the 3.5v value because at this voltage the battery is almost full.

Basically here is the process I'll use: I will first charge the battery to the max, then let it rest for a few hours, and write down the value I'll get after that (100%) and start from here for the successive discharges. Then discharge 20%, then 20% more, then 20% more, and finally 20% more With a 30 minutes pause between each measure.
So I can fill in the fields accurately in the app and get a valid SOC hopefully.
 
Last edited:
The coulombmeter in the jbd bms is pretty accurate, you can use it for that purpose. You can use also both (pzem) if you want.
Use this app instead, it has more values (100 90 80 ....)
These are my values for reference or if you want to skip this lengthy process
Screenshot_2023-03-24-06-12-49-165_com.marchingband.overkillsolar.jpg
 
Thanks for the suggestion I'll install this app instead then. And thanks also for sharing your values, people like you are treasures on the web, really.
I also found this table below on the forum, shared by a member who made tests, I am using his values for the moment until I do my own tests. I'll keep yours also for reference. Both yours and his seem very different, so I don't think I should keep one or another and guess everyone should do their own tests depending on the battery brand or technology they have.


lifepo4ref.jpg
 
Thanks for the suggestion I'll install this app instead then. And thanks also for sharing your values, people like you are treasures on the web, really.
I also found this table below on the forum, shared by a member who made tests, I am using his values for the moment until I do my own tests. I'll keep yours also for reference. Both yours and his seem very different, so I don't think I should keep one or another and guess everyone should do their own tests depending on the battery brand or technology they have.


View attachment 141042
Yes you have to keep in mind everyone uses different measurement tools so the values differ. You just have to be consistent, means use the values of the meter you trust the most.

My values match my application and usage. Since that differs from case to case, yes you will eventually find your fitting values through observation and adaptation.

If you want to make it properly you should make one full capacity test in order to test your real capacity (200ah is usually never exactly 200ah) and get to know and align you measurements tools.

Best regards
 
If you want to make it properly you should make one full capacity test in order to test your real capacity (200ah is usually never exactly 200ah) and get to know and align you measurements tools.

Best regards
Yes I will do this too that's a wise thing to do indeed. Thanks a ton for all your advices
I'm surprised almost noone do all of this to calibrate their BMS when buying a new lifepo4 though, it must be mandatory to get accurate values, that's important if you rely on your battery while traveling.
 
Last edited:
Yes I will do this too that's a wise thing to do indeed. Thanks a ton for all your advices
I'm surprise almost noone do all of this to calibrate their BMS when buying a new lifepo4 though, it must be mandatory to get accurate values, that's important if you rely on your battery while traveling.
Welcome, my pleasure.
 
@Vi s hi I started the process today, after charging my battery to the max and let it rest for a night, I discharged it by 20% (40Ah). I used my PZEM and the BMS to get the Ah value, but the problem is they are not telling the same. While I reached the 40Ah with the PZEM, the BMS only shows 34Ah. I don't know which one to trust, I chose the PZEM and stopped the experiment there for this first step.

That's strange they don't give the same value. Plus, while discharging the battery with a hair dryer, the instant current shown by the BMS was 42A, and 48 with the PZEM. That's the same 6A difference as I had with the Ah.
Do you know what could cause this please?

The hair dryer was plugged into an inverter which was connected to the PZEM"s shunt like all the rest.
Also after one hour or so, the BMS was at 50-60 degrees celcius (120-140 Faraneiht) I don't know if it's a normal value that's the first time I use it with such a high current.

I now let the cells rest and I'll check their voltage tomorrow.
Thanks

EDIT : I forgot to do the capacity test, I'll probably discharge the whole battery tomorrow to do it
 
Back
Top