1.. _bluetooth-overview:
2
3Overview
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
17Supported Features
18******************
19
20Zephyr comes integrated with a feature-rich and highly configurable
21Bluetooth stack.
22
23* Bluetooth v5.3 compliant
24
25  * Highly configurable
26
27      * Features, buffer sizes/counts, stack sizes, etc.
28
29  * Portable to all architectures supported by Zephyr (including big and
30    little endian, alignment flavors and more)
31
32  * Support for all combinations of Host and Controller builds:
33
34    * Controller-only (HCI) over UART, SPI, USB and IPC physical transports
35    * Host-only over UART, SPI, and IPC (shared memory)
36    * Combined (Host + Controller)
37
38* Bluetooth-SIG qualified
39
40  * Controller on Nordic Semiconductor hardware
41  * Conformance tests run regularly on all layers
42
43* Bluetooth Low Energy Controller support (LE Link Layer)
44
45  * Unlimited role and connection count, all roles supported
46  * All v5.3 specification features supported (except a few minor items)
47  * Concurrent multi-protocol support ready
48  * Intelligent scheduling of roles to minimize overlap
49  * Portable design to any open BLE radio, currently supports Nordic
50    Semiconductor nRF51 and nRF52, as well as proprietary radios
51  * Supports little and big endian architectures, and abstracts the hard
52    real-time specifics so that they can be encapsulated in a hardware-specific
53    module
54  * Support for Controller (HCI) builds over different physical transports
55
56* Bluetooth Host support
57
58  * Generic Access Profile (GAP) with all possible LE roles
59
60    * Peripheral & Central
61    * Observer & Broadcaster
62    * Multiple PHY support (2Mbit/s, Coded)
63    * Extended Advertising
64    * Periodic Advertising (including Sync Transfer)
65
66  * GATT (Generic Attribute Profile)
67
68    * Server (to be a sensor)
69    * Client (to connect to sensors)
70    * Enhanced ATT (EATT)
71    * GATT Database Hash
72    * GATT Multiple Notifications
73
74  * Pairing support, including the Secure Connections feature from Bluetooth 4.2
75
76  * Non-volatile storage support for permanent storage of Bluetooth-specific
77    settings and data
78
79  * Bluetooth mesh support
80
81    * Relay, Friend Node, Low-Power Node (LPN) and GATT Proxy features
82    * Both Provisioning roles and bearers supported (PB-ADV & PB-GATT)
83    * Foundation Models included
84    * Highly configurable, fits as small as 16k RAM devices
85
86  * IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE
87
88    * IPSP node sample application
89
90  * Basic Bluetooth BR/EDR (Classic) support
91
92    * Generic Access Profile (GAP)
93    * Logical Link Control and Adaptation Protocol (L2CAP)
94    * Serial Port emulation (RFCOMM protocol)
95    * Service Discovery Protocol (SDP)
96
97  * Clean HCI driver abstraction
98
99    * 3-Wire (H:5) & 5-Wire (H:4) UART
100    * SPI
101    * Local controller support as a virtual HCI driver
102
103  * Verified with multiple popular controllers
104
105* LE Audio in Host and Controller
106
107  * Isochronous channels
108
109    * Full Host support
110    * Initial Controller support
111
112  * Generic Audio Framework
113
114    * Basic Audio Profile
115
116      * Unicast server and client
117      * Broadcast source and sink
118      * Broadcast assistant
119      * Scan delegator
120
121    * Common Audio Profile
122
123      * Acceptor
124
125    * Volume Control Profile, Microphone Control Profile
126    * Call Control Profile, Media Control Profile
127    * Coordinated Set Identification Profile
128