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

Low power remote control

Hi!

We'd like to include a battery-powered remote control in our Bluetooth mesh network, i.e. we'll have a need for low power consumption.

In our mesh, devices may opt in and out over time.

I see the following alternatives:
1. A custom, parallel GAP/GATT solution.
2. A "forced" BT mesh solution
3. Wait for the implementation of the official Low power & Friend features of the BT mesh specification.

# 1

At
devzone.nordicsemi.com/.../124282
David writes:

"You should be able to implement a connection oriented low power node using the GATT proxy. This will use a GAP/GATT connection to the Mesh proxy. This will enable you to just use the Mesh proxy and get to the low power state for the node."

1 a) If a custom BLE solution is implemented, possibly through GATT proxy, won't GATT be too slow for a remote control scenario? We can't be sure of what devices exist or are in reach, so when the user presses a remote control button, if there is no established connection, the remote control would have to scan(?) and connect to a device, before sending a command.

1 b) If a custom GAP is used instead, what are the possibilities for a mesh node to pick up on advertisements coming from the remote control? From what I understand BT mesh is also using GAP as the bearer, so a node would have to interleave listening to GAP for BT mesh and this custom GAP(?)


# 2

The Mesh profile specification (2.2.5) reads:

"This specification does not require devices to coordinate transmissions, make connections, or restart security on every connection; thus facilitating low power operation."

2 a) Is there a possibility to simply turn off the radio, or avoid some operations to cut down on power consumption?
But I suppose there would be problems with the IV index update, and a recovery is taking too long for us (5s) and also seems impossible to do multiple times (once within 192 hours). From the Mesh profile specification (3.10.6):

"Given that nodes collectively transmit a Secure Network beacon once every 10 seconds, a low duty cycle node will have to listen for an average of 5 seconds to recover the current IV Index before transmitting and receiving mesh messages. If a Low Power node has insufficient power to listen for 5 seconds, then it must stay up to date with the current IV Index by polling its Friend node at least once every 96 hours.
The node shall not execute more than one IV Index Recovery within a period of 192 hours."

2 b) If a node only acts as a client that only sends unacknowledged messages, would this cut down on power consumption considerably? or does simply being a node of the mesh network imply high battery draw?

# 3
When it comes to the low power and friend feature, I wonder about the friend connection.

The Mesh profile specification (3.6.6.3.2) states:
"Note: The above requirement implies that a Low Power node should collect all stored messages at least once every 96 hours, otherwise the Friend node may discard the stored messages before the Low Power node can receive them."

3 a) What happens when the friend is not available, i.e. how fast can a lower power device notice the lost connection and find and establish a connection to another friend node?

3 b) Do you have any updates on the release of this feature? How likely is it to be part of the next release? This blog post "cautiously" says Q3, 2018:
devzone.nordicsemi.com/.../131951


# 4

4 a) Are there other options?

Thank you!

Parents
  • I would go with scenario 1, custom GAP/GATT solution. We already have the proxy node example here as a part of the light switch example, which you could base your mesh network off of. 

    1a) Why would GATT be too slow? I believe you could just increase the connection interval to speed up the communication between the proxy mesh node & the remote control.

    1b) Bluetooth Mesh uses the PB-ADV bearer to communicate between the different nodes in the mesh network. As far as I understand, David did not mean GAP or GATT based communication, but both. GAP takes care of discovery, connection & link management in a BLE link, whereas GATT says how you can package, show & send data over BLE. See this link for more info regarding this.

    2) Regular Bluetooth Mesh nodes should not be battery powered, as the radio needs to be on for most of the time to listen for new mesh messages from other nodes.

    3a) This could be done pretty quickly as far as I am aware. You can set the connection supervision timeout in most sdk examples, which is the time until the link between a BLE central & peripheral is considered lost.

    If you are in this situation, you would need to store all of the messages that have not been sent to the low power node in all friend nodes I guess. I am not sure if the Bluetooth Mesh spec says anything about this.

    3b) I will send you a private message regarding this.

    4) You could take a look at the multilink example if you do not need a mesh network. I have often noticed that customers will want to use a mesh network for a certain application, yet the multilink example would work just as well for the application. In my opinion, it may also be a bit easier to understand.

Reply
  • I would go with scenario 1, custom GAP/GATT solution. We already have the proxy node example here as a part of the light switch example, which you could base your mesh network off of. 

    1a) Why would GATT be too slow? I believe you could just increase the connection interval to speed up the communication between the proxy mesh node & the remote control.

    1b) Bluetooth Mesh uses the PB-ADV bearer to communicate between the different nodes in the mesh network. As far as I understand, David did not mean GAP or GATT based communication, but both. GAP takes care of discovery, connection & link management in a BLE link, whereas GATT says how you can package, show & send data over BLE. See this link for more info regarding this.

    2) Regular Bluetooth Mesh nodes should not be battery powered, as the radio needs to be on for most of the time to listen for new mesh messages from other nodes.

    3a) This could be done pretty quickly as far as I am aware. You can set the connection supervision timeout in most sdk examples, which is the time until the link between a BLE central & peripheral is considered lost.

    If you are in this situation, you would need to store all of the messages that have not been sent to the low power node in all friend nodes I guess. I am not sure if the Bluetooth Mesh spec says anything about this.

    3b) I will send you a private message regarding this.

    4) You could take a look at the multilink example if you do not need a mesh network. I have often noticed that customers will want to use a mesh network for a certain application, yet the multilink example would work just as well for the application. In my opinion, it may also be a bit easier to understand.

Children
  • Thank you for a quick and elaborate response!

    If we'd go with scenario 1, I suppose we'd need some way to secure and isolate our custom BLE communication (the low power remote control should still be tied to a mesh, albeit not as a BT mesh node, and shouldn't be able to control devices belonging to any other mesh).

    Do you have any suggestions here? I could imagine something based on the same security keys that are used in the BT mesh messages (NetKey etc.)

    Thank you for suggesting other examples, but we're pretty set on using Bluetooth mesh since the standard allows for future extensions of our product portfolio and possibly easier interoperation with external systems.

  • Sorry for the delayed response. This case was marked as "Verified Answer", which unfortunately made it impossible for me to see in my case list.

    See this link regarding Bluetooth security. That will give you a good intro to the different security options.

Related