Ericsson has a recent white paper on Bluetooth Mesh where it’s explained how Bluetooth Mesh extends Bluetooth into IoT usecases.
The paper describes how Bluetooth Mesh works including the publish/subscribe model, two-layer security, managed flooding model, friendship nodes and proxy nodes. It’s explained how, after provisioning, the network ‘simply starts working’ and does not require any centralized operation:
No coordination is required and there is no single point of failure
A building automation usecase is described and modelled to determine the Quality of Service (QoS) which they define as the ratio of transmitted packets that reach the end destination within human perceivable time (300ms in this case).
They conclude that higher relay densities result in higher channel congestion. Bluetooth Mesh systems need to be individually configured in terms of the number of relays, use of acknowledged or unacknowledged transmissions, message repetition schemes and transmission randomization.
While the paper provides a good introduction, it doesn’t address the more pragmatic aspects of implementing Bluetooth Mesh networks. For example, the paper states:
The design of Bluetooth mesh has been driven by a desire to create a simple, efficient and flexible wireless mesh networking solution
In our opinion it is not that simple nor specially efficient. The Mesh standard and implementations are relatively complex leading to the need for complex provisioning and setup. It’s for this reason we only supply our SensorMesh™ component as part of larger solutions where we, as opposed by our clients, provision and setup. Mesh is also not as efficient as we have come to expect from Bluetooth in that devices can’t be battery powered over long periods of time. This is because, unlike most Bluetooth devices, mesh devices are scanning for others for a large proportion of the time.
Also, the paper’s claim that “it works on existing devices after a simple firmware update” isn’t always true as mesh devices need much more memory that’s only available on newer Bluetooth SoCs.