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.

BQ27410-G1: State of Charge (SOH) and Remaining Capacity stuck at 0 after a Factory Reset

Part Number: BQ27410-G1

Hi, 

After I swopped batteries on my product I do a Factory Reset and then 2 battery cycles.  The battery cycles have been working fine for very long but if I do the factory reset first then SOH and Remaing Capacity shows as 0 for both cycles and SOH shows as "Not Available".  I do a initialisation of the BQ27410-G1 after the factory reset, the same function that is called at startup, but clearly something else needs to also be done after a factory reset in order for the fuelgauge to show valid values for the battery.  After a power cycle it provides valid values for SOC and SOH again - even if I stopped the battery cycle tests halfway.  

regards

  • Hello Johann,

    Does this happen all the gauges? When the batteries are swopped you perform the cycles to update the Qmax and Ra again? For a factory reset are you re-uploading your golden image?

    Sincerely,

    Wyatt Keller

  • Hi Wyatt, 

    yes it happens with all the gauges so its repeatable.  If by "golden image" you mean previously captured calibration data, we don't do that.  We simply set parameters like Design Capacity and then run 2 charge-discharge cycles so the gauge can learn the properties of the battery.

    regards

  • Hello Johann,

    If it has been working previously, what has changed since then? Has the voltage range of operation changed?

    If you have changed the voltage range it may be outside the preset voltage range of the chem ID.

    Sincerely,

    Wyatt Keller

  • Hi Wyatt, the only thing that changed from "working fine" to "SoC remains 0% during both charge-discharge cycles" is I call the below function at fuelgauge initialisation.  However, if I call the below function and then power off the product and power it back on then it does the learning cycles with SoC valid.  Even if I call my fuelgauge_init() function after FACTORY_RESTORE it doesn't fix the problem.  So something else is needed after sending a factory_restore command and I don't know what that is.  Could it be a long delay?

    #define SUB_FACTORY_RESTORE 0x0015 //Forces a Factory Restore of learned resistance and Qmax to defaults.

    void fuelgauge_factory_reset(const HANDLE i2c_handle)
    {
    // Set-up transmission buffer.
    tx_buffer[0] = (uint8_t) CMD_CONTROL;
    // Control status sub-command low byte.
    tx_buffer[1] = (uint8_t) SUB_FACTORY_RESTORE;
    // Control status sub-command high byte.
    tx_buffer[2] = (uint8_t) (SUB_FACTORY_RESTORE >> 8);

    // Send data to fuel gauge.
    fuelgauge_write(i2c_handle, 3);
    }

    regards

  • Hello Johann,

    After you perform the factory reset command you will need to power cycle the gauge to re-initialize the RAM and DF to the same values.

    Sincerely,

    Wyatt Keller

  • Thank you Wyatt. 

    I had a look at the datasheet again and don't see that it is mentioned in the description of "factory reset" to follow it up with a power cycle.  Is it mentioned somewhere else.  I don't see a command as such to do a full power-on-reset (power cycle), only the various power modes - is there such a command or does the factory reset require a physical power cycle?

    regards

  • Hello Johann,

    It may not be required, but if you are switching to a new battery I would recommend doing a power cycle. Or just re-program the .senc file used as the golden image.

    If you perform a RESET command after the factory restore and make sure the BAT_DET is set, it should also work.

    Sincerely,

    Wyatt Keller