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

Zigbee + FreeRTOS End Device power consumption

Hi,

We have been working with an end device based on nRF52840 with nRF5_SDK_for_Thread_and_Zigbee_v4.0.0_dc7186b

By measuring with the power profiler kit, we got a system's power consumption of about 50uA. But after we call zboss_start_no_autostart() and zboss_main_loop_iteration() periodically (we tried from 50ms to 1s) we realized that the current consumption varies from 500uA to 1mA. This is how the Zed is configured:

  zb_set_ed_timeout(ED_AGING_TIMEOUT_64MIN);
  zb_set_keepalive_timeout(ZB_MILLISECONDS_TO_BEACON_INTERVAL(3000));
  zb_set_rx_on_when_idle(ZB_FALSE);

Since we're using FreeRTOS and SoftDeivce, we can't call zb_sleep_now(). Is there any way to turn off radio during inactivity times or any other
considerations?
Also, is there any improvements on this topic betweennRF5_SDK_for_Thread_and_Zigbee_v4.0.0 andnRF5_SDK_for_Thread_and_Zigbee_v4.1.0?

Thanks in advance.
Regards,

Santiago
  • Hello,

    Can you please see my colleague, Susheel's, reply in this ticket:
    https://devzone.nordicsemi.com/f/nordic-q-a/35073/high-power-consumption-of-softdevice

    I see that this is at least not "patched" in the 4.0.0 Thread and Zigbee SDK.

    Best regards,

    Edvin

  • Hi Edvin,

    Thanks for your response. But the increase on current consumption was ONLY after zigbee was initialized and  when calling zboss_main_loop_iteration() function in the zigbee task,

    Prior to that, the calling to sd_app_evt_wait() was not generating any issue like your link mentions

    Regards

  • Can you please test either way?

    Can you also see whether the current consumption is the same if you try one of the non-freertos examples? As far as I can tell, there are no changes on the FreeRTOS front between SDK 4.0.0 and 4.1.0.

    Let me know if the current consumption differs a lot between the non-FreeRTOS and FreeRTOS examples. I will check with our Zigbee team if a higher current consumption is a known issue, and if there is a workaround for.

    Is there a particular reason for why you need to use FreeRTOS? 

    BR,

    Edvin

  • Hi Edvin,

    No, there is no chance to remove FreeRTOS since it is not a demo or a simple project. Radio power is automatically handled by SoftDevice?

    What about Zboss stack? Was there any remarkable change from 4.0 to 4.1 about power? Is there any extra tunning in this stack to implement?

    Regards,

  • sjf said:
    No, there is no chance to remove FreeRTOS since it is not a demo or a simple project.

     You may of course have your reasons, but I am just saying that you can do quite complex things without FreeRTOS, and possibly more effective. It is worth noticing that you can do quite a lot based on events.

    However, Yes. It is the softdevice that has first priority on the radio. The Zigbee stack will ask the softdevice for timeslots in between the BLE events. The softdevice will grant timeslots to the zboss stack, so inside these the zboss stack controls the radio. 

    When you are using the mesh technologies in combination with BLE, the mesh technologies will have control of the radio most of the time. BLE is only used in short bursts. 

    I am still waiting for a reply from our Zigbee team. Stay tuned. 

    BR,

    Edvin

Related