BLE_MESH: dynamically change between node and relay mode

Hi,

We are planning a new project that needs to use very low power. Since relay mode uses more power than simple node, can we turn off relay mode on all nodes until an event happens and we need to propagate to the entire mesh network ?

The reason for this is to save power. We are also interested in a good estimate for power consumption for a node and for a relay node.

We are using a nRF52840 with low frequency crystal to get lowest possible power for slot syncing.

best regards,

Atle

  • Hi again, we are also considering the following sceme to lower the power consumption even further:

    1. disconnect the BLE mesh to let all nodes stay in advertising mode.

    2. When the system is in warning/alert state, the mesh will start connecting.

    3, when the alarm starts some minutes later, the mesh should be up and running with relay nodes and all.

    Do you think this is a good approach to save power and have a trusted system?

    Will it use considerable less power when in advertising mode than when the mesh is connected?

    best regards,

    Atle

  • Hello,

    To clarify some things:

    Since relay mode uses more power than simple node, can we turn off relay mode on all nodes until an event happens and we need to propagate to the entire mesh network ?

    When you say that you want to turn off relay mode, do you mean only that, or are you talking going into a low power mode?

    For a normal mesh node, there is no added power consumption related to relaying messages. In general, normal Mesh nodes are not that low power. They draw somewhere between 6 and 15 mA (depending on supply voltage and regulator mode). That current consumption is mostly originating from the radio being constantly in RX mode. There is no significant difference between the radio being in RX mode or TX mode. So if you say that you want to disable the relay messages, that just means that it will remain in RX mode instead, and you don't really save any power. 

    You can check the current consumption of different modes here:

    https://docs.nordicsemi.com/bundle/ps_nrf52840/page/radio.html#ariaid-title114

    You should be aware that there is something called Low Power nodes. This is shown in the Light switch sample, if you enable support for it before building:

    https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/mesh/light_switch/README.html#low_power_node_requirements

    Then you can see from this description that you can turn this on and off. This does, however require friend nodes that are "normal power" Mesh nodes to be spread around, within radio range of all low power nodes, and they also need to reach eachother, so that you have full Mesh coverage also without the low power nodes. 

    atlesilgjerd said:
    we are also considering the following sceme to lower the power consumption even further:

    Might be possible. There is no out of the box solution for this. It sounds possible to some extent, but removing mesh nodes from the network tend to fail over time, as the network is maintained, unless the nodes regularly connects to the network (it has to do with key updates and things like that). 

    What I am thinking here, is that the devices enter an alternate mode, where it is just advertising (connectable), and waiting. If someone connects to it, and tells it to join the network, it will do so, and then, I assume, also look for other devices nearby advertising with your advertisements, waiting to be told to join the network. 

    In this case, you should boot up the network, perhaps every 24h, to make sure that they are all synced (and all still alive). Then, when receiving a confirmation that the nodes can do so, enter the advertising state again. 

    Before going to production with this, you should test extensively. Pretend they are woken up every 24 hour, but in reality, when the devices are receiving the confirmation to go to sleep, reset (so they will loose sense of time), and enter advertising mode. Then reboot the network e.g. every 1m, and let it run for a couple of days/weeks, to see that it holds up with network key and something called IV Index updates.

    Best regards,

    Edvin

  • Hi,

    Thank you very much for your answer. As you can see, we are not expert in this field (yet!). We will continue with the two options "low power nodes" and deconstructed mesh. I am a bit surprised by the news that the nodes are powered in RX all the time, I would expect there was a time-slot sync on this aspect of the net as well.. But maybe that idea was skipped because it added to much complexity to the standard..

    best regards,
    Atle

  • Hello Atle,

    Yes. In normal BLE, we have this timeslotting, but it would be too complex to maintain the same in an entire network, I guess. At least it is not how it is done in the Mesh specification. All normal (not low power) nodes in Mesh are in RX 100% of the time, apart from when they are transmitting themselves. 

    The same goes for Zigbee and Openthread (and hence also Matter). All the full-fledged nodes are in RX ~100% of the time. 

    Best regards,

    Edvin

  • Hi,

    Thank you very much for the update. I appreciate it.

    best regards,
    Atle

Related