nRF5340 and nPM1300 – Fuel Gauge Update Frequency and Accuracy

We are developing a device based on the nRF5340 with an nPM1300 PMIC. The device has three power modes:

  • Active mode: most peripherals are enabled, and BLE communication is ongoing.

  • Standby mode: a low-power wait state; user interaction transitions the device back to Active mode.

  • Power-off mode: the PMIC fully shuts off system power.

The device will spend most of its time in Standby mode, so we’re trying to optimize power consumption in that state. Our questions concern the fuel gauge feature in the nPM1300 and how its update behavior affects accuracy:

  1. How frequently should the fuel gauge update function be called?

  2. Can the update interval be varied dynamically?
    For example, can we call it more frequently in Active mode (e.g., every 1 s) and less frequently in Standby mode (e.g., every 10 s)?
    If so, will this variation affect accuracy when switching back to Active mode—specifically for State of Charge, Time-to-Empty, or Time-to-Full readings?

  3. Alternatively, can we pause fuel gauge updates completely in Standby mode and resume in Active mode without significantly degrading measurement accuracy once resumed?
    This option might provide the best power savings for our use case.

Parents
  • Hi 

    In general the fuel gauge iteration rate should follow the activity rate of the application. So if you are in for example a stable ble connection with a slow connection interval) you can run it every 5s instead of every second. 
    If the activity increases you will get more accurate results of the fuel gauge iteration rate also increases. 

    If current consumption is very low, typically low microamp range when only RTC is running, you can use the nrf_fuel_gauge_idle_set() function to inform the fuel gauge of the expected current consumption in this state (too low to measure accurately by nPM1300), and no further iterations are required until activity resumes.

    We normally uses a 1 second iteration interval during battery discharge and 0.5 when charging. 

    We have also covered this a bit here

    Regards

    Runar

Reply
  • Hi 

    In general the fuel gauge iteration rate should follow the activity rate of the application. So if you are in for example a stable ble connection with a slow connection interval) you can run it every 5s instead of every second. 
    If the activity increases you will get more accurate results of the fuel gauge iteration rate also increases. 

    If current consumption is very low, typically low microamp range when only RTC is running, you can use the nrf_fuel_gauge_idle_set() function to inform the fuel gauge of the expected current consumption in this state (too low to measure accurately by nPM1300), and no further iterations are required until activity resumes.

    We normally uses a 1 second iteration interval during battery discharge and 0.5 when charging. 

    We have also covered this a bit here

    Regards

    Runar

Children
No Data
Related