It’s been a year since the release of Bluetooth® mesh. During this period, a number of products have been released which support Bluetooth mesh — from embedded chips/modules to smart lighting bulbs to BlueZ.
BlueZ is the official Linux Bluetooth protocol stack. It can be deployed on a Linux platform and provides support for the core Bluetooth layers and protocols.
BlueZ for Bluetooth Mesh
BlueZ started to support Bluetooth mesh in its BlueZ v5.47 release and has seen some improvements in subsequent releases, BlueZ v5.48 and BlueZ v5.49. These releases come with Bluetooth mesh support in the form of a new meshctl tool. Using this tool, it’s possible to provision Bluetooth mesh devices through the GATT Provisioning Bearer (PB-GATT) and configure them using the GATT Proxy protocol.
Now, you can deploy Bluetooth mesh devices on Linux platforms, which may be from different Linux distributors, then run meshctl tool to provision and configure a Bluetooth mesh product. This provides a new option, letting you use the Linux board as a provisioner and configuration client to establish or build up a mesh network. Meanwhile, with the help of meshctl tool, you can learn the Bluetooth mesh provisioning and model configuration process. Both of which are the first step you confront when you start developing Bluetooth mesh products, prototypes, or demos.
BlueZ on Raspberry Pi3
Earlier this year, I went through the process of deploying BlueZ v5.49 on my Raspberry Pi3 board. I spent two weeks looking for solutions on the internet and sharing challenges I encountered with Linux experts to make it happen.
As a Developer Relations Manager for the Bluetooth Special Interest Group (SIG), I have a responsibility to share my knowledge and experience, shorten your learning curve, and help accelerate the learning process. So, I summarized the issues, collected the corresponding information, itemized them by a reasonable working flow, verified with my team, and drafted a step-by-step guide that helps you set up BlueZ. This step-by-step guide outlines:
- Prerequisites before getting started
- How to configure the Raspberry Pi3 board
- How to install dependencies for BlueZ v5.49
- How to get BlueZ’s source code
- How to compile and install BlueZ on Pi3
- How to recompile the kernel to make the meshctl tool
- How to install the recompiled kernel
- How to verify kernel installation
After following this step-by-step guide, you will get a test and development environment on your Pi3 board and can use it to build an amazing Bluetooth mesh network.
Check back for future step-by-step guides, including an overview on how to use the meshctl tool.
If you’re interested in learning more about developing with Bluetooth, check out our other developer resources.
Bluetooth Mesh Developer Study Guide
The Bluetooth Mesh Developer Study Guide is a self-study educational resource which covers both the theory and practice of Bluetooth mesh device firmware development.