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

ble_app_hrs_freertos vs ble_app_hrs power consumption

Hi there,

I was comparing the power consumption of ble_app_hrs_freertos and ble_app_hrs examples on nRF52840 DK. The average VDD current is 7.4 mA for the example running FreeRTOS and less than 200 uA for the one without.

Is there a solution for reducing the current consumption when using FreeRTOS? I know that the scheduler is more complex, but still this is very huge difference. Are you considering adding and example with FreeRTOS and NUS, as this looks like quite popular thing that people are doing - for me such an example would be essential.

I know that I could use Zephyr, but as it's written in your documentation, nRF5 SDK is mature and production ready, and the nRF Connect SDK is still developed rapidly and is not ready for production.

Thank you!

Parents Reply Children
  • Yes, this is the example. I tried the peripheral_uart example from nRF Connect SDK 1.3.0 and the power consumption is 0.7 mA, which I believe is also running Zephyr RTOS. I hope FreeRTOS can be further optimized, but this still has to be investigated.

    EDIT:

    I found 2 solutions for the too high power consumption:

    Solution 1: change #define configUSE_IDLE_HOOK 1 to 0 (in FreeRTOSConfig.h) - average power consumption below 400 uA (the DC measurement of the multimeter varies a lot).

    Solution 2: Add sd_app_evt_wait(); in void vApplicationIdleHook( void ) (in main.c) - average power consumption below 200 uA (the DC measurement of the multimeter varies a lot).

    Is it possible that a Nordic Semi engineer confirms if one of both are legitimize solutions and if yes, which one is better? Thank you!

Related