This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
Bluetooth stacks can be roughly divided into two distinct categories:
- General-purpose implementations that are written with emphasis on feature-richness and flexibility, usually for desktop computers. Support for additional Bluetooth profiles can typically be added through drivers.
- Embedded system implementations intended for use in devices where resources are limited and demands are lower, such as Bluetooth peripheral devices.
- 1 General-purpose implementations
- 2 Embedded implementations
- 2.1 Apache Mynewt NimBLE
- 2.2 BlueCode+
- 2.3 BlueCore Host Software (BCHS) a.k.a. CSR Synergy
- 2.4 BlueLet
- 2.5 BlueMagic
- 2.6 Blue SDK
- 2.7 Bluetopia
- 2.8 ClarinoxBlue
- 2.9 dotstack
- 2.10 EtherMind stack
- 2.11 Jungo BTware
- 2.12 lwBT
- 2.13 Mecel/Aricent Betula
- 2.14 Silvair Mesh Stack
- 2.15 SurfBlue
- 2.16 Symbian OS
- 2.17 Alpwise BlueWiseLE
- 2.18 Zephyr Project
- 3 Compatibility issue of Bluetooth devices
- 4 See also
- 5 References
- 6 External links
BlueZ is a Bluetooth stack for Linux kernel-based family of operating systems. Its goal is to program an implementation of the Bluetooth wireless standards specifications for Linux. As of 2006, the BlueZ stack supports all core Bluetooth protocols and layers. It was initially developed by Qualcomm, and is available for Linux kernel versions 2.4.6 and up. In addition to the basic stack, the bluez-utils and bluez-firmware packages contain low level utilities such as dfutool which can interrogate the Bluetooth adapter chipset to determine whether its firmware can be upgraded.
Mac OS X
Since version 10.2, Apple Inc.'s Mac OS X has contained an integrated Bluetooth stack. Included profiles are DUN, SPP, FAX, HID, HSP, SYNC, PAN, BPP and OBEX. Version 10.5 adds support for A2DP and AVRCP.
Microsoft Bluetooth Stack
Prior to Windows 8, the Microsoft Bluetooth Stack only supports external or integrated Bluetooth dongles attached through USB. It does not support Bluetooth radio connections over PCI, I²C, serial, PC Card or other interfaces. It also only supports a single Bluetooth radio. Windows 8 has an extensible transport model allowing support for Bluetooth radios on non-USB buses.
Generally, only a single stack can be used at any time: switching usually requires uninstalling the current stack, although a trace of previous stacks remains in the Windows registry. However, there are some cases where two stacks can be used on the same Microsoft Windows system, each using their own separate Bluetooth radio hardware.
- Windows 2000 or Windows ME : Microsoft has not released an official Bluetooth stack for these old Windows versions.
- Windows Embedded Compact (formerly Windows CE) supports UART, USB, SDIO, and BCSP connections. Third party stacks can also be installed on Windows CE devices, including Widcomm, BlueSoleil and Toshiba, depending on the embedded device and which version of the OS is installed.
- Windows XP had a built-in Bluetooth stack starting with the Service Pack 2 update, released on 2004-08-06. Windows XP SP2 and SP3 support Bluetooth 1.1 (but not 1.0), Bluetooth 2.0 and Bluetooth 2.0+EDR (Enhanced Data Rate).
- Windows XP SP1 : Microsoft released a QFE of its Bluetooth stack (labelled as QFE323183) to install onto Windows XP Service Pack 1. Microsoft only released this directly to third-party companies and did not directly release it to the public. The third-party companies were then allowed to release the QFE as part of their own Bluetooth device's software installation. Microsoft no longer supports this QFE.
- The Windows Vista Bluetooth stack is improved, with support for more hardware IDs, EDR performance improvements, Adaptive frequency hopping for Wi-Fi co-existence, and Synchronous Connection Oriented (SCO) protocol support which is needed for audio profiles. The Windows Vista Bluetooth stack supports a kernel mode device driver interface besides the user-mode programming interface, which enables third parties to add support for additional Bluetooth Profiles. This was lacking in the Windows XP Service Pack 2 built-in Bluetooth stack, which had to be entirely replaced by a third-party stack for additional profile support. It also provides RFCOMM support using sockets besides virtual COM ports. KB942567 called Windows Vista Feature Pack for Wireless adds Bluetooth 2.1+EDR support and remote wake from S3 or S4 support for self-powered Bluetooth modules. This feature pack while initially only available to OEMs, was eventually included in Windows Vista Service Pack 2.
- Windows 7 supports Bluetooth 2.1+EDR (like Windows Vista). Windows 7 introduces Secure Simple Pairing, Extended Inquiry Response and other UI and USB Bluetooth radio installation improvements. Secure Simple Pairing auto determines the best pairing method, Extended Inquiry Response provides more information during the inquiry procedure to allow better filtering of devices before connection. In Windows 7, Bluetooth device settings have been moved to Devices and Printers from the Control Panel applet.
- Windows 8 expands its Bluetooth stack with support for Bluetooth 4.0 which includes Bluetooth Low Energy (BLE).
- Windows 8.1 added developer APIs for Bluetooth Low Energy (GATT) and RFCOMM.
- Windows 10 converged the Windows Phone and Windows Bluetooth stacks.
Note : The Windows XP/Vista Windows Vista/Windows 7 Bluetooth stack supports the following Bluetooth profiles natively: PANU, SPP, DUN, OPP, OBEX, HID, HCRP. Windows 8 adds support for HFP, A2DP, and AVRCP Profiles.
The Windows 7/Vista/8/10 stack provides kernel-mode and user-mode APIs for its Bluetooth stack- so hardware and software vendors can implement additional profiles.
Broadcom WIDCOMM (BTW)
WIDCOMM was the first Bluetooth stack for the Windows operating system. The stack was initially developed by a company named WIDCOMM Inc., which was acquired by Broadcom Corporation in April 2004. Broadcom continues to license the stack for inclusion with many Bluetooth-powered end-user devices.
An API is available for interacting with the stack from a custom application. For developers there is also a utility named BTServer Spy Lite bundled with the stack (some vendor-tied versions excluded) which monitors Bluetooth activity on the stack at a very low level — although the category and level of trace is configurable. This stack also allows use of RFCOMM without creating a virtual serial port in the operating system.
Toshiba Bluetooth Stack
In 2001, Toshiba first announced a notebook design that would integrate a Bluetooth antenna inside the lid. Toshiba then went on to release the first two notebook models to offer dual Bluetooth/Wi-Fi integration.
Toshiba has created its own Bluetooth stack for use on Microsoft Windows. Toshiba licenses their stack to other original equipment manufacturers (OEM) and has shipped with some Fujitsu Siemens, ASUS, Dell and Sony laptops. A non-disclosure agreement must be signed to obtain the API. The Toshiba stack is also available with certain non-OEM Bluetooth accessories such as USB Bluetooth dongles and PCMCIA cards from various vendors.
The latest version of the Toshiba stack is 9.20.02(T), released on 30 September 2016.
IVT BlueSoleil (1000Moons)
BlueSoleil (marketed as 1000Moons in China) is a product of IVT Corporation, which produces stacks for embedded devices and desktop systems. The stack is available in both standard and VOIP versions. It supports the profiles A2DP, DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN, SPP, AV, BIP, FTP, HID and SYNC.
An SDK for third-party application developers is available for non-commercial use at the BlueSoleil download site, but this API will only work with the non-free version of the stack, BlueSoleil 6.4 and above.
As of April 2018, the latest version of the global BlueSoleil stack is 10.0.497.0, released on 8 January 2018. The Chinese 1000Moons stack is at version 10.2.497.0, released on 9 January 2018.
BlueFRITZ! was the stack supplied with the USB Bluetooth dongles from the German manufacturer AVM GmbH. It supported the profiles SPP, DUN, FTP, FAX and some more. HID was not supported. This stack could be switched into a mode where it is off and the Microsoft stack is used instead. Development of this stack has been aborted.
Digianswer was a subsidiary of Motorola, Inc. since 1999. Digianswer Bluetooth Software Suite (BTSWS) was marketed and sold through OEM customers such as Motorola, Dell and IBM, which bundled PCMCIA and USB products together with BTSWS. The product has been available since August 2000.
Apache Mynewt NimBLE
Apache Mynewt NimBLE is a full-featured, open source Bluetooth Low Energy 4.2 and 5.0 protocol stack written in C for embedded systems. NimBLE is one of the most complete protocol stacks, supporting 5.0 features including high data rate and extended advertising. The implementation supports all layers of the Bluetooth protocol. The first ports for the Controller part are to nRF51 series and nRF52 SoCs from Nordic Semiconductors. NimBLE also supports standard HCI interfaces to work with controllers, including ST, Dialog and Em Micro chipsets. It leverages the open source Apache Mynewt OS which is designed to support multiple microcontroller architectures. NimBLE can also run with FreeRTOS and is portable to other real-time operating systems. The implementation allows for the Mynewt NimBLE Controller part to be used with a non-Mynewt NimBLE Host.
BlueCode+ is the portable higher layer Bluetooth protocol stack from Stollmann E+V GmbH. BlueCode+ 4.0 is qualified to Bluetooth version 3.0. The protocol stack is chipset and operating system independent and supports any Bluetooth HCI chips available. The APIs offer control of the profiles and stack functions, as well as direct access to lower level functions. BlueCode+ 4.0 supports the protocols L2CAP, eL2CAP, RFCOMM, SDP Server and Client, MCAP, HCI-Host Side and AVDTP. Supported profiles are Generic Access (GAP), Service Discovery Application (SDAP), Serial Port Profile (SPP), Health Device Profile (HDP), Device Identification Profile (DID), Dial-up Networking (DUN), Fax, Headset (HSP), Handsfree (HFP), SIM Access (SAP), Phone Book Access (PBAP), Advanced Audio Distribution Profile (A2DP), Audio/Video Remote Control (AVRCP) and OBEX. The stack has been ported to a wide range of different microcontrollers and operating systems.
BlueCore Host Software (BCHS) a.k.a. CSR Synergy
CSR's BCHS or BlueCore Host Software (now called CSR Synergy) provides the upper layers of the Bluetooth protocol stack (above HCI, or optionally RFCOMM) - plus a large library of Profiles — providing a complete system software solution for embedded BlueCore applications. Current qualified Profiles available with BCHS: A2DP, AVRCP, PBAP, BIP, BPP, CTP, DUN, FAX, FM API, FTP GAP, GAVDP, GOEP, HCRP, Headset, HF1.5, HID, ICP, JSR82, LAP Message Access Profile, OPP, PAN, SAP, SDAP, SPP, SYNC, SYNC ML.
Also a product of IVT Corporation. DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN and SPP are currently supported.
BlueMagic 3.0 is Qualcomm's (formerly Open Interface North America's) highly portable embedded Bluetooth protocol stack which powers Apple's iPhone and Qualcomm-powered devices such as the Motorola RAZR. BlueMagic also ships in products by Logitech, Samsung, LG, Sharp, Sagem, and more. BlueMagic 3.0 was the first fully certified (all protocols and profiles) Bluetooth protocol stack at the 1.1 level.
OpenSynergy's Bluetooth Protocol Stack (Blue SDK) currently provides A2DP, AVRCP, VDP, BIP, BPP, CTN, FTP, GPP, HFP, HSP, HCRP, HDP, HID, MAP,OPP, PAN, PBAP, SAP, DUN, FAX, DID, GATT profiles. It is licensed by the Bluetooth™ Special Interest Group (SIG) and meets the standards of safety and security expected in automotive-grade products. Bluetooth™ Software Development Kit (Blue SDK) can easily be integrated into any operating system. It supports both BR/EDR (Classic) and Low Energy operations, classic profiles and low energy profiles use the same underlying protocol stack software.
Bluetopia is Stonestreet One's implementation of the upper layers of the Bluetooth protocol stack above the HCI interface and has been qualified to version 4.0 and earlier versions of the Bluetooth specification. The Application Programming Interface (API) provides access to all of the upper-layer protocols and profiles and can interface directly to the most popular Bluetooth chips from Broadcom, CSR, TI, and others. Bluetopia has been ported to multiple operating systems such as Windows Mobile/Windows CE, Linux, QNX, Nucleus, uCOS, ThreadX, NetBSD, and others. Bluetopia is currently shipping in devices from companies such as Motorola, Kodak, Honeywell, Garmin, VTech, and Harris.
Stonestreet One was acquired by Qualcomm in 2014.
Bluetooth host subsystem product of Clarinox Technologies. Support for Windows 7/8/8.1, WinCE, Linux, Integrity, QNX, FreeRTOS, uC/OS, ThreadX, Nucleus, MQX, RTX, embOS, TI-RTOS, DSP/BIOS, eCos and VelOSity. Bluetooth classic HCI, L2CAP, RFCOMM, SDP,BNEP, AVCTP, AVDTP protocols and SDAP, GAP, SPP, DUN, HFP, HSP, OBEX, FTP, AVRCP, A2DP, MAP, PBAP, HID, HDP, PAN profiles are supported. Bluetooth Low Energy custom GATT and all GATT based profiles, IPSP profiles are currently supported. The stack has been ported to many CPU and MCU families including Freescale; iMX6, iMX7, Kinetis K6x, STMicro; STM32F4x, NXP; LPC 18xx, LPC43xx, TI OMAP/Davinci, Tiva TM4C129x, Renesas; S7G2, Xilinx; PowerPC, soft core SPARC LEON.
dotstack, a dual mode Bluetooth stack by SEARAN, is a good fit for low cost and low power embedded devices, tested with iPhone (uses SEARAN’s IAP), Android and other mobile platforms. dotstack™ is qualified as V2.1 + EDR, V4.1, V4.2 and 5.0 ready, with SPP, GAP, HID, Headset, HFP, FTP, HDP, PBAP, Simple Secure Pairing, A2DP, AVRCP, PAN, MAP, BLE (GATT) with ANP/ANS, FMP, HIDS, HOGP, PASP/PASS, PXP, TIP, BAS, DIS, IAS, LLS, TPS, ANCS, BLP/BLS, GP, HTP, HRP/HRS. dotstack is ported to platforms from, ST Micro (STM32L1/4, STM32F0/1/2/3/4), Microchip (PIC24, dsPIC, PIC32), NXP (LPC), Energy Micro (EFM32), TI (MSP430, C5000 etc.), Renesas (RX, SH-2A, M2 ARM Cortex A15, R-Car), and tested with Bluetooth RF controllers, CSR8811/8311/8510, BlueCore 4 & 6, TI CC2560/2564, Intel/Infineon PMB8753, Marvell Avastar 88w8777, 88W8790, Toshiba TC35661, Microchip/ISSC IS1662. dotstack has FreeRTOS, uOS, Linux, Android, QNX, MQX, ThreadX, and no RTOS integration. Min RAM requirement for SPP 3KB with RTOS and app.
Mindtree’s EtherMind Stack supports all popular versions of Bluetooth specifications (2.1+EDR, v4.0, v4.1 and v4.2) and includes all mandatory and optional features of the core stack and all the adopted profiles are supported as part of EtherMind. The stack supports the latest adopted version of 23 Bluetooth Classic Profiles such as A2DP, AVRCP, etc.; and 54 Bluetooth Low Energy Profiles & Services such as Location and Navigation Profile, Weight Scale Profile/Service, etc. The offering includes the latest Mesh and IPv6 Stack over Bluetooth Smart capabilities.
Jungo's Bluetooth Protocol Stack BTware allows device manufactures to easily incorporate standard Bluetooth connectivity in their designs, including mobile handsets, automotive infotainment systems, set top boxes and medical devices. BTware supports standard HCI as well as proprietary HCI. Supported protocols: L2CAP, RFCOMM, AVDTP, AVCTP, BNEP, MCAP. Supported profiles: GAP, A2DP, AVRCP, HSP, HFP, SPP, DUN, HID, PAN, HDP, PBAP, OPP, FTP, MAP and others. Jungo has discontinued distributing BTware.
It supports some Bluetooth protocols and layers, such as the H4 and BCSP UART layers. Supported higher layers include: HCI, L2CAP, SDP, BNEP, RFCOMM and PPP. The supported profiles are: PAN (NAP, GN, PANU), LAP, DUN and Serial Port.
Mecel Betula is aAd x86 compatible. It also ported to a wide range of operating systems, such as Windows, Linux, Android or running without or with a custom OS. It has support for Bluetooth version 4.0, including the new Bluetooth Low Energy. Supported profiles are HSP, DUN, FAX, HFP, PBAP, MAP, OPP, FTP, BIP, BPP, SYNC, GAVDP, A2DP, AVRCP, HID, SAP, PAN.
Silvair Mesh Stack
Silvair Mesh Stack is an implementation of Bluetooth MESH profile and Models, developed primarily for Smart lighting applications. Apart from core mesh node features it implements Light Lightness Server model, Light Controller model and Sensor Server model so that it may be used to build dimming luminaires and daylight harvesting sensors. It provides PWM/0-10V output for direct dimming control and UART interface for integration purposes. DALI output is marked as planned.
Symbian OS is an operating system for mobile phones, which includes a Bluetooth stack. All phones based on Nokia's S60 platform and UIQ Technology's UIQ platform use this stack. The Symbian Bluetooth stack runs in user space rather than kernel space, and has public APIs for L2CAP, RFCOMM, SDP, AVRCP, etc. Profiles supported in the OS include GAP, OBEX, SPP, AVRCP, GAVDP, PAN and PBAP. Additional profiles supported in the OS + S60 platform combination include A2DP, HSP, HFP1.5, FTP, OPP, BIP, DUN, SIM access and device ID.
BlueWiseLE is the Bluetooth® Low Energy certified protocol stack software product from Alpwise. It includes the Link Layer and also the Host stack (i.e. upper layers above the HCI). The Link Layer controls the radio and the timing of the Bluetooth® communication in three possible chipset configurations: SoC, co-processor or HCI. Several proprietary BLE profiles are also available including Voice over BLE and Firmware update Over the Air (FOTA).
The Zephyr Project RTOS includes a complete, open source Bluetooth Low Energy 5.0 protocol stack written in C for embedded systems. It contains both a BLE Controller and a BLE and BR/EDR capable Host running on nRF51 Series and nRF52 SoCs from Nordic Semiconductor.
Compatibility issue of Bluetooth devices
There are several compatibility issues on Microsoft Windows 7 or 10 version PC and Bluetooth headsets (examples: Plantronics, Altec Lansing, etc.). Official Microsoft website did not provide the users with the suitable firmware for the issued devices, but Microsoft recommends to find the proper firmware on their specific Bluetooth vendor website. However, there is no firmware for Microsoft window PC on the issued Bluetooth vendor website, it means that there would be no way to pair the issued Bluetooth device(example: Plantronics headsets) with the Microsoft Window 7 or 10 PC.
Additionally, Bluetooth gamepads that were designed for Android might not pair properly on a Windows operation system, even though they use a standard Human Interface Device (HID) profile. Being identified as a keyboard rather than a gamepad (which is a normal behavior on Android), the buttons aren't directly compatible with Windows. Gamepads that pair with Windows properly and provide a HID device interface to interact with allowed developers to remap the Android-specific keys to an emulated DirectInput or X-Input device. However, many gamepads can't be paired with Windows properly: Although the gamepad's Bluetooth HID service is available to Windows, Windows won't connect to it. Attempting to manually enable the HID service (after pairing) using the "Bluetooth Services" panel of the Microsoft Bluetooth Stack results in a "The parameter is incorrect" error message. Despite the fact that this issue is limited to the Microsoft Bluetooth Stack, Microsoft has yet to explain what prevents its stack from connecting to those HID services.
- "Implementing Bluetooth in an Embedded Environment". Retrieved 22 April 2015.
- "FreeBSD Handbook: Advanced Networking - Bluetooth". Retrieved 2018-04-02.
- "FreeBSD Kernel Interfaces Manual: NG_UBT(4)". Retrieved 2018-04-02.
- Torvalds, Linus (2015-10-24), linux: Linux kernel source tree, retrieved 2017-08-30
- Selim Çιracι; Evren Karaca; Mark Reşat Pariente (2006-05-19). "Bluetooth Audio Streaming on Linux-Based Embedded Devices" (PDF). Bilkent University. Retrieved 2007-03-05.[dead link]
- "hidd(1): Bluetooth HID daemon - Linux man page". die.net. Retrieved 2018-04-02.
- "Returning BlueZ to Android". LWN.net. 2014-05-06.
- "Loading". Developer.apple.com. Retrieved 2012-08-24.
- "Bluetooth Wireless Technology FAQ". Retrieved 2012-11-04.
- "General Bluetooth Support in Windows". Microsoft.
- "General Bluetooth Support in Windows". Retrieved 2016-01-21.
- "Bluetooth HCI Transport Layer". Msdn.microsoft.com. 2008-08-28. Retrieved 2012-11-04.
- "Bluetooth Wireless Technology FAQ - 2010". Retrieved 2012-11-04.
- "USB/1394 on the PC". Archived from the original on 2012-02-15. Retrieved 2012-11-04.
- "Bluetooth Low Energy Overview". Retrieved 2013-03-19.
- "Broadcom to Acquire WIDCOMM, the Industry's Leading Provider of Critical Software for Bluetooth Wireless Devices" (Press release). Broadcom. 2004-04-19. Retrieved 2007-03-02.
- Mainelli, Tom (2001-09-18). "Toshiba Debuts First Bluetooth/Wi-Fi Notebooks". PCWorld. Retrieved 2012-11-04.
- "harmony". Csr.com. Retrieved 2012-11-04.
- "Qualcomm completes $2.4bn take-over of Cambridge's CSR". Cambridge News. Archived from the original on 23 September 2015. Retrieved 22 August 2015.
- "Motorola Acquires Digianswer". EDN Network. 1999-11-08. Retrieved 2018-04-02.
- "Digianswer and Broadcom Collaborate on Complete System Level Bluetooth Solution for PC OEMs". Business Wire (Nibe, Denmark). 2001-06-05. Retrieved 2018-04-02.
- "Apache Mynewt RTOS Addresses IoT Power, Memory, Storage Constraints". www.infoq.com. Retrieved 2016-06-28.
- "The Official Bluetooth SIG Member Website". Bluetooth.org. 2009-10-22. Retrieved 2012-08-24.
- "The Official Bluetooth SIG Member Website". Bluetooth.org. 2002-04-02. Retrieved 2012-08-24.
- Greg Burns, CTO, Open Interface North America. June 4, 2007 Managing Bluetooth Profiles: A Billion Served
- "OpenSynergy's Blue SDK".
- "ClarinoxBlue". clarinox. Retrieved 2010-08-09.
- "dotstack". Retrieved 2011-11-16.
- "Mindtree's Short Range Wireless IP Offerings". Mindtree.com. 2016-06-23. Retrieved 2016-06-23.
- "Mindtree v4.0 Smart Ready stack & profile qualification BT-SIG Certification #D024827". www.bluetooth.org. Retrieved 2016-06-23.
- "Mindtree v4.2 Bluetooth Smart stack & profile qualification BT-SIG Certification #D025118". www.bluetooth.org. Retrieved 2016-06-23.
- "EtherMind Bluetooth v5.0 Stack & Profiles and Mesh v1.0 Stack IP are BQB qualified". mindtree.com. Retrieved 2018-07-02.
- "IPv6 Stack - Mindtree". mindtree.com. Retrieved 2018-07-02.
- "A fork of the lwBT stack". lwalkera. Retrieved 2016-10-08.
- "Mecel Betula". Mecel AB. Archived from the original on 2011-10-06. Retrieved 2011-06-07.
- "Silvair Mesh Stack". Silvair, Inc. Retrieved 2017-07-20.
- "QDID 98880 | The Official Bluetooth SIG Member Website". Bluetooth SIG. 2017-07-18. Retrieved 2018-05-01.
- "The Official Bluetooth SIG Member Website". Bluetooth.org. 2008-07-01. Retrieved 2012-08-24.
- "The Official Bluetooth SIG Member Website". Bluetooth.org. 2008-02-05. Retrieved 2012-08-24.
- https://www.bluetooth.hrc.ac.in[permanent dead link]
- "Windows 10 absolutely will not detect my bluetooth headphones". answers.microsoft.com. Retrieved 11 April 2018.
- Plantronics. "BackBeat FIT Companion Mobile App for iOS and Android - Plantronics". www.plantronics.com. Retrieved 11 April 2018.