Overview
Since its inception, Zephyr has had a strong focus on Bluetooth and, in particular, on Bluetooth Low Energy (BLE). Through the contributions of several companies and individuals involved in existing open source implementations of the Bluetooth specification (Linux’s BlueZ) as well as the design and development of BLE radio hardware, the protocol stack in Zephyr has grown to be mature and feature-rich, as can be seen in the section below.
Supported Features
Zephyr comes integrated with a feature-rich and highly configurable Bluetooth stack.
Bluetooth 5.0 compliant (ESR10)
Highly configurable
Features, buffer sizes/counts, stack sizes, etc.
Portable to all architectures supported by Zephyr (including big and little endian, alignment flavors and more)
Support for all combinations of Host and Controller builds:
Controller-only (HCI) over UART, SPI, and USB physical transports
Host-only over UART, SPI, and IPM (shared memory)
Combined (Host + Controller)
Bluetooth-SIG qualified
Controller on Nordic Semiconductor hardware
Conformance tests run regularly on all layers
Bluetooth Low Energy Controller support (LE Link Layer)
Unlimited role and connection count, all roles supported
Concurrent multi-protocol support ready
Intelligent scheduling of roles to minimize overlap
Portable design to any open BLE radio, currently supports Nordic Semiconductor nRF51 and nRF52, as well as proprietary radios
Supports little and big endian architectures, and abstracts the hard real-time specifics so that they can be encapsulated in a hardware-specific module
Support for Controller (HCI) builds over different physical transports
Bluetooth Host support
Generic Access Profile (GAP) with all possible LE roles
Peripheral & Central
Observer & Broadcaster
GATT (Generic Attribute Profile)
Server (to be a sensor)
Client (to connect to sensors)
Pairing support, including the Secure Connections feature from Bluetooth 4.2
Non-volatile storage support for permanent storage of Bluetooth-specific settings and data
Bluetooth mesh support
Relay, Friend Node, Low-Power Node (LPN) and GATT Proxy features
Both Provisioning bearers supported (PB-ADV & PB-GATT)
Highly configurable, fits as small as 16k RAM devices
IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE
IPSP node sample application
Basic Bluetooth BR/EDR (Classic) support
Generic Access Profile (GAP)
Logical Link Control and Adaptation Protocol (L2CAP)
Serial Port emulation (RFCOMM protocol)
Service Discovery Protocol (SDP)
Clean HCI driver abstraction
3-Wire (H:5) & 5-Wire (H:4) UART
SPI
Local controller support as a virtual HCI driver
Verified with multiple popular controllers