Zigbee low power end device

Hi,

What is the lowest possible current consumption for nrf52840 dongle dev board with zigbee ?

I'm using this for development and i'm getting 20-30uA in idle. Is it possible to go down with current consumption to 2-3uA ? I know that it is possible without zigbee because I prepared a minimal test app that just calls k_sleep in main and then the current consumption is about 2-3uA. But when I created minimal test app with zigbee I cannot get lower than 20uA.

Below is my minimal zigbee app:

#include <zephyr/kernel.h>
#include <ram_pwrdn.h>

#include <zboss_api.h>
#include <zigbee/zigbee_app_utils.h>
#include <zb_nrf_platform.h>

void zboss_signal_handler(zb_bufid_t bufid)
{
    zigbee_default_signal_handler(bufid);
    if (bufid) {
        zb_buf_free(bufid);
    }
}

int main(void)
{
    zb_set_rx_on_when_idle(ZB_FALSE);
    power_down_unused_ram();

    zigbee_enable();

    k_sleep(K_FOREVER);
    return 0;
}

CONFIG_SERIAL=n
CONFIG_GPIO=n
CONFIG_CONSOLE=n
CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n

CONFIG_ZIGBEE_ADD_ON=y
CONFIG_ZIGBEE_APP_UTILS=y
CONFIG_ZIGBEE_ROLE_END_DEVICE=y

CONFIG_RAM_POWER_DOWN_LIBRARY=y

CONFIG_NET_IPV6=n
CONFIG_NET_IP_ADDR_CHECK=n
CONFIG_NET_UDP=n

Parents
  • Hello,

    I see that you have made use of the low-power recommendations here. That's good.

    Are you able to share your measurements you are taking of the idle mode with us? The value is close to the RAM on, GPIOTE input (event mode) scenario for the sleep current consumption on nRF52840. This mode has full RAM retention though, and with the power_down_unused_ram() function the actual consumption is more expected to be somewhere between a "no RAM retention" and a "full RAM retention" scenario. Do you see any difference when enabling and disabling the function?

    To reduce power consumption in general, you can increase the sleep time by increasing the long poll interval and keep alive timeout.

    Best regards,

    Maria

  • More info.

    I power the board with 3.3V into VDD pin, VDD shorted with VDDH. The DCDC buck converter is enabled by default board dts. I can see that in most basic test case (jus k_sleep in main) it makes difference whether VDD and VDDH is shorted or not, when not shorted then the current is around 13uA, with shorted the current is around 3uA.

    I also made a full test case, scene controller + power management clusters, commands sent to coordinator on button press, battery voltage reporting using ADC. And this test case uses exactly the same amount of current in idle as in minimal zigbee test case attached in the first post.

    So if the minimal zigbee and full zigbee test cases consumes the same amount of current in idle, and taking into account that the full test case must use some kind of button triggered event to wake up it looks like both cases use it.

Reply
  • More info.

    I power the board with 3.3V into VDD pin, VDD shorted with VDDH. The DCDC buck converter is enabled by default board dts. I can see that in most basic test case (jus k_sleep in main) it makes difference whether VDD and VDDH is shorted or not, when not shorted then the current is around 13uA, with shorted the current is around 3uA.

    I also made a full test case, scene controller + power management clusters, commands sent to coordinator on button press, battery voltage reporting using ADC. And this test case uses exactly the same amount of current in idle as in minimal zigbee test case attached in the first post.

    So if the minimal zigbee and full zigbee test cases consumes the same amount of current in idle, and taking into account that the full test case must use some kind of button triggered event to wake up it looks like both cases use it.

Children
No Data
Related