Bluetooth stack: Difference between revisions

Content deleted Content added
Added proper name templates so that names are not flagged as typos by automated spellcheckers. Appearance unchanged.
 
(21 intermediate revisions by 14 users not shown)
Line 43:
 
===={{Anchor|BLUEDROID}}BlueDroid/Fluoride====
[[Android (operating system)|Android]] switched from BlueZ to its own ''BlueDroid'' stack, created by [[Broadcom]], in late 2012.<ref name=lwn-BlueZ-Android/> BlueDroid has been since been renamed Fluoride.<ref>{{Cite web|url=https://gerrit.unlegacy-android.org/plugins/gitiles/Unlegacy-Android/android_system_bt/+/219d4b6a542ade76b6069ee99cd0af0548139c9c|archive-url=https://web.archive.org/web/20190831084012/https://gerrit.unlegacy-android.org/plugins/gitiles/Unlegacy-Android/android_system_bt/%2B/219d4b6a542ade76b6069ee99cd0af0548139c9c|url-status=dead|archive-date=August 31, 2019|title=Fluoride Bluetooth stack|website=android.googlesource.com|access-date=2019-08-31}} </ref> Marcel Holtmann, from the Intel Open Source Technology Center, claimedimplied that Google made a poor choice in switching to BlueDroid, during a presentation for ''BlueZ for Android'' at the Android Builders Summit in 2014.<ref name=lwn-BlueZ-Android/>
 
==== Gabeldorsche ====
With Android 13, Google by default enabled the newly developed Bluetooth stack ''Gabeldorsche''.<ref>{{cite web | url=https://www.xda-developers.com/android-13-gabeldorsche-bluetooth-stack/ | title=Android's new Gabeldorsche Bluetooth stack is enabled by default in Android 13 | date=25 August 2022 }}</ref>
 
The name ''Gabeldorsche'' very indirectly relates to [[Sweyn Forkbeard]], the son and successor of [[Harald Bluetooth]].<ref>{{cite web | url=https://9to5google.com/2020/02/19/android-11-dp1-gabeldorsche-bluetooth/ | title=Android 11's new 'Gabeldorsche' Bluetooth stack was given its name for a great reason | date=20 February 2020 }}</ref>
 
===Mac OS XmacOS===
Since version 10.2, [[Apple Inc.]]'s [[Mac OS XmacOS]] has contained an integrated Bluetooth stack.<ref>{{cite web|url=https://developer.apple.com/mac/library/archive/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html |title=LoadingIntroduction to Bluetooth Device Access Guide |work=Bluetooth Device Access Guide |publisher=Developer.apple.com |access-date=20122025-0805-2404}}</ref> Included profiles are DUN, SPP, FAX, HID, HSP, SYNC, PAN, BPP and OBEX. VersionMac OS X 10.5 addsadded support for A2DP and AVRCP.
 
===Windows===
 
====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 [[Conventional PCI|PCI]], [[I2C|I²<sup>2</sup>C]], [[serial port|serial]], [[PC Card]] or other interfaces.<ref name="MSBTFAQ">{{cite web|url=http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Bth_FAQ.docx |title=Bluetooth Wireless Technology FAQ |access-date=2012-11-04}}</ref> It also only supports a single Bluetooth radio.<ref name="MSBTFAQ"/> Windows 8 has an extensible transport model allowing support for Bluetooth radios on non-USB buses.<ref name="BTWindows">{{cite web|url=https://msdn.microsoft.com/en-us/library/windows/hardware/dn133849(v=vs.85).aspx|title=General Bluetooth Support in Windows|publisher=Microsoft}}</ref>
 
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.
Line 63:
* [[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.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/aa910275.aspx |title=Bluetooth HCI Transport Layer |publisher=Msdn.microsoft.com |date=2008-08-28 |access-date=2012-11-04}}</ref> 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 [[XP Service Pack 2|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). Profiles can be toggled in the "Services" tab of each Bluetooth Device to disable unsupported profiles. <ref name="WinBT 2010 FAQ">{{cite web|url=http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Bth_FAQ.docx |title=Bluetooth Wireless Technology FAQ - 2010 |access-date=2012-11-04}}</ref>
* Windows XP SP1 : Microsoft released a [[Quick Fix Engineering|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.<ref name="MSBTFAQ"/> The Windows Vista Bluetooth stack supports a kernel mode [[device driver|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.<ref>{{cite web|url=http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWMO05002_WinHEC05.ppt |title=USB/1394 on the PC |access-date=2012-11-04 |url-status=dead |archive-url=https://web.archive.org/web/20120215074927/http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWMO05002_WinHEC05.ppt |archive-date=2012-02-15 }}</ref> 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.<ref name="MSBTFAQ"/> This feature pack while initially only available to OEMs, was eventually included in Windows Vista Service Pack 2.
Line 70:
* [[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.<ref name="MSBTFAQ"/><ref name="BTWindows"/><ref name="WinBT 2010 FAQ"/> Windows 8 adds support for HFP, A2DP, GATT and AVRCP Profiles.<ref name="BTWindows"/>
 
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.<ref name="BTWindows"/>
 
Windows 10 (Version 1803) and later support Bluetooth version 5.0 and several Bluetooth profiles.<ref>[https://docs.microsoft.com/en-us/windows-hardware/drivers/bluetooth/general-bluetooth-support-in-windows Bluetooth Version and Profile Support in Windows 10]</ref>
 
Bluetooth profiles exposed by the device but unsupported by the Windows stack will show as "Bluetooth Peripheral Device" in [[Device Manager]].
 
====Broadcom WIDCOMM (BTW)====
Line 124 ⟶ 126:
 
===Blue SDK===
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™Bluetooth Special Interest Group (SIG) and meets the standards of safety and security expected in automotive-grade products. Bluetooth™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.<ref>{{cite web|url=http://www.opensynergy.com/produkte/blue-sdk/ |title=OpenSynergy's Blue SDK|date=28 October 2020 }}</ref>
 
===Bluetopia===
Line 132 ⟶ 134:
 
=== BlueWiseLE ===
BlueWiseLE is the ''Bluetooth® Low Energy'' certified protocol stack software product from Alpwise. It includes the Link Layer<ref>{{cite web |url=http://www.alpwise.com/bluetooth-protocol-stack/software/bluetooth-stack/link-layer/ |title=Link layer Bluetooth Low Energy 5 developed by Alpwise |publisher=alpwise.com |access-date=2018-11-20}}</ref> and also the Host stack (i.e. upper layers above the HCI).<ref>{{Cite web|url=https://launchstudio.bluetooth.com/ListingDetails/RedirectFromQdid/102355|title=QD ID 102355 {{!}} Launch Studio - Listing Details|website=launchstudio.bluetooth.com|access-date=2018-11-20}}</ref> 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).<ref>{{cite web |url=http://www.alpwise.com/bluetooth-protocol-stack/software/bluetooth-stack/ |title=Bluetooth Protocol Stack and its development kit - Alpwise |publisher=alpwise.com |access-date=2018-11-20 |archive-date=2018-02-03 |archive-url=https://web.archive.org/web/20180203141832/http://www.alpwise.com/bluetooth-protocol-stack/software/bluetooth-stack/ |url-status=dead }}</ref>
 
===ClarinoxBlue===
Bluetooth host subsystem product of Clarinox Technologies. Support for Windows 7/8/10, WinCE, Linux/AGL Linux, Android, AutoSAR, Integrity, SafeRTOS, QNX, µITRONμITRON, FreeRTOS, µCμC/OS, Azure RTOS ThreadX, Nucleus, MQX, RTX, embOS, TI-RTOS, DSP/BIOS, eCos and µμ-velOSity. Qualified for Bluetooth specification 5.2,5.0 and all previous specifications includes all Classic profiles/protocols and LE profiles/services including BT & LE Audio. ClarinoxBlue supports HCI transport for SDIO, UART 3-Wire, UART-BCSP, UART-H4, USB. The stack has been ported to many CPU and MCU families including NXP i.MX6/i.MX7/i.MX8/i.MX RT, Kinetis K6x/7x, LPC 18xx/43xx/54xxx STMicro; STM32F4x, STM32H7, STM32WB55, STM32MP157; Texas Instruments TI MSP432, DSP 5xxx, OMAP/Davinci, Tiva TM4C123x, Sitara 3xxx; Renesas Synergy S5/S7, RH850, R-Car M3/H3; Xilinx PowerPC, soft core SPARC LEON. ClarinoxBlue Bluetooth host system is provided with ClariFi debug tool, in-built protocol analyzer, supports faster debugging of complex wireless devices. ClariFi offers threading, memory usage, memory leak analysis and audio analysis to support the tuning of applications and aid in the communication of issues.<ref>{{cite web
|url=https://clarinox.com/products/softframe/supported-platforms/
|title=ClarinoxBlue
Line 141 ⟶ 143:
|access-date=2022-04-11
|archive-url=https://web.archive.org/web/20190820044339/http://clarinox.com/products/softframe/supported-platforms/
|archive-date=20202019-0908-2420
|url-status=dead
}}</ref>
 
==={{Proper name|dotstack}}===
{{Proper name|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. {{Proper name|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. {{Proper name|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. {{Proper name|dotstack}} has FreeRTOS, uOS, Linux, Android, QNX, MQX, ThreadX, and no RTOS integration. Min RAM requirement for SPP 3KB with RTOS and app.<ref>
{{cite web
|url=http://www.searanllc.com/
Line 173 ⟶ 175:
 
===Mecel/Aricent Betula===
[[Mecel]] Betula is aAda Bluetooth stack aimed at the embedded automotive market. The stack has support for a wide range of CPUs including, ARM, Renesas V850, TI DSP 54xx and 55xx family and x86 compatible. It also ported to a wide range of operating systems, such as [[Microsoft Windows|Windows]], [[Linux]], [[Android (operating system)|Android]] or running without or with a custom OS. It has support for Bluetooth version 45.03, including the new Bluetooth Low Energy & mesh.<ref>
{{cite web
|url=http://www.mecel.se/products/bluetooth
Line 202 ⟶ 204:
 
===Zephyr Project===
The [[Zephyr (operating system)|Zephyr Project RTOS]] includes a complete, [[open source]] Bluetooth Low Energy 5v5.03<ref>{{Cite web |title=Overview — Zephyr Project Documentation |url=https://docs.zephyrproject.org/latest/connectivity/bluetooth/overview.html#supported-features |access-date=2023-06-21 |website=docs.zephyrproject.org}}</ref> compliant protocol stack written in C for [[embedded system]]s. It contains both a BLE Controller and a BLE and BR/EDR capable Host running on [[nRF51 Series]] and nRF52 SoCs from Nordic Semiconductor.
 
==See also==