Power consumption increased after DFU implementation

Hello,

we have a zephyr application on nRF52832 DK with nRF Connect for vscode 

Before we added DFU support, we had a power consumption of 28 uA

After adding DFU support, power consumption increased to 8.9 mA

We want to reduce power consumption. What can we do for it?

Best regards

Parents
  • Hello,

    Can you elaborate a bit more on how you added DFU support? What did you add to your project so that the so that the current consumption increased to 8.9mA? Is that something that I could reproduce on an nRF52832 DK? Does it happen if you add DFU support on one of the default samples in NCS\nrf\samples\<subfolder> as well? If so, can you please give some instructions on how to reproduce it?

    BR,
    Edvin

  • Hello,

    I enable UART peripheral for DFU support and add below code in prj.conf file. Similar power consumption happens when I add dfu to one of the default instances.

    CONFIG_MCUMGR=y
    CONFIG_MCUMGR_CMD_IMG_MGMT=y
    CONFIG_MCUMGR_CMD_OS_MGMT=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_BT_L2CAP_TX_MTU=252
    CONFIG_BT_BUF_ACL_RX_SIZE=256
    CONFIG_MCUMGR_SMP_BT=y
    CONFIG_MCUMGR_SMP_BT_AUTHEN=n
    Best regards
  • Hello,

    That is not what I see. I'll admit that the power consumption is not great, but I see an average current consumption of ~1.8mA when adding those configs. How do you measure it, and do you have any screenshots that you can share? Perhaps a project that replicates the 8mA that you are seeing.

    BR,

    Edvin

  • Hello,

    I measure on multimeter. I enable UART peripheral to use DFU support in my app. I'm measuring 3.2 mA when the uart peripheral is active

    When I will not use the DFU support in the application, I turn off the UART peripheral in runtime with the following code and thus reduce the power consumption to 1.7 mA.

    void enable_uart(void)
    {
        NRF_UARTE0->ENABLE = 8;
       
        NRF_UARTE0->TASKS_STARTRX = 1;
        NRF_UARTE0->TASKS_STARTTX = 1;
    }

     

    void disable_uart(void)
    {
        NRF_UARTE0->TASKS_STOPTX = 1;
        NRF_UARTE0->TASKS_STOPRX = 1;

     

        NRF_UARTE0->ENABLE = 0;
    }
    my app will run on custom board and should work for many years on coin cell battery. For this, I am trying to reduce the power consumption to the lowest possible level. What would you recommend to reduce power consumption?
    Best regards
Reply
  • Hello,

    I measure on multimeter. I enable UART peripheral to use DFU support in my app. I'm measuring 3.2 mA when the uart peripheral is active

    When I will not use the DFU support in the application, I turn off the UART peripheral in runtime with the following code and thus reduce the power consumption to 1.7 mA.

    void enable_uart(void)
    {
        NRF_UARTE0->ENABLE = 8;
       
        NRF_UARTE0->TASKS_STARTRX = 1;
        NRF_UARTE0->TASKS_STARTTX = 1;
    }

     

    void disable_uart(void)
    {
        NRF_UARTE0->TASKS_STOPTX = 1;
        NRF_UARTE0->TASKS_STOPRX = 1;

     

        NRF_UARTE0->ENABLE = 0;
    }
    my app will run on custom board and should work for many years on coin cell battery. For this, I am trying to reduce the power consumption to the lowest possible level. What would you recommend to reduce power consumption?
    Best regards
Children
Related