The Bluetooth® wireless technology is a short-range communications system that facilitates wireless exchange of data between devices. The key advantages of Bluetooth technology are as follows:
- Replaces the cables connecting portable and fixed electronic devices.
- Provides robust, power efficient, and cost-effective solutions.
- Facilitates flexibility of solutions and their applications.
The Bluetooth technology provides the following radio options.
| Radio | Description |
|---|
| Basic Rate/Enhanced Data Rate (BR/EDR) | - Offers optional EDR, alternate media access control (MAC), and physical layer (PHY) extensions.
- Supports synchronous and asynchronous connections with a data rate of 721.2 Kbps for BR and 2.1 Mbps for EDR.
|
| Low Energy | - Enables products that require lower current consumption, lower complexity, and lower cost than BR/EDR.
- Facilitates use cases and applications with lower data rates and has lower duty cycles.
|
BR/EDR and Low Energy radio options enable device discovery, connection establishment, and connection mechanisms. The optimal choice of radio depends on the use case or application of a solution.
The Qualcomm® Linux® supports Bluetooth solutions for the following kits.
| Kit | Hardware system-on-chip (SoC) | Bluetooth chipset | Bluetooth stack |
|---|
- Qualcomm DragonwingTM RB3 Gen 2 Vision Development Kit
- Qualcomm Dragonwing RB3 Gen 2 Core Development Kit
| QCS6490 | - WCN6750
- WCN6856 over M.2 USB
| BlueZ |
- Qualcomm Dragonwing RB3 Gen 2 Lite Vision Development Kit
- Qualcomm Dragonwing RB3 Gen 2 Lite Core Development Kit
| QCS5430 | | BlueZ |
- Qualcomm Dragonwing IQ-9075 Evaluation Kit (EVK)
| IQ-9075 | | BlueZ |
- Qualcomm Dragonwing IQ-8275 EVK
| IQ-8275 | | BlueZ |
- Qualcomm Dragonwing IQ-615 EVK
| IQ-615 | | BlueZ |
- Qualcomm Dragonwing IQ-x7181 EVK
| IQ-x7181 | | BlueZ |
- Qualcomm Dragonwing IQ-x5121 EVK
| IQ-x5121 | | BlueZ |
The following figure shows the various components of the Qualcomm connectivity chipset, including the Bluetooth subsystem and its interaction with the application processor.
Bluetooth specification
The WCN6750, WCN6856, WCN7850, and QCA6698AQ connectivity chipsets comply with the Bluetooth Core specification v5.2 or v5.3. These chipsets have the following controller features and capabilities:
- A Bluetooth Low Energy data rate of up to 2 Mbps
- A long-range mode with better sensitivity at two new lower bit rates, 500 Kbps and 125 Kbps
- An 8x improvement in broadcast capability with the use of advertising extensions
- An improved channel selection algorithm (CSA #2), which facilitates improved channel coordination and coexistence efficiency with other Bluetooth and non-Bluetooth traffic
The following table lists the Bluetooth specifications and features supported by the WCN6750, WCN6856, WCN7850, and QCA6698AQ connectivity chipsets.
| Feature | WCN6750 | WCN6856 | WCN7850 | QCA6698AQ | QCC2072 |
|---|
| Bluetooth Low Energy secure connections | ✓ | ✓ | ✓ | ✓ | ✓ |
| Bluetooth Low Energy privacy 1.2 | ✓ | ✓ | ✓ | ✓ | ✓ |
| Bluetooth 5.2 Core specification | ✓ | ✓ | ✕ | ✓ | ✓ |
| Bluetooth 5.3 Core specification | ✕ | ✕ | ✓ | ✕ | ✓ |
| Data length extensions | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2 Mbps PHY | ✓ | ✓ | ✓ | ✓ | ✓ |
| Advertising extensions | ✓ | ✓ | ✓ | ✓ | ✓ |
| Bluetooth Low Energy long range | ✓ | ✓ | ✓ | ✓ | ✓ |
| CSA #2 | ✓ | ✓ | ✓ | ✓ | ✓ |
| USB 1.1 interface support | ✕ | ✓ | ✓ | ✕ | ✕ |
| Bluetooth 6.0 Core specification | ✕ | ✕ | ✕ | ✕ | ✓ |
BlueZ stack
BlueZ is a Bluetooth Linux stack that supports the core Bluetooth layers and protocols. BlueZ features are as follows:
- Complies with Bluetooth Core specification v5.4
- Supports multiple Bluetooth devices
- Implements a socket interface for all layers
- Supports multithreaded data processing
Bluetooth profiles and roles
The Bluetooth profiles define the specifications, requirements, and roles of devices to establish a Bluetooth connection. A profile also determines the communication protocol used between devices.
The BlueZ stack supports the following Bluetooth profiles and roles for connectivity chipsets.
| Profile | Role | Version | Support on chipset |
|---|
| WCN6750 / WCN6856 | WCN7850 | QCA6698AQ |
|---|
| General Access Profile (GAP) | Central and peripheral | | ✓ | ✓ | ✓ |
| Serial Port Profile (SPP) | Client and server | v1.2 | ✓ | ✓ | ✓ |
| Human interface device (HID) over GATT Profile (HOGP) | Host | v1 | ✓ | ✓ | ✓ |
| General Attribute Profile (GATT) | Central and peripheral | | ✓ | ✓ | ✓ |
| Advanced Audio Distribution Profile (A2DP) | Source | Nonsplit v1.3 | ✓ | ✕ | ✓ |
| Sink | Nonsplit v1.3 | ✓ | ✕ | ✓ |
| Audio/Video Remote Control Profile (AVRCP) | Target | v1.5 | ✓ | ✕ | ✓ |
| Controller | v1.5 | ✓ | ✕ | ✓ |
| Hands-Free Profile (HFP) | Audio gateway | Nonsplit v1.7 | ✓ | ✕ | ✕ |
| Client | Nonsplit v1.7 | ✓ | ✕ | ✕ |
| Object Push Profile (OPP) | Client and server | v1.2 | ✓ | ✓ | ✓ |
| File Transfer Protocol (FTP) | Client and server | v1.2 | ✓ | ✓ | ✓ |
| Phone Book Access Profile (PBAP) | Client and server | v1.1 | ✓ | ✓ | ✓ |
| Message Access Profile (MAP) | Client and server | v1.2 | ✓ | ✓ | ✓ |
Bluetooth profile concurrency is supported.
General Access Profile
Bluetooth Low Energy GAP is an extension of the existing BR/EDR GAP. It handles the following basic operations of a device:
- Discover a device
- Establish a connection
- Bond multiple devices
- Establish a private connection
- Resolve private addresses
All Bluetooth devices must implement a basic level of functionality that GAP defines. GAP ensures that all Bluetooth devices can establish baseband connections, regardless of the higher-level functionality they support. GAP is responsible for the following functions:
- Generic procedures for discovering Bluetooth devices
- Link-management aspects for connecting to Bluetooth devices
- Procedures related to security levels
- Common formats for user interface-level parameters, such as naming conventions
GAP defines and assigns the following profile roles to the devices.
| Profile role | Description |
|---|
| Central | - A device with relatively greater processing power and memory. For example, a mobile phone or a tablet.
- Always a primary device.
- It does’nt advertise.
- Supports active or passive scanning and all link layer control procedures.
|
| Peripheral | - A small, low-power, and resource-contained device that can connect to a much more powerful central device. For example, an instrument like a heart rate monitor, or a Bluetooth Low Energy enabled proximity tag.
- Always a secondary device.
- Advertises over connections.
- Supports all link layer control procedures.
|
| Broadcaster | - Sends nonconnectable advertising events including characteristics and service data.
- It doesn’t require a receiver.
|
| Observer | - Receives advertising events and listens for characteristics and service data.
- It doesn’t require a transmitter.
|
Serial Port Profile
SPP facilitates wireless communication between devices over a virtual serial port. It supports client and server roles.
SPP defines the following elements:
- Requirements of Bluetooth devices to set up emulated serial cable connections using Radio Frequency Communication (RFCOMM) between two peer devices.
- Terms of services provided to applications.
- Features and procedures for interoperability between Bluetooth devices.
General Attribute Profile
GATT is a service framework that uses the Attribute Protocol (ATT) to discover services, and to read and write characteristic values on a peer device. It supports client and server roles.
GATT performs the following functions:
-
Interfaces with the application through application profiles.
The application profile defines the collection of attributes and any permissions required for the attributes used in communication between devices.
-
Specifies how two Bluetooth Low Energy devices exchange data using services or declarations, characteristics, and descriptors.
It doesn’t define rules for attribute use. The upper-layer applications derive functionality by using these concepts.
-
Stores services, characteristics, and related data in a basic lookup table, with 16‑bit IDs assigned to each entry.
Human Interface Device over GATT Profile
HOGP defines how a Bluetooth Low Energy wireless communications device can support HID services over the Bluetooth Low Energy protocol stack using GATT. Only the Host role is supported and validated; the HOGP Client role isn’t.
Advanced Audio Distribution Profile
A2DP defines the requirements to transmit or stream high-quality audio from one device to another over a Bluetooth connection. For example, streaming music from a mobile phone, laptop, or desktop to a wireless headset, and streaming audio to a hearing aid, cochlear implant, or car console.
A2DP supports the following roles.
| Profile role | Description |
|---|
| Source | - An audio source that streams digitally to the sink of the piconet.
- Facilitates streaming of stereo-quality audio from a multimedia player to a wireless headset or speakers.
|
| Sink | - An audio receiver device in a wireless audio setup.
- Compresses audio data using audio codecs and then decodes at the speaker with minimal loss.
- Supports high-quality, wireless audio playback and offers a convenient way to enhance the audio experience.
|
Hands-Free Profile
HFP defines how an audio gateway device can connect to a hands-free device for functions like remote control and audio connection.
HFP defines and assigns the following profile roles to the devices.
| Profile role | Description |
|---|
| Client | - A hands-free device. For example, a wireless headset or a vehicle console.
- Establishes service level connections, creates an audio connection with a remote audio gateway, and transports dual-tone multifrequency (DTMF) codes.
- Supports functionalities like answering or rejecting an incoming call, dialing a number, and controlling the volume.
|
| Audio gateway | - A gateway for audio input and output. For example, a mobile phone.
- Communicates with a hands-free device, which controls the audio mechanism and other functions of the audio gateway remotely.
|
Object Push Profile
OPP defines how two Bluetooth devices can exchange objects, such as business cards, images, wallpapers, ringtones, or videos. It allows a Bluetooth device to:
- Pull an object from another Bluetooth device.
- Push an object to another Bluetooth device.
- Exchange objects with another Bluetooth device.
OPP supports client and server roles.
File Transfer Protocol
FTP defines the requirements to exchange files between two Bluetooth devices. FTP supports client and server roles. It allows a Bluetooth device to:
- Browse the files and folders of another Bluetooth device.
- Exchange files and folders with another Bluetooth device.
- Create or delete files and folders on another Bluetooth device.
Phone Book Access Profile
PBAP facilitates the exchange of phone book objects between a remote and a local device. It’s based on a client-server interaction model where the client device gets the phone book objects from the server device. In the BlueZ stack, PBAP supports the following roles:
- Phone book server equipment (PSE): Consists of the source phone book objects.
- Phone book client equipment (PCE): Retrieves phone book objects from the PSE.
The types of phone book objects are listed as follows.
| Phone book object | Description |
|---|
| Main phone book | Phone book of the device, such as a mobile phone. |
| Incoming call history | List of most recently received calls. |
| Outgoing call history | List of most recently made calls. |
| Missed call history | List of most recently missed calls. |
| Combined call history | List of most recently received, made, or missed calls. |
| Speed-dial contacts | List of speed dial entries on the PSE. |
| Favorite contacts | List of favorite contacts on the PSE. |
PBAP allows the following functions:
- Download contacts and call histories from a remote device.
- Browse contacts on a remote device.
- Select a phone book object.
Message Access Profile
MAP defines the features and procedures that devices use to exchange message objects. It’s based on a client-server interaction model where the client initiates the transactions. The types of message objects include electronic messages (Email) and short message service (SMS).
MAP combines the messaging capabilities of a messaging server device and the user interface capabilities of a client device to notify, browse, read, delete, generate, and send messages. In the BlueZ stack, MAP supports the following device roles:
- Message server equipment (MSE): Provides the message repository engine.
- Message client equipment (MCE): Uses the message repository engine of the MSE for MAP functions.
Next steps