xref: /btstack/README.md (revision 6d9dc928851542a4ec486e0d14a942b617e22182)
12d04a09aSmilamikica# Welcome to BTstack
22d04a09aSmilamikica
3bac2979aSMilanka RingwaldBTstack is [BlueKitchen's](http://bluekitchen-gmbh.com) implementation of the official Bluetooth stack.
4bac2979aSMilanka RingwaldIt is well suited for small, resource-constraint devices
52d04a09aSmilamikicasuch as 8 or 16 bit embedded systems as it is highly configurable and comes with an ultra small memory footprint.
62d04a09aSmilamikicaA minimal configuration for an SPP server on a MSP430 can run in 32 kB FLASH and only 4 kB of RAM.
72d04a09aSmilamikica
8*6d9dc928SMatthias RingwaldIt connects to the Bluetooth modules via a different Bluetooth HCI transport layers (e.g., HCI H4 UART and
9*6d9dc928SMatthias RingwaldH5 the "Tree-Wire" protocol, HCI H2 USB). Various platforms can be easily targeted by providing the necessary
102d04a09aSmilamikicaUART, CPU, and CLOCK implementations.
112d04a09aSmilamikica
122d04a09aSmilamikicaOn smaller embedded systems, a minimal run loop implementation allows to use BTstack without a Real Time OS (RTOS).
132d04a09aSmilamikicaIf a RTOS is already provided, BTstack can be integrated and run as a single thread.
142d04a09aSmilamikica
152d04a09aSmilamikicaOn larger systems, BTstack provides a daemon that connects to a Bluetooth module.
162d04a09aSmilamikicaMultiple applications can communicate with this daemon over different inter-process communication methods.
172d04a09aSmilamikica
18*6d9dc928SMatthias RingwaldBTstack supports both, the Central and the Peripheral Role of Bluetooth 4.2 Low Energy specification.
192d04a09aSmilamikicaIt can be configures as both a single mode or a dual mode stack.
202d04a09aSmilamikica
21b0715761SMilanka RingwaldBTstack is free for non-commercial use. For commercial use, <a href="mailto:[email protected]">tell us</a>
222d04a09aSmilamikicaa bit about your project to get a quote.
23*6d9dc928SMatthias RingwaldIt has been qualified with the the Bluetooth SIG for GAP, IOP, HFP, HSP, SPP, PAN profiles and
24*6d9dc928SMatthias RingwaldGATT, SM of the Bluetooth 4.2 LE Central and Peripheral roles (QD ID 25340).
252d04a09aSmilamikica
26439fcdeaSmilamikica## Documentation
27d9f907dbSmilamikica- [HTML](http://bluekitchen-gmbh.com/btstack/)
283ac88a1eSMatthias Ringwald- [PDF](http://bluekitchen-gmbh.com/btstack.pdf)
29439fcdeaSmilamikica
302d04a09aSmilamikica## Supported Protocols
312d04a09aSmilamikica* L2CAP
322d04a09aSmilamikica* RFCOMM
332d04a09aSmilamikica* SDP
342d04a09aSmilamikica* BNEP
352d04a09aSmilamikica* ATT
362d04a09aSmilamikica* SM
372d04a09aSmilamikica
38bac2979aSMilanka Ringwald
392d04a09aSmilamikica## Supported Profiles
402d04a09aSmilamikica* GAP
412d04a09aSmilamikica* IOP
42*6d9dc928SMatthias Ringwald* HFP
43*6d9dc928SMatthias Ringwald* HSP
442d04a09aSmilamikica* SPP
452d04a09aSmilamikica* PAN
462d04a09aSmilamikica* GATT
47bac2979aSMilanka Ringwald
48*6d9dc928SMatthias RingwaldComing next: HID, HOGP, A2DP, and more.
49bac2979aSMilanka Ringwald
502fe24f3eSMatthias Ringwald## Evaluation Platforms
51bac2979aSMilanka Ringwald
52cd07fdb2SMilanka Ringwald#### Embedded Platforms:
530776193fSMatthias RingwaldStatus               | Platform
540776193fSMatthias Ringwald--------------       | ------
55cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-ez430-rf2560) | [EZ430-RF256x Bluetooth Evaluation Tool for MSP430](http://www.ti.com/tool/ez430-rf256x)
56cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-msp-exp430f5438-cc2564b) | [MSP430F5438 Experimenter Board for MSP430](http://www.ti.com/tool/msp-exp430f5438) with [Bluetooth CC2564 Module Evaluation Board](http://www.ti.com/tool/cc2564modnem)
57cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-msp430f5229lp-cc2564b) | [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
58cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-stm32-f103rb-nucleo) | [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
59cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-pic32-harmony) | [Microchip's PIC32 Bluetooth Audio Development Kit](http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DV320032)
600776193fSMatthias Ringwald
61cd07fdb2SMilanka Ringwald
62cd07fdb2SMilanka Ringwald#### Other Platforms:
630776193fSMatthias RingwaldStatus               | Platform
640776193fSMatthias Ringwald--------------       | ------
65cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-posix-stlc2500d)| posix: Unix-based system talking to Bluetooth module via serial port
66cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-libusb)| libusb: Unix-based system talking via USB Bluetooth dongle
67cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-daemon)| daemon: TCP and Unix domain named socket client-server architecture supporting multiple clients
68cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=java)| java: Java wrapper for daemon
69cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-ios)| iOS: daemon for iOS jailbreak devices, C client-server API
70cf642f95SMatthias Ringwald![buildstatus](http://buildbot.bluekitchen-gmbh.com/btstack/badge.png?builder=platform-mtk)| mtk: daemon for rooted Android devices, based on Mediatek MT65xx processor, Java and C client-server API
71cd07fdb2SMilanka Ringwald
72bac2979aSMilanka Ringwald
73bac2979aSMilanka Ringwald## Supported Chipsets
74bac2979aSMilanka RingwaldChipsets             | Status
75bac2979aSMilanka Ringwald--------------       | ------
76*6d9dc928SMatthias RingwaldTI CC256x, WL183x    | complete incl. eHCIll support and SCO-over-HCI (chipset-cc256x)
77*6d9dc928SMatthias RingwaldCSR 8x10, 8x11       | H4 only (chipset-csr), SCO-over-HCI missing
78be0cb757SMatthias RingwaldSTM STLC2500D        | working, no support for custom deep sleep management (chipset-stlc2500d)
7958cabe00SMatthias RingwaldTC35661              | working, BLE patches missing (chipset-tc3566x)
80*6d9dc928SMatthias RingwaldEM 9301 (LE-only)    | working, used on Arduino Shield (chipset-em9301)
81*6d9dc928SMatthias RingwaldCSR USB Dongles      | complete, incl. SCO-over-HCI
82*6d9dc928SMatthias RingwaldBroadcom USB Dongles | complete, SCO-over-HCI not working
83bac2979aSMilanka Ringwald
84be0cb757SMatthias Ringwald## Discussion and Community Support
85be0cb757SMatthias Ringwald[BTstack Google Group](http://groups.google.com/group/btstack-dev)
86e1edd10aSMatthias Ringwald
87