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.

BQ40Z50: Initial QMax before learning - from chemistry programming or firmware bundle?

Part Number: BQ40Z50
Other Parts Discussed in Thread: GPCCHEM

At what point does the initial value of QMax for the pack get calculated?  If I start with a particular chemistry and set the design capacity to use a 2P configuration, it seems like the initial QMax is very close to the value for a 1P configuration, and it takes several learning cycles to get it to edge up to the 2x capacity I'm targeting.  Is there something besides the values for the Design Capacity that need to be changed to let the system know that you're dealing with 2P instead of 1P?  Is there a maximum amount of error that can be compensated for on each learning cycle?  Can that be modified at least while this initial learning is happening?

  • Hello Tony,

    You should follow SLUA903 in order to perform the learning cycle which will update the Qmax, the gauge should update the Qmax automatically during learning.

    Sincerely,

    Wyatt Keller

  • Hi Wyatt, 
    Thanks for the reply.  As I mentioned, I was able to update the QMax iteratively (over about 5 learning cycles), I was just wondering if the process could be sped up by changing the default calculated values that seem to be present for QMax Cell1-4 and QMax pack away from the value of 4400mAh?  And if so, I'm also wondering why setting those values isn't part of the description in the SLUA903?  Or alternately, if larger changes to the QMax could be enabled by changing some parameter.
    Thanks,
    Tony

  • Hello Tony,

    When the gauge is first being setup and Update Status (LStatus) is 0x04, there are no bounds on the Qmax update. If you tried to take an already learned gauge and do a learning cycle then it may take multiple cycles for the Qmax to converge. You should always reset the update status register if you are starting a new learning cycle, or upload the fresh default SREC and start from that point.

    Sincerely,

    Wyatt Keller

  • Yes, it takes many cycles to converge - you can see here the cells gradually going from a QMax of 4400 to almost 6000 when I'm targeting about 6800 (ignore the noise points - occasional errors over several days).  That's good information about if the LStatus is 0x04 there are no bounds, but I started this with a board freshly programmed with the 4.03 firmware bundle SREC.  I'll look more closely at the logs to see what the Update Status was at the point where it went from 4400 to its first estimate.

  • I graphed the LStatus as x*100 along with one of the QMax values, and it was indeed 4 at the first QMax update, at which point it changed to 5, then later to 6 and then 14.  Are there conditions other than LStatus==4 that determine whether there are are no bounds on the QMax update?

  • Hello Tony,

    I checked the source code and the Qmax boundary checks only apply after the Qmax is first learned, so I'm not sure why it is taking multiple steps for you. Can you share the .gg file from before and after learning along with the log file?

    Sincerely,

    Wyatt Keller

  • These are before and after .gg files 
    6758.Archive.zip

  • Hello Tony,

    Have you uploaded the best fitting chem ID using the GPCCHEM tool? If you have a badly matched chem ID it could lead to errors in Qmax calculation. From the logs it looks like your DOD0 is way out of the range it should be in (2^14 should be the max) Can you share the GPCCHEM report and the chem ID you're using?

    You can set the Qmax value closer to the design capacity, but you shouldn't need to, I think there is something else going on but I'm not sure of the origin at the moment.

    Sincerely,

    Wyatt Keller

  • Originally I was using chem ID 2059 for LGC INR18650MJ1 (3500mAh), and I submitted a log a week or so ago that returned this : 
    Chemistry ID selection tool, rev=2.53

    Configuration used in present fit:
    ProcessingType=2
    NumCellSeries=4
    ElapsedTimeColumn=0
    VoltageColumn=1
    TemperatureColumn=2
    CurrentColumn=3

    Best chemical ID : 5265 Best chemical ID max. deviation, % : 1.44

    Summary of all IDs with max. DOD deviation below 3%

    Chem ID max DOD error, % Max R deviation, ratio
    5265 1.44 0.44
    2348 1.48 0.41
    2380 1.49 0.5
    5590 1.75 0.6
    508 1.75 0.6
    2150 1.81 0.57
    5442 1.85 0.42
    1762 1.95 1.7
    2404 2.04 0.62
    5820 2.08 0.48
    2104 2.29 0.84
    2155 2.31 0.73
    2046 2.33 1.22
    1895 2.4 0.95
    2142 2.44 0.38
    2796 2.46 0.71
    2437 2.5 0.48
    2588 2.56 0.44
    5271 2.57 0.59
    1580 2.63 0.66
    2591 2.76 0.82
    2006 2.8 0.53
    2152 2.83 0.43
    2101 2.83 0.47
    2050 2.89 0.49
    2107 2.95 0.88
    1671 2.96 0.59
    2124 2.99 1.02

    (note 2059 is not in the close match list) 

    After seeing that, I decided recently to change my chemistry to 508 because it has the same part number as the cells I'm using in the chemistry list.  Unfortunately, I messed up my most recent attempts at learning because I had a current meter in series with the system and it threw everything for a loop.  I'm going to start over again soon using 508 as the baseline chemistry and try to complete another learning cycle.  Thanks for all your help and consideration on this, especially around the holiday.

  • Hello Tony,

    Yes I would try with one of the better fitting chem IDs and do the learning again, it should allow for a better Qmax update and gauging.

    Sincerely,

    Wyatt Keller