Archive for the ‘News’ Category.

Study Guide for Linux Developer

The Bluetooth SIG provides the self-study guide for Linux developers to explain the Bluetooth applications on Linux that uses D-Bus and BlueZ stack:

  • Includes a basic introduction to Bluetooth Low Energy (LE).
  • Explains the architecture of Bluetooth systems on Linux
  • Covers the key concepts relating to the interprocess communication system D-Bus and how it is used with the BlueZ stack.
  • Explains how to use D-Bus from the Python programming language to make and receive remote method calls and to emit and receive D-Bus signals.
  • Explains how to write code that acts as a Bluetooth LE Central device using Python, D-Bus and BlueZ, using practical exercises to compliment the theory.
  • Explains how to write code that acts as a Bluetooth LE Peripheral device using Python, D-Bus and BlueZ, using practical exercises to compliment the theory.
  • Illustrates how to set up your Linux kernel and build BlueZ from source to create a Linux environment for Bluetooth application development.

Please go to the Bluetooth Technology for Linux Developer page to find more details and download the study guide package.

BlueZ architecture overview

During Embedded Linux Conference 2016 in San Diego this spring, Szymon Janc presented “Bluetooth on modern Linux” talk. This presentation provides a comprehensive guide on BlueZ 5 stack architecture.

Video from this talk is available at YouTube and slides can be downloaded here.

iOS 8.2 introduces LE Secure Connections support

The Bluetooth 4.2 specification has been adopted in December 2014 by the Bluetooth SIG and now 3 month later, Apple is introducing support for LE Secure Connections with their update to iOS 8.2 software.

Support for LE Secure Connections provides Diffie-Hellman and Elliptic Curve Cryptography (ECDH) feature for creating Long Term Keys. These keys are P-256 strong keys and provide strong security that is now similar to BR/EDR Secure Connections introduced with Bluetooth 4.1 specification.

Using a Linux kernel 3.19 also enables LE Secure Connections feature and now BlueZ and iOS devices can utilize the strong security from Bluetooth 4.2 specification. The LE Secure Connections is a host stack only feature and can be used with Bluetooth 4.0 controllers. So every Bluetooth Low Energy capable system has the possibility of gaining LE Secure Connections support.

The BlueZ for Android project also enables Bluetooth 4.1 and 4.2 features for Android KitKat and Lollipop versions. This includes support for BR/EDR and LE Secure Connections.

Updated documentation for PTS 5.2

BlueZ 5.23 release also provides updated documentation for Bluetooth qualification using PTS 5.2 test system. Documentation about PICS, PIXIT and test cases instructions are provided. The current set contains 944 test cases for BlueZ for Android.

Bluetooth 4.1 qualification for Tizen BlueZ

The BlueZ 5.x stack used in Tizen has achieved Bluetooth 4.1 + Low Energy qualification.

The listing is made by Samsung. It covers SDP, L2CAP, GAP, RFCOMM, SPP, AVCTP 1.4, AVDTP 1.3, MCAP, GAP, ATT and SM protocols and profiles.

Additional features of BlueZ for Android

With the BlueZ 5.21 release the support for Android is now fully comparable with Bluedroid. Using BlueZ for Android enables additional features on top of it.

When using Bluedroid, you get support for Bluetooth 4.0 core technology and for HFP 1.5, A2DP 1.2, AVRCP 1.3, PAN, HID, HDP, OPP, MAP, PBAP and GATT profiles.

With BlueZ for Android you get additional support for Bluetooth 4.1 core technology and upgraded profiles including HFP 1.6 + Wideband speech, A2DP 1.3, AVRCP 1.5 and MPS. It also provides full integration for aptX(R) high-quality low-latency codec from CSR (codec license not included).

This is significant upgrade of features that are additionally supported and fully integrated. BlueZ for Android is a real value add proposition.

For the Bluetooth qualification of Android, the full documentation of PICS, PIXIT and PTS instructions is available available. This makes qualification easy.

BlueZ for Android status update

In past few months there has been significant amount of work put into supporting Android. This post outlines currently implemented features as well as other additions aimed at making BlueZ for Android integration as smooth as possible.

Android specifies the Bluetooth HAL and a number of profile HALs that shall be implemented by the Bluetooth stack. Each of the HALs is responsible for supporting one or more Bluetooth Profiles. The currently implemented HALs are:

  • bluetooth  – Generic Access Profile (GAP), Device ID Profile 1.3 (DID)
  • handsfree  – Headset Profile 1.2, Handsfree Profile 1.6 with Wideband Speech (HFP)
  • a2dp – Advanced Audio Distribution Profile 1.3 (A2DP)  and Audio/Video Remote Control Profile 1.0 (AVRCP)
  • socket – Phone Book Access Profile 1.1 (PBAP), Message Access Profile 1.1 (MAP), Object Push Profile 1.0 (OPP), RFCOMM
  • hidhost – Human Interface Device Profile 1.1 (HID)
  • avrcp – Audio/Video Remote Control Profile 1.5 (AVRCP)

Some profile’s optional functionality requires support from other Android components. For A2DP support media system (i.e. mediaserver) needs to use BlueZ provided audio.a2dp library. For Wideband Speech support in HFP it is required that BT chip assumes mSBC codec for transparent data.

Integration with Android system

Supported Android version is AOSP 4.4.2. Reference sources for Nexus 4 and Nexus 7 2013 with BlueZ integrated as replacement for default Bluetooth stack are provided at

Qualification documentation

Bluetooth qualification can be a tough process. To make it easier PTS PICS and PIXIT configurations for all supported profiles are provided. Those can be found in pics-*.txt and pixit-*.txt files in android folder. Tests results are also provided in pts-*.txt files. If test requires non-obvious preconditions or execution steps comments on those are also provided.

Future work

Future work includes support for Bluetooth Low Energy and Health Device Profile (health HAL). Low energy support is complex and requires implementation in multiple HALs. LE discovery and pairing (bluetooth HAL), GATT (gatt HAL) and HID over GATT (hidhost HAL) support.

Advanced Audio Distribution Profile

Chrome OS qualified as a Host Subsystem for Bluetooth 4.0 + Low Energy

A message to the BlueZ mailing list from Scott James Remnant from Google announced that Chrome OS with BlueZ 5.x has successfully passed Bluetooth 4.0 + Low Energy qualification.

Congrats to Scott and the Chrome OS team. Nicely done.