This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DFUButtonless consume power?

Hi,

I'm using NRF52832 with s132 softdevice for a low power project. I notice that when running firmware with DFU Buttonless, the SoC consume more power than without it.

I refer ble_app_buttonless_dfu example for my firmware. From my understanding, ButtonlessDFU is enable when calling bleDfuButtonlessAsyncSvciInit().

My question is:

- Does ButtonlessDFU truely consume more power than just flash using IDE?

- Is there any way to reduce power when using Buttonless service?

Thanks a lot for helping!

  • Hi,

    The buttonless service itself will not have any impact on the idle current. The buttonless template application does however enable logging over UART which will increase the current consumption some. If you want to measure the idle (System ON) current I suggest you disable logging over UART by setting NRF_LOG_BACKEND_UART_ENABLED to '0' and also comment the call to advertising_start() in main().

    Best regards,

    Vidar

  • Hi Vidar,

    Thank you for supporting.

    I will describe my prj so you can get the idea. I have a firmware using BLE to connect with mobile. I enable dfu butonless service, ble nus and ble bas service in the firmware.

    I flash the firmware in 2 way:

    #1: I erase the chip and flash hex file using Segger IDE

    #2: I flash the bootloader, compress firmware to a zip file and flash using buttonless example.

    The firmware in 2 above cases are almost the same, in #2, I just add bleDfuButtonlessAsyncSvciInit() at the begining of main().

    The result is firmware in #2 consumes more power than #1.

    I wonder if bootloader of bleDfuButtonlessAsyncSvciInit() consumes power?

  • Hi,

    How much current are you measuring for scenario #1 and #2? The buttonless mechanism should not have any impact on the idle current, but maybe there is an issue with the integration that causes your program to crash? Have you tried to debug the new application to see if that might be the case? 

  • The idle current for #1 and #2 is about 10uA and 2mA. I debugged, both scenario work correctly. Is it possible that the bootloader consumes power while SoC is running main()?

  • The bootloader will not consume power  when the app is running.

    Is the implementation of your bleDfuButtonlessAsyncSvciInit() function identical to the ble_dfu_buttonless_async_svci_init() function used in the template example? What happens if you don't call bleDfuButtonlessAsyncSvciInit() in your new application?

Related