This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ40Z60: Full Charge Capacity in mWH FullChgCap is completely incorrect (almost by a factor of four) after running IT learning cycle

Part Number: BQ40Z60
Other Parts Discussed in Thread: BQSTUDIO

We have a 4s4p configuration li-ion pack and each cell has capacity 3450maH, bringing total capacity to  13800mAH. Expected capacity in mWH is therefore 13800x3.6v(nominal)x4 =  198270mWH.

After running the learning cycle we are getting of 62818mWH for FullChgCap (almost 4 times too small) and 13337mAH for FltFullChgQ which is close to the real value.

I am not sure why the remaining W/h value is so far off but the I/h is much more accurate. Please see our bqstudio register configuration attached. I have also attached a log file during discharge from full of 30A. The high current should not matter since we did the learning cycle with 2.5A discharge and you can see the FullChgCap value is way off even before starting the discharge.   

 Thank you in advance,

StevenLog file and bq40z60 Config.zip

  • Hi Steven,
    Did you perform current calibration? Your gg file shows CC Gain = Capacity Gain = 1 which would not be correct if you had run calibration.
    Was your learning cycle successful in getting to Update Status = 06? Can you please share the gg file from your pack after learning and before/after your test discharge?
  • I am working with Steven on this project and we are both using identical (but separate) hardware.

    1: I think that 1 actually is a reasonable value for the CC gain, because our design uses a 1 mOhm sense resistor.  After a current calibration, I ended up with a value of 1.004.

    2: We both were able to complete learning cycles, ending with Update Status=6.

    3: The capacities are only off when in mWh capacity reporting mode.  When I set CapM=0, the mAH full charge capacity and remaining capacity values are plausible, and seem accurate through discharge and charge.  The inaccurate values only occur when CapM=1.

    4:  BQstudio seems to be reading the raw hex values of the two mWH capacity registers incorrectly, at least according to the "raw" values that show up when you click on the value in BQstudio. See below for Full Charge Capacity:

    The raw value 0x49CB is actually 18891, not 57838

    And that happens to be the full capacity in cWH, rather than mWH!

    You can see here that the raw and decimal values for one of the other Full Charge Energy registers is also 0x49CB, but in the case of “Flt Full Chg E”, 0x49CB gets accurately converted to 18891 cWH:

    5: I disconnected the EV2300 and used a Raspberry Pi to read the full and remaining capacities using SMBus.  They appear to be the decimal versions of the hex values that show up as the “Raw” values in BQstudio. For example, the Full Capacity register (0x10) read as 19014 over SMBus on the Raspberry Pi.  In Bqstudio, it reads as 59068 in decimal, 0x4A46 in raw hex. 0x4A46 is actually 19014 ! In other words, it seems that this problem is a BQstudio bug and might not not affect the readings that the BQ sends to the host, as long as the host knows to expect cWH instead of mWH.  Do you agree with this assessment?

  • Hi Andrew,
    I think you've nailed it. [CAPM] is the configuration bit for the gauge to know whether to report in mWh or 10mWh, but bqStudio does not have any code to read this configuration bit and alter the units displayed next to the registers. The host (or user) needs to know how it's configured and interpret accordingly.