Release of BlueZ 5.46

This release contains several improvements to GATT support. In particular, there are new D-Bus methods which let an application get a dedicated file descriptor to read/write data from/to a GATT characteristic. There are also fixes in some other areas, such as OBEX and SDP. The release fixes also compiler warnings/errors that show up with GCC 7 (found e.g. in Fedora 26).


Release of BlueZ 5.45

This is mostly a bugfix release with fixes in ATT, GATT, OBEX and AVDTP. Feature-wise there are some new things as well, such as btmon support decoding Bluetooth 5.0 HCI commands and events.


Release of BlueZ 5.44

It’s been awhile since the last BlueZ release, but now we finally have another one out. Most of the fixes are LE (specifically GATT) related, however a some other areas are affected as well. Feature-wise, there’s a new MIDI plugin and support for using single-mode (LE-only) controllers that lack a public address (therefore necessitating the use of a static random identity address). E.g. any nRF5x controller running a MyNewt or Zephyr based firmware falls into this category.


Release of BlueZ 5.43

This is almost purely a bug-fix release with fixes to HoG, ATT and PAN. There’s also a fix for a regression in 5.42 that caused connection failures for external profiles like OBEX. Feature-wise there’s one notable addition: LE privacy. By enabling this in main.conf it’s now possible to make BlueZ generate a local Identity Resolving Key (IRK) and use Resolvable Private Addresses (RPAs) for itself.


Release of BlueZ 5.42

The major API change with this release is that the GATT D-Bus API is no longer marked as experimental.This should hopefully encourage the creation of more applications using it. Feature-wise, btmon received support for decoding full mgmt message traces – a feature that is available in the bluetooth-next kernel tree, i.e. on its way to the 4.9 kernel release. In addition to these changes, this release contains also fixes in areas such as PBAP, transport selection (BR/EDR vs LE), ATT and A2DP.


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.

Release of BlueZ 5.41

BlueZ 5.41 is purely a bug-fix release targeting areas such as GATT, AVRCP,  OBEX and device discovery filters. The GATT D-Bus API is now starting to be stable enough that this will likely be the last release where it is flagged as experimental.


Release of BlueZ 5.40

This is mostly a bug fix release fixing issues with GATT, paired devices and connection handling (particularly for accepting connections through the Profile D-Bus interface).

One new feature is the ability to use btmon for reading HCI logs from a TTY device. Right now the creation of this kind of logs is available with Zephyr in the form of a special console logging mode (more information available here). The format of the protocol is a slight modification of what btmon normally receives from the kernel monitor sockets, and is documented in doc/btsnoop.txt).