Dual-mode Bluetooth stack, with small memory footprint.
Dual-mode Bluetooth stack, with small memory footprint.
BTstack is BlueKitchen's implementation of the official Bluetooth stack. It is well suited for small, resource-constrained devices such as 8- or 16-bit embedded systems, as it is highly configurable and comes with an ultra-small memory footprint.
Targeting a variety of platforms is as simple as providing the necessary UART, CPU, and CLOCK implementations. BTstack is currently capable of connecting to Bluetooth-modules via: (H2) HCI USB, (H4) HCI UART + TI's eHCILL, and (H5) HCI Three-Wire UART.
On smaller embedded systems, a minimal run loop implementation allows to use BTstack without a Real Time OS (RTOS). If a RTOS is already provided, BTstack can be integrated and run as a single thread.
On larger systems, BTstack provides a server that connects to a Bluetooth module. Multiple applications can communicate with this server over different inter-process communication methods. As sockets are used for client/server communication, it's easy to interact via higher-level languages; for example, a Java binding is already available for use in desktop environments.
BTstack supports the Central and Peripheral roles of the Bluetooth 5 Low Energy specification, including LE Secure Connections, LE Data Channels, and LE Data Length Extension. It can be configured to run as either a single-mode stack or a dual-mode stack.
BTstack is free for non-commercial use. However, for commercial use, tell us a bit about your project to get a quote.
Third-party libraries (FOSS): List of used libraries and their licenses
Discussion and Community Support: BTstack Google Group
Bluetooth Features: LE 2M, LE Coded, Isochronous Channels, Extended Advertising, Periodic Advertising, LE Secure Connections, Classic Audio
Protocols: L2CAP (incl. Enhanced Retransmission Mode, LE Credit-Based Flow-Control Mode and LE Enhanced Credit-Based Flow-Control Mode), RFCOMM, SDP, BNEP, AVDTP, AVCTP, ATT, SM (incl. LE Secure Connections and Cross-Transport Key Derivation).
Profiles: A2DP, AVRCP incl. Browsing (CT+TG) and Cover Art (CT), GAP, GATT, HFP, HID, HSP, IOP, MAP, OPP, SPP, PAN, PBAP.
GATT Service Servers: Battery (BAS), Bond Management (BMS), Cycling Power (CPS), Cycling Speed and Cadence (CSCS), Device Information (DID), Heart Rate (HRS), HID over GATT (HIDS) Device, Immediate Alert, Link Loss (LLS), Mesh Provisioning, Mesh Proxy, Nordic SPP, Object Transfer Service (OTS), Scan Parameters (SCPS), TX Power (TPS), u-Blox SPP.
GATT Service Clients: ANCS, Battery (BAS), Device Information (DID), HID-over-GATT (HOGP) Host, Immediate Alert, Link Loss, Object Transfer Service (OTS), Scan Parameters (SCPS), TX Power (TXPS).
LE Audio Profiles: Object Transfer Profile (OTP), Volume Control Profile (VCP), Microphone Control Profile (MICP), Media Control Profile (MCP), Call Control Profile (CCP), Coordinated Set Identification Profile (CSIP), Basic Audio Profile (BAP), Common Audio Profile (CAP), Hearing Access Profile (HAP), Telephony and Media Audio Profile (TMAP), Public Broadcast Profile (PBP), Gaming Audio Profile (GMAP)
LE Audio Services: Audio Input Control Service (AICS), Volume Offset Control Service (VOCS), Volume Control Service (VCS), Microphone Control Service (MICS), Media Control Service (MCS), Generic Media Control Service (GMCS), Telephony Bearer Service (TBS), Coordinated Set Identification Service (CSIS), Published Audio Capabilities Service (PACS), Audio Stream Control Service (ASCS), Broadcast Audio Scan Service (BASS), Common Audio Service (CAS), and Hearing Access Service (HAS).
GATT services are generally easy to implement and require little development time. For more GATT services, please contact us or follow the implementation guidelines.
Qualification: BTstack has been qualified with the Bluetooth SIG (DN Q331293) for ATT, GAP, GATT, IOP, L2CAP, SDP, SM of the Bluetooth Core 6.0 specification as well as A2DP 1.4, AICS 1.0, ASCS 1.0.1, AVCTP 1.4, AVDTP 1.3, AVRCP 1.6.3, BAP 1.0.2, BAS 1.1, BASS 1.0, BAU 1.0, BNEP 1.0, CAP 1.0, CAS 1.0, CCP 1.0, CPP 1.1, CPS 1.1, CSCP 1.0, CSCS 1.0, CSIP 1.0.1, CSIS 1.0.1, DID 1.3, DIS 1.1, GAVDP 1.3, GMAP 1.0, GMCS 1.0.1, HAP 1.0, HAS 1.0, HFP 1.9, HID 1.1.1, HIDS 1.0, HOGP 1.0, HRP 1.0, HRS 1.0, HSP 1.2, IAS 1.0, LC3 1.0.1, LLS 1.0, MAP 1.4.2, MCP 1.0, MCS 1.0.1, MICP 1.0, MICS 1.0, OPP 1.2.1, OTP 1.0, OTS 1.0, PACS 1.0.1, PANP 1.0, PBAP 1.2.3, PBP 1.0, RFCOMM 1.2, SPP 1.2, SPS 1.0, TBS 1.0, TMAP 1.0, TxPS 1.0, VCP 1.0, VCS 1.0, VOCS 1.0.
For information on Apple's MFi/iAP2 and Find My profiles or access to LE Audio, MAP, PBAP Server, please contact us directly.
| Build Status | Port | Platform |
|---|---|---|
| esp32 | Espressif ESP32 2.4 GHz Wi-Fi and Bluetooth Dual-Mode combo chip using FreeRTOS | |
| max32630-fthr | MAX32630FTHR ARM Cortex M4F Board with onboard Panasonic PAN1326 module containing TI CC2564B Bluetooth controller | |
| msp432p401lp-cc256x | TI MSP432P401R LaunchPad with CC2564C Dual-mode Bluetooth® Controller Evaluation Module and EM Adapter BoosterPack with additional 32768Hz quartz oscillator | |
| No build server | renesas-ek-ra6m4a-da14531 | Renesas EK-RA6M4 with MikroeE BLE Tiny Click board |
| No build server | renesas-tb-s1ja-cc256x | Renesas TB-S1JA with Dual-mode Bluetooth® CC2564 evaluation board and EM Adapter BoosterPack with an additional 32768Hz quartz oscillator |
| No build server | rp2040-vela-if820 | BTstack on RP2040 of Ezurio Vela IF820 Dev Kit |
| samv71-xplained-atwilc3000 | SAMV71 Ultra Xplained Ultra evaluation kit with ATWILC3000 SHIELD | |
| [stm32-f4discovery-cc2564b]( |
No open issues yet, or sync has not completed.