Low Power consumption for nRF52 series of devices

I was looking for different power options for nRF52/53 series of devices and possible want more information on how to reduce power such that device can run for months on a battery.

There was one interesting thread which discuss this for nRF51 series of devices. But that one is quite old (over 9 years now). So can someone from Nordic guide on this how to reduce power consumption of the device and individual blocks of SoC?

https://devzone.nordicsemi.com/f/nordic-q-a/1657/how-to-minimize-current-consumption-for-ble-application-on-nrf51822

Note: I have selected some tags to address topic for power consumption discussion.

  • Hi,

    Many of the options discussed in that thread is also relevant for the nRF52 and nRF53 series. In addition we have this blog post for the nRF52 which should be a good read for this topic, and this for the nRF53 and nRF52.

    regards

    Jared

  • Hi, 

    Thanks for posting.

    One more question is how much minumum current can be achieved for BLE device advertising itself? My research shows that in the range of arround ~10uA.

    Is that correct?

    Right now I can measure current on nRF52840-DK of arround ~100uAmps. With this the device can run on a battery such as CR2032 for arround ~60 days. Is that reliable?

  • Hi,

    It depends on several factors such as how your board is configured (DC-DC vs LDO) etc. But you can use the online power profiler tool for BLE to estimate what current you'll get with your connection parameters and configuration,

    regards

    Jared 

  • I was working on this topic and want to ask some more question regarding power consumption and reducing the power on nRF52840 device.

    Currently, I do not have Nordic PPK-2 and measure the current through ampere meter via header P21 on the nRF52840-DK. The current consumption is around ~25uAmps when device it ideal(not advertising) with spike of around ~100uAmps when device do advertise.

    To reduce the power I did some changes to my application. First, I disabled the serial monitor and Logging through config options. This reduces significant amount of current consumption.

    Still I think there can be reduction in power consumption hence I am posting some questions and my current code.

    I have disabled the peripherals which are not needed in device.overlay file. As the following file, there are many of them in disabled state.

    &uart0 {
        status = "disabled";
    };
    &uart1 {
        status = "disabled";
    };
    
    &spi0 {
    	status = "disabled";
    };
    &gpiote{
        status = "disabled";
    };
    
    &spi1 {
    	status = "disabled";
    };
    &spi3 {
        status = "disabled";
    };
    
    &qspi {
        status = "disabled";
    };
    
    &adc {
        status = "disabled";
    };
    
    &pdm0 {
    	status = "disabled";
    };
    &i2c0 {
    	status = "disabled";
    };
    
    &i2c1 {
    	status = "disabled";
    };
    
    &nfct {
        status = "disabled";
    };

    In Kconfig file, I have enabled DC-DC converter which in my understanding enabled by default and I do not need to enable through power API in my application. The same is for clock configuration which I have enabled the external low power LFCLK 32khz clock through Kconfig as well as in my code by nrfx_clock_start(NRF_CLOCK_DOMAIN_LFCLK);

    I also have powered down unused RAM by power_down_unused_ram();

    My question is what else can I change in my code to reduce power?

    The config file is as follows.

    CONFIG_GPIO=y
    
    CONFIG_BT=y
    CONFIG_BT_CENTRAL=y
    
    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_SMP=y
    CONFIG_BT_DIS=y
    CONFIG_BT_DIS_PNP=n
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_GATT_CLIENT=y
    
    CONFIG_BT_DEVICE_NAME="Key"
    CONFIG_BT_DEVICE_APPEARANCE=833
    
    CONFIG_PM=y
    # Required to disable default behavior of deep sleep on timeout
    CONFIG_PM_DEVICE=y
    
    CONFIG_LOG=n
    CONFIG_SERIAL=n
    
    CONFIG_BOARD_ENABLE_DCDC_HV=y
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
    CONFIG_RAM_POWER_DOWN_LIBRARY=y
    
    CONFIG_CAF_POWER_MANAGER=y
    CONFIG_CAF_POWER_MANAGER_TIMEOUT=10
    CONFIG_CAF_POWER_MANAGER_STAY_ON=y

Related