Bluetooth Low Energy started life as a simple point to point “master/slave” protocol, enabling low power connections. Indeed, we still see many new customer applications requiring little more than this – the ability to connect new or existing pieces of electronic equipment easily and wirelessly to a smartphone, tablet or computer remains very powerful. Just with this simple use-case, you have a rich range of possibilities – medical/health related wearable, easy interface to industrial electronics, battery powered monitoring add-ons, and many more.
Nevertheless, Bluetooth Low Energy has continued a fast-paced evolution, increasing speed, range, adding new location capabilities, and recently, the ability to “mesh” many devices together in an ad-hoc network.
This capability brings BLE into “competition” with other technologies such as Zigbee – a quite long establish protocol, and newer ones such like Thread, promoted by Google. This white paper aims to introduce these different mesh networks, explain what they are, what the differences are, and provide a little guidance on which one you might choose.
As Insight SIP, we can happily take a position of benign neutrality in these “protocol wars”, as our latest modules can support Zigbee, Thread or BLE mesh, and indeed can run both protocols simultaneously so allowing a “bridge” between one type of network and another.
So what is a Mesh network, and why might you want one ? At the most basic level, a mesh network is simply a network topology where there are multiple routes between one node and another, with intermediate nodes receiving and forwarding messages. The Internet is in effect a type of mesh network.
However, here we are concerned with simple low power, low data rate, and low cost networks. The typical applications of such networks are smart home, smart lighting, smart building environments. The network is used to control lighting or other building fixtures (e.g. shutters or blinds) , send messages between different units (e.g between a thermostat and a heating unit), or provide alerts (intruder alarm).
BLE in a point to point situation provides a range of around 50m or so in ideal conditions, or maybe a few hundred metres if the long range BLE is used. However, inside a building, conditions are usually a long way from ideal, particularly if you have thick walls, or different floors. Zigbee or other technologies based on the same ISM 2.4 Ghz have similar limitations. So in practice, it is unlikely that in anything but a very small home, you could cover the entire area with a single device.
A mesh network provides a solution to this range problem. Multiple nodes capable of relaying messages are installed, and so messages pass between the source and the destination by a series of “hops”. So whilst the source and destination might be separated by a distance too long to reach directly, as long as each intermediate “hop” is within transmission range, the message will reach its destination. In addition, you can define groups of devices to receive messages.
Differences between networks
BLE Mesh, Zigbee and Thread all offer this kind of Mesh capability. However, they go about it in different ways, and offer different capabilities as a result.
All of these protocols are based on the same basic lower level parts of the stack, the IEEE 802.15.4 standard, which defines the Physical and MAC layer.
The ways that the different standard route messages is one of the main differences between the standards. Routing is the means by which the mesh network ensures that a message arrives at its destination.
BLE Mesh is a (limited) flooding mesh, which is the simplest type of routing (or in fact barely routing at all). It means that any message received is broadcast on, so that every message is sent to every node on the network. A provision is made so that once a message has been relayed, it won’t be relayed again (to stop messages going endlessly around in circles), and it is possible to configure a limit to the number of “hops” a message can take.
This routing method is evidently fairly crude and is not particularly efficient. There are lots of redundant messages flying around. But it is quite robust, and simple to configure. There is no “router”, all nodes are equal, and adding nodes to the network is simple. If a node fails, messages should transparently find a way around it, provided the mesh has been layed out so there is no “critical link”.
So BLE mesh is ideal for an ad-hoc, easy to install and flexible network, where messages are exchanged at a low rate. Lighting is an obvious example – lights are switched on and off relatively rarely, and it is useful to be able to communicate with a group of lights to create a particular lighting “scene”. Furthermore, it is highly likely that lights will be placed sufficiently close to one another to create a mesh with many potential paths through it.
Zigbee adopts a more structured routing approach. There is a single Zigbee Co-ordinator which is the first network node created when creating the network. Zigbee Routers are then added to the network, which can route messages around, and finally Zigbee end nodes are connected to routers.
Zigbee creates routing tables to define routes from one node to another, via issuing route discovery messages. So the network “knows” where to send messages. In case of node failure, the network will automatically re-route messages via an alternative route, provided one can be found.
The disadvantage of Zigbee is that it is more complex and has a single point of failure in the co-ordinator. It best suited to a case where there is a relatively high message rate, but with a fairly stable pattern of usage. It can be adapted and changed, but it is a more complex process and requires an understanding of the existing architecture. It also is a standalone proprietary protocol, with limited connections to other standards.
Thread is a fairly new standard, driven quite heavily by Google although it is in principle a multivendor standard. It is full IP based thus allowing full IP access to a particular node. It is the most open but also the most complex. Routing is carried out in a similar way to Zigbee, but instead of a single Co-ordinator, Thread has the concept of a “Border Router”, which forms the interface between the Thread network and other IP based networks. So this could be an link to a LAN, or WiFi or some other cloud access.
Multiple border routers are allowed. It also has the concept of a “Leader”, which is the node that allows new routers to join the network, but unlike Zigbee, this is a role (adopted by a Router or Border Router) rather than a physical device, and can re-allocated from one router to another.
If one was to summarise the different types of network, one could simplistically say BLE Mesh is the simplest (but least efficient), and Thread the most complex, offering the greatest degree of interoperability with different external networks. Zigbee would sit in the middle but has the advantage of the longest track record.
Low Power networking node types
One of the original strengths of BLE was that it offered very low power communications capability. Power consumption is highly dependent on use-case, but devices that just want to occasionally send data, a coin cell battery could run a BLE application for months or even years.
So does the same apply for Mesh? Well, the answer is yes and no.
The relay or router nodes in a Mesh – in all of the protocols described above – are not very low power, in the sense of the classic BLE use case. They have their receivers always on, and so are consuming 5-10mA, as opposed to the uA a BLE device can run at if it is mostly in sleep mode.
There is a provision for very low power nodes in the Mesh, but usually these have to be linked to a particular Relay or Router node, which will store and forward messages for the low power node. The low power node can’t send messages on and form part of the Mesh, they are “end nodes” only. This is because to be low power, they need to be mainly asleep, and so can’t be ready to receive messages at all times.
A good example of a low power node might be a battery powered light switch. It can wake up and transmit when the switch is pressed, but otherwise remain asleep.
Both Thread and Zigbee have similar limitations; the core “relay” nodes have to be always listening for communications, and so cannot be very low power, although both like BLE Mesh allow for “end nodes” that can be low power.
The key point is that core relay nodes are not actually “low power”; there isn’t a lot of difference in how the different Mesh technologies handle this aspect.
Both BLE Mesh and Zigbee have application layers. These define data types and operations, aimed at typical use cases, so there are standardised ways of for example switching lights on and off, or dimming or changing colours. This means that there can be a degree of interoperability between devices. In addition, there are facilities to define custom messages and operations for non-standard devices.
Thread by contrast is just a transport layer. There are no application level services defined in the protocol.
Security is an important consideration for any home or building network. It is not desirable for anyone to gain access to the network, particularly if it were to include access control, or control of sensitive equipment.
All the networks have the concept of a “Network Key”. This is used to encrypt/decrypt messages, so that only nodes in possession of the key can “understand” the messages being passed across the network. So a “rogue” device might be able to listen in on messages being exchanged or send them, but it wouldn’t be able to understand them.
When a node is added to the network, there has to be a mechanism to share the network key with the new node. How this is done would normally be up to the user to define, dependent on the level of security required in the network.
BLE Mesh also has the concept of an “Application Key”, whereby groups of nodes can have a second level of security. Thus the heating system, and the lighting system could be different “Applications”, and the heating system and the lighting system couldn’t understand each other’s messages. They could however, relay then transparently. This could be a useful concept if some parts of the system were more critical than others from a security perspective.
Zigbee has the possibility to secure “point to point” security between two particular nodes, although this doesn’t in practice seem to be used very often.
Summary and Outlook
I’ve tried to give an overview of the different types of Low-Power mesh networks available in the market today, and the differences between them. In many ways their differences are smaller than their similarities.
Moreover, these standards will undoubtedly keep evolving fast. Zigbee has been on the scene for a while, but BLE Mesh and Thread are both quite new, and BLE in particular is fast moving standard, with millions of devices out there. In parallel, investment in the hardware supporting these protocols is significant, so one can expect newer, more powerful, capable devices to keep coming to the market over the next few years.
There isn’t a “right” answer as to what to use; it depends on what you are trying to do, and how you want to evolve it in the future. In many case, any of the networks could do the job. But I am convinced that Mesh networks will be an increasing feature of the homes and buildings of the future.