Ready to get started?

A part of BTstack is immediately available in source code and free for evaluation and non-commercial-use. Whether you are interested in running your application on a Bluetooth SoC like ESP32, barebones on a regular microcontroller or on top of an an RTOS like FreeRTOS or Zephyr, the easiest way to try BTstack is on a regular desktop setup like Mac OS, Linux or Windows together with a standard USB Bluetooth dongle. Running BTstack on desktop speeds up the development cycle and provides direct access to the packet log files in case something doesn't work as expected. The same code can then run unmodified on an embedded target later.

Get Ready
Next to your desktop machine and a standard USB Bluetooth dongle, you just need a regular development environment (Make, CMake, Visual Studio [Code], CLion, Xcode, ...) as well as Python to build the examples.

Explore
With less than 100 lines of code you can scan for Bluetooth devices in the surrounding. If you are interested in Classic Bluetooth, check out the GAP Inquiry example. For the Low Energy variant try the GAP LE Scanner.

Let's go
For Mac OS and Linux, please use port/libusb. For Windows, please see port/windows-winusb.




Troubleshoot
If things don't work as expected, it helps to have a look at the HCI packet log that captures all data exchanged between BTstack and the Bluetooth Controller. Check how to get and analyze the HCI log file. Feel free to join our community.
Flexibility
BTstack supports both single-mode (Classic or LE), as well as dual-mode (Classic+LE) Bluetooth controllers.
Supported Platforms
  • Microcontrollers with or without RTOS
  • Embedded Linux systems
  • Desktop: Windows, MacOS, Linux
Secure
Implements all Bluetooth SIG recommendations. It is fuzzed and automatically tested. Not affected by BlueBorne and SweynTooth.


Supported Protocols
L2CAP incl. Enhanced Retransmission 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.
Small Memory Footprint
Compile-time directives allow to optimize memory consumption by selectively enabling required functionality.
Easy Porting
UART-based chipsets require only a thin adapter for the platform UART driver and a system tick. Check supported chipsets.
Qualified and Widely Used
BTstack has been qualified for Bluetooth Core v6.0, DN Q331293 in December 2024.
Industries: Secure appliances, Automotive accessories, Navigation, Fitness, Medical devices, Logistics, Unicast and Auracastâ„¢ audio wireless infrastructure and more.
Supported Profiles
A2DP, AVRCP incl. Browsing, GAVDP, GAP, GATT, HFP, HID, HSP, HRP, IOP, MAP, OPP, SPP, PAN, PBAP, DID, BAU, Apple MFi iAP2
C99 Source Code
C99 source code is available to all customers, and it's free for non-commercial use.
Offsite Debugging
A configurable packet logging mechanism enables detailed and effective offsite problem analysis saving time and money.
LE Audio & Auracastâ„¢
All GATT services and profiles are fully implemented and tested, incl. GMAP. True Wireless Stereo (TWS) is supported on Infineon CYW55513, as well as Nordic nRF53 and nRF54 series. Contact us for product brief and other controllers.
GATT Services
Battery, Cycling Power, Cycling Speed and Cadence, Device Information, Heart Rate, Immediate Alert, Link Loss, Scan Parameters, HID over GATT (HOG), Mesh Provisioning, Mesh Proxy, Nordic SPP, u-Blox SPP. For more GATT Services please contact us, or follow the implementation guidelines.

Why Choose Our BTstack?

BTstack is a flexible, compact and fast Bluetooth stack written in C99. It was created as a result of extensive academic and industrial experience with different solutions dating back to 2001. BlueKitchen GmbH was founded in 2012 to continue the development of an independent Host stack alternative.

As a state-of-the-art dual-mode Bluetooth stack, it is embedded today in millions of devices, with users ranging from hobbyists and security researchers, over OEMs, to Bluetooth Controller vendors and Bluetooth IP providers.

Clean Design
Using a single run loop, it doesn't require multi-threading, doesn't block nor queue data.
Platform Independent
While you can develop and test your Bluetooth application on desktop, it will run on different embedded target devices without changes.
Available Source Code
You can start evaluating BTstack right now, the source code is available on btstack.org.

Partners

Through our partnerships we provide joint customer solutions and drive new business opportunities.

Clients

BTstack is in use by various companies and successfully employed in a wide range of products.

Address
BlueKitchen GmbH
Engelstrasse 9
8004 Zurich
Switzerland
Newsletter
Our low-frequency Newsletter will keep you informed on new releases and security updates.

BlueKitchen Blog

Here you'll find our experiences of porting BTstack to different platforms, the issues we encountered along the road, Bluetooth news, as well as details from more challenging BTstack projects, some of which require reverse engineering.

01 Aug 2024

USB Adapter for Intel Bluetooth/Wifi M.2 Cards

Bluetooth SIG added support for the Intel BE200 Bluetooth/Wifi card to their Profile Tuning Suite…
Read More
15 Dec 2023

BLUFFS: Impersonating BR/EDR Devices Using Fixed Weak Session Encryption Key

Over the years, the security mechanism used in BR/EDR (Classic) have evolved from Legacy Pairing…
Read More
31 Aug 2023

AVRCP Cover Art in iOS / Android

In 2019, just as we finished implementing the AVRCP profile, which is used to control…
Read More