xref: /btstack/README.md (revision bc37f7b0d0a3eaa5763a873c5730bc14b849aaa0)
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![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-ez430-rf2560-develop) | [EZ430-RF256x Bluetooth Evaluation Tool for MSP430](http://www.ti.com/tool/ez430-rf256x)
59![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=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)
60![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=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
61![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=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
62![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-pic32-harmony-develop) | [Microchip's PIC32 Bluetooth Audio Development Kit](http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DV320032)
63![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-wiced-develop) | [RedBear Duo](https://github.com/redbear/WICED-SDK) with Broadcom BCM43438 A1
64
65
66#### Other Platforms:
67Status               | Platform
68--------------       | ------
69![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-posix-h4-develop)| posix: Unix-based system talking to Bluetooth module via serial port
70![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-libusb-develop)| libusb: Unix-based system talking via USB Bluetooth dongle
71![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-daemon-develop)| daemon: TCP and Unix domain named socket client-server architecture supporting multiple clients
72![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=java-develop)| java: Java wrapper for daemon
73![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-ios-develop)| iOS: daemon for iOS jailbreak devices, C client-server API
74![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-mtk-develop)| mtk: daemon for rooted Android devices, based on Mediatek MT65xx processor, Java and C client-server API
75![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=port-wiced-develop) | 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