19cd88577SMatthias Ringwald**_Note: Major API Changes. For older projects, you may use the [v0.9 branch](https://github.com/bluekitchen/btstack/tree/v0.9). 2287b4054SMatthias RingwaldPlease see [Migration notes](https://github.com/bluekitchen/btstack/blob/master/doc/manual/docs/appendix/migration.md)_** 3490a6e27SMatthias Ringwald 42d04a09aSmilamikica# Welcome to BTstack 52d04a09aSmilamikica 6bac2979aSMilanka RingwaldBTstack is [BlueKitchen's](http://bluekitchen-gmbh.com) implementation of the official Bluetooth stack. 7bac2979aSMilanka RingwaldIt is well suited for small, resource-constraint devices 82d04a09aSmilamikicasuch as 8 or 16 bit embedded systems as it is highly configurable and comes with an ultra small memory footprint. 92d04a09aSmilamikicaA minimal configuration for an SPP server on a MSP430 can run in 32 kB FLASH and only 4 kB of RAM. 102d04a09aSmilamikica 11*43a197a7SMatthias RingwaldTargeting 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. 122d04a09aSmilamikica 132d04a09aSmilamikicaOn smaller embedded systems, a minimal run loop implementation allows to use BTstack without a Real Time OS (RTOS). 142d04a09aSmilamikicaIf a RTOS is already provided, BTstack can be integrated and run as a single thread. 152d04a09aSmilamikica 162d04a09aSmilamikicaOn larger systems, BTstack provides a daemon that connects to a Bluetooth module. 172d04a09aSmilamikicaMultiple applications can communicate with this daemon over different inter-process communication methods. 182d04a09aSmilamikica 19*43a197a7SMatthias RingwaldBTstack supports the Central and the Peripheral Role of Bluetooth 4.2 Low Energy specification. 20*43a197a7SMatthias RingwaldIt can be configured to run as either single-mode stack or a dual-mode stack. 212d04a09aSmilamikica 22*43a197a7SMatthias RingwaldBTstack is free for non-commercial use. However, for commercial use, <a href="mailto:[email protected]">tell us</a> a bit about your project to get a quote. 23*43a197a7SMatthias Ringwald 24*43a197a7SMatthias Ringwald#### Supported Protocols and Profiles 25*43a197a7SMatthias Ringwald 26*43a197a7SMatthias Ringwald**Protocols:** L2CAP, RFCOMM, SDP, BNEP, ATT, SM (incl. LE Secure Connections). 27*43a197a7SMatthias Ringwald 28*43a197a7SMatthias Ringwald**Profiles** GAP, IOP, HFP, HSP, SPP, PAN, GATT. 29*43a197a7SMatthias Ringwald 30*43a197a7SMatthias Ringwald**Coming next** A2DP, AVRCP, HID, HOGP, BLE Mesh, and more. 31*43a197a7SMatthias Ringwald 326d9dc928SMatthias RingwaldIt has been qualified with the the Bluetooth SIG for GAP, IOP, HFP, HSP, SPP, PAN profiles and 33*43a197a7SMatthias RingwaldGATT, SM of the Bluetooth 4.2 LE Central and Peripheral roles (QD ID 25340). For information on MFi/iAP2 support, please <a href="mailto:[email protected]">contact us</a>. 342d04a09aSmilamikica 35*43a197a7SMatthias Ringwald#### Documentation: [HTML](http://bluekitchen-gmbh.com/btstack/develop/), [PDF](http://bluekitchen-gmbh.com/btstack_develop.pdf) 36439fcdeaSmilamikica 37*43a197a7SMatthias Ringwald#### Discussion and Community Support: [BTstack Google Group](http://groups.google.com/group/btstack-dev) 382d04a09aSmilamikica 39b1b4c413SMatthias Ringwald 402fe24f3eSMatthias Ringwald## Evaluation Platforms 41bac2979aSMilanka Ringwald 42cd07fdb2SMilanka Ringwald#### Embedded Platforms: 430776193fSMatthias RingwaldStatus | Platform 440776193fSMatthias Ringwald-------------- | ------ 453f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-ez430-rf2560-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-ez430-rf2560-develop) | [EZ430-RF256x Bluetooth Evaluation Tool for MSP430](http://www.ti.com/tool/ez430-rf256x) 463f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-msp-exp430f5438-cc2564b-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-msp-exp430f5438-cc2564b-develop) | [MSP430F5438 Experimenter Board for MSP430](http://www.ti.com/tool/msp-exp430f5438) with [Bluetooth CC2564 Module Evaluation Board](http://www.ti.com/tool/cc2564modnem) 473f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-msp430f5229lp-cc2564b-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-msp430f5229lp-cc2564b-develop) | [MSP-EXP430F5529LP LaunchPad](http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html#tabs) with [Bluetooth CC2564 Module Evaluation Board](http://www.ti.com/tool/cc2564modnem) and [EM Adapter BoosterPack](http://www.ti.com/tool/boost-ccemadapter) with additional 32768Hz quartz oscillator 483f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-stm32-f103rb-nucleo-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-stm32-f103rb-nucleo-develop) | [STM32 Nucleo development board NUCLEO-F103RB](http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF259875) with [Bluetooth CC2564 Module Evaluation Board](http://www.ti.com/tool/cc2564modnem) and [EM Adapter BoosterPack](http://www.ti.com/tool/boost-ccemadapter) with additional 32768Hz quartz oscillator 493f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-pic32-harmony-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-pic32-harmony-develop) | [Microchip's PIC32 Bluetooth Audio Development Kit](http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DV320032) 503f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-wiced-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-wiced-develop) | [RedBear Duo](https://github.com/redbear/WICED-SDK) with Broadcom BCM43438 A1 510776193fSMatthias Ringwald 52cd07fdb2SMilanka Ringwald 53cd07fdb2SMilanka Ringwald#### Other Platforms: 540776193fSMatthias RingwaldStatus | Platform 550776193fSMatthias Ringwald-------------- | ------ 56273591abSMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-posix-h4-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-posix-h4-develop) | posix: Unix-based system connected to Bluetooth module via serial port 57273591abSMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-libusb-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-libusb-develop) | libusb: Unix-based system with dedicated USB Bluetooth dongle 58f62ec7adSMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-daemon-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/.. | windows-h4: Win32-based system connected to Bluetooth module via serial port 59f62ec7adSMatthias Ringwald.. | windwos-winusb: Win32-based system with dedicated USB Bluetooth dongle 60f62ec7adSMatthias Ringwaldport-daemon-develop) | daemon: TCP and Unix domain named socket client-server architecture supporting multiple clients 613f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=java-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/java-develop) | java: Java wrapper for daemon 623f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-ios-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-ios-develop) | iOS: daemon for iOS jailbreak devices, C client-server API 633f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-mtk-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-mtk-develop) | mtk: daemon for rooted Android devices, based on Mediatek MT65xx processor, Java and C client-server API 643f8e63e4SMatthias Ringwald[<img src="http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-wiced-develop">](https://buildbot.bluekitchen-gmbh.com/btstack/builders/port-wiced-develop) | wiced: Broadcom platforms that support the WICED SDK 65bac2979aSMilanka Ringwald 66bac2979aSMilanka Ringwald## Supported Chipsets 67273591abSMatthias Ringwald 68273591abSMatthias RingwaldChipset | Type | HCI Transport | SCO over HCI (2) | BTstack folder | Comment 69273591abSMatthias Ringwald-------------------- |-----------| ----------------|------------------|----------------|--------- 7094bb7abfSMatthias RingwaldBroadcom UART | Dual mode | H4, H5 | Probably | bcm | Max UART baudrate 2 mbps 7194bb7abfSMatthias RingwaldBroadcom USB Dongles | Dual mode | USB | Yes | bcm | 72273591abSMatthias RingwaldCSR UART | Dual mode | H4, H5 | No (didn't work) | csr | 73273591abSMatthias RingwaldCSR USB Dongles | Dual mode | USB | Yes | csr | 74273591abSMatthias RingwaldEM 9301 | LE | SPI | n.a. | em9301 | Custom HCI SPI implementation 75273591abSMatthias RingwaldNordic nRF | LE | H4 | n.a. | | Requires custom HCI firmware 76273591abSMatthias RingwaldSTM STLC2500D | Classic | H4 | No (didn't try) | stlc2500d | Custom deep sleep management not supported 77273591abSMatthias RingwaldToshiba TC35661 | Dual mode | H4 | No (didn't try) | tc3566 | HCI version not tested. 78273591abSMatthias RingwaldTI CC256x, WL183x | Dual mode | H4, H5, eHCILL | Yes | cc256x | Also WL185x, WL187x, and WL189x 79273591abSMatthias Ringwald 80273591abSMatthias Ringwald[More infos on supported chipsets](https://bluekitchen-gmbh.com/btstack/develop/chipsets/) 8140276177SMatthias Ringwald 8240276177SMatthias Ringwald## Source Tree Overview 8340276177SMatthias RingwaldPath | Description 8440276177SMatthias Ringwald--------------------|--------------- 8540276177SMatthias Ringwaldchipset | Support for individual Bluetooth chipsets 8640276177SMatthias Ringwalddoc | Sources for BTstack documentation 87b3d63497SMatthias Ringwaldexample | Example applications available for all ports 8840276177SMatthias Ringwaldplatform | Support for special OSs and/or MCU architectures 897a33c82fSMatthias Ringwaldport | Complete port for a MCU + Chipset combinations 9040276177SMatthias Ringwaldsrc | Bluetooth stack implementation 9140276177SMatthias Ringwaldtest | Unit and PTS tests 9240276177SMatthias Ringwaldtool | Helper tools for BTstack 93