1.. _bluetooth-features:
2
3Supported features
4##################
5
6.. contents::
7    :local:
8    :depth: 2
9
10Since its inception, Zephyr has had a strong focus on Bluetooth and, in
11particular, on Bluetooth Low Energy (BLE). Through the contributions of
12several companies and individuals involved in existing open source
13implementations of the Bluetooth specification (Linux's BlueZ) as well as the
14design and development of BLE radio hardware, the protocol stack in Zephyr has
15grown to be mature and feature-rich, as can be seen in the section below.
16
17* Bluetooth v5.3 compliant
18
19  * Highly configurable
20
21      * Features, buffer sizes/counts, stack sizes, etc.
22
23  * Portable to all architectures supported by Zephyr (including big and
24    little endian, alignment flavors and more)
25
26  * Support for :ref:`all combinations <bluetooth-hw-setup>` of Host and
27    Controller builds:
28
29    * Controller-only (HCI) over UART, SPI, USB and IPC physical transports
30    * Host-only over UART, SPI, and IPC (shared memory)
31    * Combined (Host + Controller)
32
33* :ref:`Bluetooth-SIG qualifiable <bluetooth-qual>`
34
35  * Conformance tests run regularly on all layers (Controller and Host, except
36    BT Classic) on Nordic Semiconductor hardware.
37
38* :ref:`Bluetooth Low Energy Controller <bluetooth-ctlr-arch>` (LE Link Layer)
39
40  * Unlimited role and connection count, all roles supported
41  * All v5.3 specification features supported (except a few minor items)
42  * Concurrent multi-protocol support ready
43  * Intelligent scheduling of roles to minimize overlap
44  * Portable design to any open BLE radio, currently supports Nordic
45    Semiconductor nRF52x and nRF53x SoC Series, as well as proprietary radios
46  * Supports little and big endian architectures, and abstracts the hard
47    real-time specifics so that they can be encapsulated in a hardware-specific
48    module
49  * Support for Controller (HCI) builds over different physical transports
50  * Isochronous channels
51
52* :ref:`Bluetooth Host <bluetooth_le_host>`
53
54  * Generic Access Profile (GAP) with all possible LE roles
55
56    * Peripheral & Central
57    * Observer & Broadcaster
58    * Multiple PHY support (2Mbit/s, Coded)
59    * Extended Advertising
60    * Periodic Advertising (including Sync Transfer)
61
62  * GATT (Generic Attribute Profile)
63
64    * Server (to be a sensor)
65    * Client (to connect to sensors)
66    * Enhanced ATT (EATT)
67    * GATT Database Hash
68    * GATT Multiple Notifications
69
70  * Pairing support, including the Secure Connections feature from Bluetooth 4.2
71
72  * Non-volatile storage support for permanent storage of Bluetooth-specific
73    settings and data
74
75  * Bluetooth Mesh support
76
77    * Relay, Friend Node, Low-Power Node (LPN) and GATT Proxy features
78    * Both Provisioning roles and bearers supported (PB-ADV & PB-GATT)
79    * Foundation Models included
80    * Highly configurable, fits as small as 16k RAM devices
81
82  * Basic Bluetooth BR/EDR (Classic) support
83
84    * Generic Access Profile (GAP)
85    * Logical Link Control and Adaptation Protocol (L2CAP)
86    * Serial Port emulation (RFCOMM protocol)
87    * Service Discovery Protocol (SDP)
88
89  * Clean HCI driver abstraction
90
91    * 3-Wire (H:5) & 5-Wire (H:4) UART
92    * SPI
93    * Local controller support as a virtual HCI driver
94
95  * Verified with multiple popular controllers
96  * Isochronous channels
97  * :ref:`LE Audio <bluetooth_le_audio_arch>`
98