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

What is the best practice approach for a mesh of many low power nodes and one client?

Hi, 

I am working on a project which involves a number of low power nodes 4-16+ distributed over a relatively large area. There is one client which wants to retrieve data from these nodes at a periodic interval.

In order to preserve battery life the low power nodes want to be asleep as much as possible, however then they will miss messages unless the request is perfectly in sync.

From what I have read a bluetooth mesh where the client is a friend node would work to achieve this by holding messages for the low power nodes until they wake up, however this does not seem to be an option currently since the LPN / Friend node features are not available on the client side for implementation.

So my questions are:

- What other option do I have to retrieve messages from these nodes while allowing them to sleep the majority of the time? Should they push their updates from server to client?

- If a push type method is used, how would the configuration of the elements and models look? Would there be one element per sensor in the network? Or one common element that they all publish to?

- When are the low power node / friend features going to be available?

- When the friend features are available, can a client be a friend to it's nodes or does it need to be a separate router node?

Thanks!

  • Hi Sloth, 

    You are right, we only provided a precompiled hex file for Friend node. But the source is available on Zephyr project (not from Nordic). We are working on providing the Friend role in our stack in the next SDK release v3.2 

    There are a few alternatives for Low Power Node:

    - Using advertising packet to send data to relay node. This is similar to the Enocean example we have in the SDK. The sensor node (low power) only wake up to broadcast data and then sleep again. But this solution doesn't provide acknowledgement to the sensor if the relay receives the data or not. 

    - Establishing a connection then send data and the disconnect and sleep again. This actually similar to friendship, but you implement it on GATT connection. 

    - Simply put the normal node to sleep. There is no obligation in the spec that the node have to be active all the time. You can sleep up to 96 hours without the need to update the IV index number. But this solution doesn't cover the caching of the data for the LPN node on the relay node. However the node can simply query the client if there is any data.

Related