How to Deploy BlueZ
v5.48 on Raspberry Pi 3

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.

FEATURED DOWNLOAD

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.

DOWNLOAD NOW

Related Resources

Unlocking the Potential of the Smart Home

See how the Bluetooth Smart Home Subgroup is making intelligent and integrated smart home…

How to Make Wearables Bluetooth Mesh Provisioners

Learn how to create applications for smartwatches and other platforms that can monitor and control nodes in a Bluetooth mesh network.

2019 Bluetooth Market Update

Supported by updated forecasts from ABI Research and insights from several other analyst firms, the Bluetooth Market Update highlights the latest Bluetooth trends and forecasts.

Bluetooth Mesh Models - A Technical Overview

In this detailed technical paper, Martin Woolley provides a guided tour of the Bluetooth…

An Introduction to the Bluetooth Mesh Proxy Function

Learn how to create applications for smartphones and other platforms which can monitor and control nodes in a Bluetooth mesh network.

An Introduction to Bluetooth Mesh Networking

Learn the theory and practice of Bluetooth mesh device firmware development, and develop a working mesh network.

Deploying BlueZ v5.50 on Raspberry Pi 3, Part 2 — Provisioning

Find out how to build a new (unprovisioned) device, provisioned by meshctl on a Raspberry Pi3 (R Pi3) board.

Bluetooth Core Specification v5.1 Feature Overview

Bluetooth Core Specification v5.1 contains a series of updates to the Bluetooth core specification. This document summarizes and explains each change.