Blog

How to deploy BlueZ v5.48 on Raspberry Pi 3

|

It’s been a year since the release of Bluetooth® Mesh Networking. During this period, a number of products have been released which support Bluetooth Mesh Networking — 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.

Futuristic Bluetooth logo above a modern high-rise, symbolizing technology and urban innovation.

BlueZ for Bluetooth Mesh Networking

BlueZ started to support Bluetooth® Mesh Networking 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 Networking 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 Networking devices on Linux platforms, which may be from different Linux distributors, then run meshctl tool to provision and configure a Bluetooth Mesh Networking 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 steps you confront when you start developing Bluetooth Mesh Networking 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.

If you are interested in learning more about developing with Bluetooth technology, check out our other developer resources.