Bluetooth mesh networking

This is an old revision of this page, as edited by MichalHobot (talk | contribs) at 07:00, 23 July 2017. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Bluetooth mesh networking, conceived in 2015[1], adopted on July 13, 2017 (2017-07-13)[2] is a protocol based upon Bluetooth Low Energy that allows for many-to-many communication over Bluetooth radio.

Bluetooth mesh networking
Developed byBluetooth SIG
IntroducedJuly 13, 2017 (2017-07-13)
IndustryLighting, IoT
Physical range100-1000 meters (depending on mesh relaying configuration)

It has been defined in Mesh Profile Specification[3] and Mesh Model Specification[4].

Overview

Communication is carried in the messages that may be up to 384 bytes long, when using Segmentation and Reassembly (SAR) mechanism, but most of the messages fit in one segment, that is 11 bytes. Each message starts with an opcode, which may be a single byte (for special messages), 2 bytes (for standard messages), or 3 bytes (for vendor-specific messages).

Every message has a source and a destination address, determining which devices process messages. Devices publish messages to destinations which can be single things / groups of things / everything.

Each message has a sequence number that protects the network against replay attacks.

Each message is encrypted and authenticated. Two keys are used to secure messages: (1) network keys – allocated to a single mesh network, (2) application keys – specific for a given application functionality, e.g. turning the light on vs reconfiguring the light.

Messages have a time to live (TTL). Each time message is received and retransmitted, TTL is decremented which limits the number of "hops", eliminating endless loops.

Bluetooth Mesh is a flood network. It's based on the nodes relaying the messages: every relay node that receives a network packet that authenticates against a known network key that is not in message cache, that has a TTL ≥ 2 can be retransmitted with TTL = TTL - 1. Message cache used to prevent relaying messages recently seen.

Theoretical limits

It's yet to be determined what are the practical limits of Bluetooth Mesh technology. There are some limits that are built into the specification, though:

Limit for a network Value Remarks
Maximum number of nodes 32 767 The limit is 32768 addresses and while a node may occupy more than one address, practical limit is most likely lower
Maximum number of groups 16 384 This limit applies to physical groups only. Number of virtual groups is 2^128.
Maximum number of scenes 65 535
Maximum number of subnets 4 096
Maximum TTL 127

Mesh Models

As of version 1.0 of Bluetooth Mesh specification, following standard models and model groups has been defined:

Foundation Models

Foundation models has been defined in the core specification. They are mandatory for all mesh nodes.

  • Configuration Server
  • Configuration Client
  • Health Server
  • Health Client

Generic Models

  • Generic OnOff Server, used to represent devices that do not fit any of the model descriptions defined but support the generic properties of On/Off
  • Generic Level Server, keeping the state of an element in a 16-bit signed integer
  • Generic Default Transition Time Server, used to represent a default transition time for a variety of devices
  • Generic Power OnOff Server & Generic Power OnOff Setup Server, used to represent devices that do not fit any of the model descriptions but support the generic properties of On/Off
  • Generic Power Level Server & Generic Power Level Setup Server, including a Generic Power Actual state, a Generic Power Last state, a Generic Power Default state and a Generic Power Range state
  • Generic Battery Server, representing a set of four values representing the state of a battery
  • Generic Location Server & Generic Location Setup Server, representing ___location information of an element, either global (Lat/Lon) or local
  • Generic User/Admin/Manufacturer/Client Property Server, representing any value to be stored by an element
  • Generic OnOff Client & Generic Level Client
  • Generic Default Transition Time Client
  • Generic Power OnOff Client & Generic Power Level Client
  • Generic Battery Client
  • Generic Location Client
  • Generic Property Client

Sensors

  • Sensor Server & Sensor Setup Server, representing a sensor device. Sensor device may be configured to return a measured value periodically or on request; measurement period (cadence) may be configured to be fixed or to change, so that more important value range is being reported faster.
  • Sensor Client

Time and Scenes

  • Time Server & Time Setup Server, allowing for time synchronization in mesh network
  • Scene Server & Scene Setup Server, allowing for up to 65535 scenes to be configured and recalled when needed.
  • Scheduler Server & Scheduler Setup Server
  • Time Client, Scene Client & Scheduler Client

Lighting

  • Light Lightness Server & Light Lightness Setup Server, representing a dimmable light source
  • Light CTL Server, Light CTL Temperature Server & Light CTL Setup Server, representing a CCT or "tunable white" light source
  • Light HSL Server, Light HSL Hue Server, Light HSL Saturation Server & Light HSL Setup Server, representing a light source based on Hue, Saturation, Lightness color representation
  • Light xyL Server & Light xyL Setup Server, representing a light source based on modified CIE xyY color space.
  • Light LC (Lightness Control) Server & Light LC Setup Server, representing a light control device, able to control Light Lightness model using an occupancy sensor and ambient light sensor. It may be used for light control scenarios like Auto-On, Auto-Off and/or Daylight Harvesting.
  • Light Lightness Client, Light CTL Client, Light HSL Client, Light xyL Client & Light LC Client

Provisioning

Provisioning is a process of installing the device into a network. It is a mandatory step to build a Bluetooth Mesh network.

In the provisioning process a network key, common to the mesh nodes and a device key, unique to a given node are being used. Device key is generated by the device and then passed to the provisioner using P-256 elliptic curve cryptography. Network key is transferred to the device from provisioner.

Terminology used in Bluetooth mesh networking specification

  • Destination: The address to which a message is sent.
  • Element: An addressable entity within a device.
  • Model: Standardized operation of typical user scenarios.
  • Node: A provisioned device.
  • Provisioner: A node that can add a device to a mesh network.
  • Relay: A node able to retransmit messages.
  • Source: The address from which a message is sent.

Implementations

Qualified Bluetooth® mesh implementations
Name Submitter Qualification date QDID Type
Bluetooth Stack for Embedded Systems - MESH profile[5] Silvair, Inc. July 18, 2017 98880 Profile Subsystem
Qualcomm Bluetooth Mesh[6] Qualcomm Technologies International, Ltd. July 18, 2017 98856 Profile Subsystem

References

  1. ^ "Get ready for Bluetooth mesh! | Bluetooth Technology Website". blog.bluetooth.com. Retrieved 2017-07-06.
  2. ^ "Low Energy: Mesh | Bluetooth Technology Website". www.bluetooth.com. Retrieved 2017-07-18. {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  3. ^ "Mesh Profile Bluetooth® Specification". Bluetooth Technology Website. 2017-07-13. Retrieved 2017-07-18. {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  4. ^ "Mesh Model Bluetooth® Specification". Bluetooth Technology Website. 2017-07-13. Retrieved 2017-07-18. {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  5. ^ "QD ID 98880 | The Official Bluetooth SIG Member Website". www.bluetooth.org. Retrieved 2017-07-19. {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  6. ^ "QD ID 98856 | The Official Bluetooth SIG Member Website". www.bluetooth.org. Retrieved 2017-07-19. {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)