Zigbee coordinator sleep mode

Hi, I have an unusual setup of the zigbee devices. My goal is to have a remote that manages the connections and controls multiple  end-devices. My reason for doing this is so no additional coordinator is needed for a simple installation of the end-devices. In this case the end devices are roller blinds motors. This approach is up for discussion if there is a better approach.

I have successfully implemented this but the problem lies in the power consumption of the remote. Currently the current draw of the remote is around 6mA continuously. My plan at the moment is to implement the power off sleep state when the remote has not been used for X time. The problem is that I cant seam to figure out why the remote will not fully power off or wake back up from the interrupt when zigbee has been enabled. If I comment out zigbee_enable() the power off mode works fine and boots back up when a button is pressed. 

I know that the coordinator is not meant to be battery powered but this way makes a much smoother user experience not having to deal with additional dongle. Is there some zigbee configurations I need to adjust for the power off mode to work? 

Measurements are:
Remote on and connected: 6.6mA
Remote power off zigbee enabled: 0.5mA
Remote power off zigbee disabled: <0.1mA

I am measuring current with a multimeter so my reselution is only 0.1mA

  • Hi,

    I have an unusual setup of the zigbee devices. My goal is to have a remote that manages the connections and controls multiple  end-devices. My reason for doing this is so no additional coordinator is needed for a simple installation of the end-devices. In this case the end devices are roller blinds motors. This approach is up for discussion if there is a better approach.

    Will all devices (coordinator and end devices) be based on nRF52840? In that case, have you considered using BLE for direct control of the device when there is no external Zigbee coordinator avaiable? The nrF52840 is capable of running both switched and dynamic multiprotocol solutions with BLE and Zigbee. Running the remote as a BLE central will also draw some current when you scan for new devices, but once the devices are in connected mode, the current consumption will be low. You can for instance use a button to enable scanning for a short period when you want to connect new devices.

    I have successfully implemented this but the problem lies in the power consumption of the remote. Currently the current draw of the remote is around 6mA continuously.

    This is expected, when the coordinator is running, the radio will be in RX mode all the time it is not transmitting, witch a current consumption of around 6 mA.

    My plan at the moment is to implement the power off sleep state when the remote has not been used for X time.

    How long will the timeout period before power off be? The 6 mA current draw will drain the battery quite quickly if you have a long timeout period, but choosing too short timeout will cause bad user experience due to latency of re-establishing the Zigbee network after wakeup. When you say power off, do you mean put the chip in System OFF mode? 

    The problem is that I cant seam to figure out why the remote will not fully power off or wake back up from the interrupt when zigbee has been enabled. If I comment out zigbee_enable() the power off mode works fine and boots back up when a button is pressed. 

    Do you get any log output from the device for the two different scenarios? Can you post the code you use to enter the "power off mode"?

    I know that the coordinator is not meant to be battery powered but this way makes a much smoother user experience not having to deal with additional dongle.

    Have you considered the user experience from the long time it takes to re-establish the network after wakeup? Depending on the configurations, the Zigbee end nodes will only advertise its presence at regular intervals, which means it may take long time for all the nodes to attach to the network. This will give long latency from user button press until the roller blinds motors starts moving.

    Finally, which SDK version are you using?

    Best regards,
    Jørgen

Related