1**_Note: Major API Changes. For older projects, you may use the [v0.9 branch](https://github.com/bluekitchen/btstack/tree/v0.9). 2Please see [Migration notes](https://github.com/bluekitchen/btstack/blob/master/doc/manual/docs/appendix/migration.md)_** 3 4# Welcome to BTstack 5 6BTstack is [BlueKitchen's](http://bluekitchen-gmbh.com) implementation of the official Bluetooth stack. 7It is well suited for small, resource-constraint devices 8such as 8 or 16 bit embedded systems as it is highly configurable and comes with an ultra small memory footprint. 9A minimal configuration for an SPP server on a MSP430 can run in 32 kB FLASH and only 4 kB of RAM. 10 11It connects to the Bluetooth modules via a different Bluetooth HCI transport layers (e.g., HCI H4 UART and 12H5 the "Tree-Wire" protocol, HCI H2 USB). Various platforms can be easily targeted by providing the necessary 13UART, CPU, and CLOCK implementations. 14 15On smaller embedded systems, a minimal run loop implementation allows to use BTstack without a Real Time OS (RTOS). 16If a RTOS is already provided, BTstack can be integrated and run as a single thread. 17 18On larger systems, BTstack provides a daemon that connects to a Bluetooth module. 19Multiple applications can communicate with this daemon over different inter-process communication methods. 20 21BTstack supports both, the Central and the Peripheral Role of Bluetooth 4.2 Low Energy specification. 22It can be configures as both a single mode or a dual mode stack. 23 24BTstack is free for non-commercial use. For commercial use, <a href="mailto:[email protected]">tell us</a> 25a bit about your project to get a quote. 26It has been qualified with the the Bluetooth SIG for GAP, IOP, HFP, HSP, SPP, PAN profiles and 27GATT, SM of the Bluetooth 4.2 LE Central and Peripheral roles (QD ID 25340). 28 29## Documentation 30- [HTML](http://bluekitchen-gmbh.com/btstack) 31- [PDF](http://bluekitchen-gmbh.com/btstack.pdf) 32 33## Supported Protocols 34* L2CAP 35* RFCOMM 36* SDP 37* BNEP 38* ATT 39* SM 40 41 42## Supported Profiles 43* GAP 44* IOP 45* HFP 46* HSP 47* SPP 48* PAN 49* GATT 50 51Coming next: HID, HOGP, A2DP, and more. 52 53## Evaluation Platforms 54 55#### Embedded Platforms: 56Status | Platform 57-------------- | ------ 58 | [EZ430-RF256x Bluetooth Evaluation Tool for MSP430](http://www.ti.com/tool/ez430-rf256x) 59 | [MSP430F5438 Experimenter Board for MSP430](http://www.ti.com/tool/msp-exp430f5438) with [Bluetooth CC2564 Module Evaluation Board](http://www.ti.com/tool/cc2564modnem) 60 | [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 61 | [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 62 | [Microchip's PIC32 Bluetooth Audio Development Kit](http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DV320032) 63 | [RedBear Duo](https://github.com/redbear/WICED-SDK) with Broadcom BCM43438 A1 64 65 66#### Other Platforms: 67Status | Platform 68-------------- | ------ 69| posix: Unix-based system talking to Bluetooth module via serial port 70| libusb: Unix-based system talking via USB Bluetooth dongle 71| daemon: TCP and Unix domain named socket client-server architecture supporting multiple clients 72| java: Java wrapper for daemon 73| iOS: daemon for iOS jailbreak devices, C client-server API 74| mtk: daemon for rooted Android devices, based on Mediatek MT65xx processor, Java and C client-server API 75 | wiced: Broadcom platforms that support the WICED SDK 76 77## Supported Chipsets 78Chipsets | Status 79-------------- | ------ 80TI CC256x, WL183x | H4 incl. eHCIll support and SCO-over-HCI (chipset/cc256x) 81CSR 8x10, 8x11 | H4 + H5 supported, SCO-over-HCI missing (chipset/csr) 82STM STLC2500D | working, no support for custom deep sleep management (chipset/stlc2500d) 83TC35661 | working, BLE patches missing (chipset/tc3566x) 84EM 9301 (LE-only) | working, used on Arduino Shield (chipset/em9301) 85CSR USB Dongles | complete, incl. SCO-over-HCI 86Broadcom USB Dongles | complete, SCO-over-HCI missing 87Broadcom BCM43438 | complete. UART baudrate limited to 3 mbps, SCO-over-HCI missing 88 89## Source Tree Overview 90Path | Description 91--------------------|--------------- 92chipset | Support for individual Bluetooth chipsets 93doc | Sources for BTstack documentation 94example | Example applications available for all ports 95platform | Support for special OSs and/or MCU architectures 96port | Complete port for a MCU + Chipset combinations 97src | Bluetooth stack implementation 98test | Unit and PTS tests 99tool | Helper tools for BTstack 100 101## Discussion and Community Support 102[BTstack Google Group](http://groups.google.com/group/btstack-dev) 103