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.

BQ34Z100-G1: Fuel Gauge Not Accurate At Low Loads

Part Number: BQ34Z100-G1

We are currently using the BQ34Z100-G1 in the battery packs for our device. We have noticed the estimated time until empty is very inaccurate at low loads (100-200mA). We have also noticed the fuel gauge estimated minutes until empty randomly jumps (see attached graph) while the SOC stays the same. I have ran several successful learning cycles on different battery packs with similar results. I have attached the logs for a 150mA, 200mA, & 1.5A discharge cycles, and the learning cycle log for reference. Is there any way to improve the fuel gauge accuracy at lower loads? The gauge seems to be accurate down to the minute at loads of 1A or more. Also, our battery packs are lithium ion 8S1P configuration using the LG INR18650F1L cells, 3250mAh capacity.  Discharge_GoldenImage001_1.5A.csvDischarge_GoldenImage001_150mA.csvDischarge_GoldenImage001_200mA.csvLearning Cycle - GoldenImage001.csv

  • Hello Alvin,

    The estimated time to empty is dependent on the average load. That would explain the jumping without SOC change.

    You can adjust load select + load mode to get better accuracy. Note that if your load is not predictable, it is safer to use the maximum load to prevent unintended shutdown but this will make the SOC reading inaccurate (conservative) at smaller loads

  • Thank you for the reply. We use 5 of these packs in our system. The load per battery varies from 100mA to 1.5A depending on user settings. Is there any settings that will improve the accuracy over the whole range of loads? Like I said in my original post, the fuel gauge is very accurate at 1A and above discharge rates. If you look at the graph, the fuel gauge was tracking pretty accurately for the first hour and a half, then it jumps for no apparent reason?

  •     I think you may have not enabled the smoothing feature, please enable smoothing in the configuration register in the dataflash, please try to set SmoothEn in Pack Configuration C in dataflash see if the average run time to empty still jumps

  • Thank you Steven. Smooth was not enabled in the Pack Configuration C register. I enabled it and will run another 150ma discharge cycle and see if there is any improvement. 

  • Steven, I enabled the smoothing feature and ran another 150ma constant current discharge. While the abrupt step in minutes remaining is now gone, the gauge is still very inaccurate. It estimated 76 minutes remaining when the battery died (BMS shut off output). Is there a different load mode that may solve this issue? The gauge starts off with a relitively accurate prediction, but seems to drift. 

  •     I noticed that the SOC is not correct and the RUP_DIS kept set during entire discharge process, if the gauge had experienced a power cycle before the test, please have the the battery relaxed for a while until RUP_DIS is cleared before discharge begins, I haven't been able to find the gg file in your uploaded files, per your test profile, load mode = 0 load select = 1 shall be fine.

        What is the cell terminate voltage in your configuration file? Have set a nonzero reserve capacity?

  • Cell terminate voltage is 2.5VDC, the reserve capacity is set to 0mAh. Our BMS also cuts out at 2.5VDC. The pack has been cycled and relaxed, RUP_DIS is not set. I am still seeing a 60-80 minute inaccuracy in the minutes remaining. See attached for the golden image files.7532.0100_0_16-bq34z100G1.zip

  • Hello Alvin,

    Refer to TRM section 3.2.1 Load Mode for load mode and load select settings.

  •     As the RUP_DIS is set during your entire discharge process, normally it is caused by the gauge having experienced a power cycle without enough relaxing time, the discharge test for 1.5A does not see RUP_DIS set, I would suggest you to do the test after the RUP_DIS cleared.

       If you do not see significant improvement, can you try to do a learning cycle with update status starting from 4 and 150mA discharge current, see if the impedances learned under this scenario would still approximate to the impedance learned under 1.5A discharge current.