Part 2: Bearers
As said before, the Bluetooth SmartMesh is just a communication protocol over a particular broadcast channel. These physical communication channels are called BEARERs.
The first channel defined for this protocol is the Bluetooth Low Energy (BLE) broadcast channel, the BLE Bearer. It uses the 3 advertising channels in BLE, normally used for establishing connections and discovering devices.
Since those are relatively open and you can send out pretty much everything you need, it is a natural choice for wireless communication. But it could be implemented on any type of wireless, even infra-red or ultra-sound or whatever.
For the SmartMesh we have our standard BLE bearer for the ad channels. But since many smart phones in todays Bluetooth stack implementation cannot (or not yet) just arbitrary send and receive any ad packets, the Bluetooth SIG (as well as CSR) defined the GATT Bearer protocol. Smart phones can make GATT connections to standard Bluetooth Low Energy devices. So, we allow smart phones to get full access to the BLE SmartMesh with a bridge.
The bridge implements the BLE Bearer as well as the GATT Bearer and links these two when a smart phone connects to it. Standard BLE characteristics are defined for writing (transmitting) mesh packets and set to notify to receive mesh packets. The main disadvantage with this solution is that you need a BLE connection for each smart phone participating in the mesh network. Some devices, including our bridge, is restricted to one single connection. So, you need more than one in a house. Then it's pretty power hungry, since it runs a full mesh with 100% duty cycle rate, which eliminates the use of batteries. And your smart phone must be near a bridge to get a connection.
Chrome browser and ChromeOS have started implementing Bluetooth communication, BLE to be exact. Now web applications can make Bluetooth connections directly from the browser. For an update on the status click here. Right now, Android devices, running Chrome DEV can communicate directly and securely with Bluetooth Low Energy devices. We make use of this feature with our smart mesh controller app we serve from our web site. It uses the SmartMesh Bridge and the GATT Bearer to interface with the smart mesh. Your browser has now access to the smart mesh.
What about iOS? Due to the restrictions in the Apple API, we can't just create any arbitrary ad packet. But we can create iBeacons, easily. Our implementation of the smart mesh app achieved a bridge-less design by wrapping smart mesh packets into iBeacons. Thus we define an iBeacon Bearer. All our smart mesh products are also listening for iBeacons. A certain well formed iBeacon is recognized as a smart mesh packet, unpacked and then retransmitted as a standard mesh packet. The bridge does that too. With this implementation we have a true bridge-less native iOS app that does not need any connection and participate in the smart mesh directly.
Being able to route smart mesh packets though internet channels has many advantages. First, you can then control your smart mesh products from anywhere. A browser is enough to process and create smart mesh packages. It is very important though, that the smart mesh packets stay encrypted whatever bearer is being used. An end-to-end encryption guarantees security. As it turns out, there is already a very nice, powerful and scalable server implementation available, that fits perfectly with the broadcast model of the smart mesh: the standardized ISO/IEC PRF 20922: MQTT.
The publish/subscribe messaging protocol matches the broadcast and receive of smart mesh networks and it scales to any number and size. Subscribing to a MQTT channel should depend on the network key and/or the network id. In our implementation we use the hashed network key as the channel name. But the derived network id from the SIGmesh would work perfectly as well. We built a SmartMesh Gateway, which links the MQTT server with the BLE mesh bearer. It is a very small device, very cheap and easy to operate. Interesting feature is that you can link geographically separate mesh networks with this gateway. This makes commercial smart mesh networks very attractive.
These are all our four bearer for the smart mesh.