Skip to main content
The Bluetooth software architecture consists of open-source and Qualcomm proprietary software. The following figure shows how the user space and kernel space components interact through a socket interface. In the user space, the sample test applications interact with the BlueZ Bluetooth daemon to run Bluetooth functions.
The software architecture and components of Bluetooth solution.
The Bluetooth software architecture consists of the user space, the kernel space, and the Bluetooth controller.

User space components

The user space comprises the following Bluetooth applications, daemon, and interface layers.
ComponentDescription
Bluetooth daemon (bluetoothd)
  • A central daemon.
  • Comprises data bus (DBUS) interfaces for the user interface and other subsystems.
  • Reduces exposure to low-level details.
  • Extends with plugins.
bluetoothctl
  • A test tool to verify Bluetooth functionality.
  • Provides options to verify using a command-line interface (CLI).
mpris-proxy
  • A proxy DBUS service for Media Player Remote Interfacing Specification (MPRIS).
obexctl
  • A test tool to verify Object Exchange Protocol (OBEX) functionality.
OBEX daemon (obexd)
  • A daemon for the OBEX profile.
  • Comprises DBUS interfaces for the user interface.
ofono
  • Provides a test application for HFP.
  • Searches for modem and then enables the HFP audio gateway role.
ofono-testsProvides options to perform the following functions:
  • Dial
  • Answer
  • Create multiparty
  • Hold and answer
  • Swap
  • Release calls
PipeWire
  • A sound server for portable operating system interface (POSIX).
  • Facilitates advanced operations on sound data that passes between the applications and hardware.

Kernel space components

The kernel space comprises the following core components and drivers.
ComponentDescription
Bluetooth management (btmgmt)
  • Enables user space to control kernel operations.
  • Supports GAP functionalities such as adapter settings, device discovery, and device pairing.
BlueZ Host Control Interface (HCI) core
  • Sends and receives HCI commands/events from the user space HCI component to the Qualcomm Bluetooth driver through the raw socket.
HCI
  • A layer in the Bluetooth protocol stack.
  • Defines how the host and the Bluetooth radio controller must interact.
Logical Link Control and Adaptation Protocol (L2CAP)
  • Breaks large data packets into smaller frames for transmission. The destined component re-assembles the frames.
  • Handles quality-of-service (QoS) requirements.
Qualcomm Bluetooth driver
  • Handles the Bluetooth general-purpose input/output (GPIO) configurations.
  • Enables or disables the regulators to turn the chip on or off.
  • Handles the download of Bluetooth patch and nonvolatile data during the Bluetooth on sequence.
Radio Frequency Communication (RFCOMM)
  • Creates reliable and stream-based channels.
  • Has 30 ports. In contrast, the Transmission Control Protocol (TCP) has 65,535 ports.
  • An L2CAP connection encapsulates each RFCOMM connection.
Session Description Protocol (SDP)
  • Provides the means for client applications to discover the existing services provided by server applications.
  • Provides the attributes of services, which include the type or class of service offered, and the mechanism or protocol information required to use the service.
SLIMbus Bluetooth driver
  • Configures, opens, and closes the SLIMbus ports for Bluetooth audio use cases.
Synchronous Connection Oriented (SCO)
  • A type of data link in Bluetooth.
  • Provides links that are point-to-point connections between a central device and a single peripheral device.
Universal asynchronous receiver/transmitter (UART) serial driver
  • A teletype (TTY) serial driver facilitates communication with the Bluetooth controller.

Bluetooth controller components

The Bluetooth controller components include the Link Manager Protocol (LMP), link controller, baseband, and RF system of the connectivity chipset.