Bluetooth stack

A Bluetooth stack is a software that refers to an implementation of the Bluetooth protocol stack.

Bluetooth stacks can be roughly divided into two:

  1. 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.
  2. Embedded system implementations intended for use in devices where resources are limited and demands are lower, such as Bluetooth peripheral devices.

Contents

General-purpose implementations

Windows

Widcomm

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.[1] 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.

Microsoft Windows stack

The Microsoft Windows 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.[2] It also only supports a single Bluetooth radio.[2]

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 versions :

Note : The Windows XP/Vista Windows Vista/Windows 7 Bluetooth stack supports the following Bluetooth profiles natively: PANU, SPP, DUN, HID, HCRP.[4][2]

The Vista and Windows 7 stack exposes the hands free profile, headset profile, stereo sender and receiver, remote control, and BIP. Drivers for these profiles will be installed for CSR plc based radios from windows update, and are courtesy of CSR plc, but they only work with CSR chipset radios.

CSR Harmony

In 2010 CSR plc started its own bluetooth stack [6].

Bluetooth Toshiba 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.[7]

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 Toshiba stack supports one of the more comprehensive list of Bluetooth profiles including: SPP, DUN, FAX, LAP, OPP, FTP, HID, HDP, HCRP, PAN, BIP, HSP, HFP (including Skype support), A2DP, AVRCP

BlueSoleil

BlueSoleil 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 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.

BlueFritz!

BlueFritz! is the stack supplied with the USB Bluetooth dongles from the German manufacturer AVM GmbH. It supports the profiles SPP, DUN, FTP, FAX and some more. HID is not supported. This stack can be switched into a mode where it is off and the Microsoft stack is used instead. Development of this stack has been aborted.

FreeBSD

The FreeBSD bluetooth stack is implemented using the Netgraph framework. A broad variety of Bluetooth USB dongles is supported by the ng_ubt driver.

Linux

The Linux operating system currently has two widespread Bluetooth stack implementations:

BlueZ

Bluez is the Bluetooth stack for Linux. Its goal is to make an implementation of the Bluetooth wireless standards specifications for Linux. As of 2006, the BlueZ stack supports all core Bluetooth protocols and layers.[8] 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.

hidd is the Bluetooth human interface device (HID) daemon.[9]

Mac OS X

Since version 10.2, Apple Inc.'s Mac OS X has contained an integrated Bluetooth stack.[10] Included profiles are DUN,SPP,FAX,HID,HSP,SYNC,PAN,BPP and OBEX. Version 10.5 adds support for A2DP and AVRCP.

Haiku

The Haiku Bluetooth Stack on the Haiku operating system implements basic functionality on only the lower and middle layers, this functionality needs to be completed.

Embedded implementations

BlueCode+

BlueCode+ is the portable higher layer Bluetooth protocol stack from Stollmann E+V GmbH. BlueCode+ 4.0 is qualified to Bluetooth version 3.0.[11] 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. [12]

BlueLet

Also a product of IVT Corporation. DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN and SPP are currently supported.

BlueMagic

BlueMagic 3.0 is Open Interface's (now Qualcomm) 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.

Bluetopia

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 2.1+EDR 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.

ClarinoxBlue

Bluetooth host subsystem product of Clarinox Technologies. Support for WinCE, Embedded Linux, eCos, VelOSity, DSP-BIOS, QNX and ThreadX. HCI, L2CAP, RFCOMM, SDP, SDAP, GAP, SPP, DUN, HFP, HSP, OBEX, FTP, AVRCP, A2DP, AVDTP are currently supported.[13]

dotstack

dotstack, a 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 with SPP, GAP, HID, Headset, HFP, FTP, HDP, PBAP, Simple Secure Pairing, A2DP, AVRCP. dotstack is ported to platforms from TI (MSP430, C5000 etc.), Microchip (PIC24, dsPIC, PIC32), Renesas (RX, SH-2A), NXP (LPC), Energy Micro (EFM32), and tested with Bluetooth RF controllers, CSR BlueCore 4 & 6 and TI CC2560. dotstack has FreeRTOS and no RTOS integrations.[14]

EtherMind stack

EtherMind is a Bluetooth protocol stack from MindTree for embedded devices.[15] A non-disclosure agreement is required to obtain the API documentation.

Jungo's BTware

Jungo's Bluetooth Protocol Stack allows device manufactures to easily incorporate standard Bluetooth connectivity in their designs, including mobile handsets, automotive infotainment systems, set top boxes, medical devices, mobile internet devices and other consumer electronics. Supported HCI: UART and USB. Supported protocols: L2CAP, RFCOMM, AVDTP, AVCTP, BNEP, MCAP. Supported profiles: GAP, A2DP, AVRCP, HSP, HFP, SPP, DUN, HID, PAN, HDP, PBAP, OPP, FTP.

lwBT

lwBT is an open source lightweight Bluetooth protocol stack for embedded systems. It acts as a network interface for the lwIP protocol stack.

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.

lwBT has been ported to the Renesas M16C, used on the Mulle platform, line of microcontrollers, and Linux as well as Windows. The source code is also available for use

A archived version of lwBT can be found in the blue-machines Googlecode repository [1]

Mecel Betula

Mecel Betula is a Bluetooth stack aimed at the embedded automotive market. The stack have support for a wide range of cpu's 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 Windows, Linux, Android or running without or with a custom OS. It have support for Bluetooth version 4.0, including the new Bluetooth Low Energy[16]. Supported profiles are HSP, DUN, FAX, HFP, PBAP, MAP, OPP, FTP, BIP, BPP, SYNC, GAVDP, A2DP, AVRCP, HID, SAP, PAN.

SurfBlue

Siemens' implementation of the blue2net access point.

Symbian OS

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.[17] Additional profiles supported in the OS + S60 platform combination include A2DP, HSP, HFP1.5, FTP, OPP, BIP, DUN, SIM access and device ID.[18][19]

See also

References

  1. ^ "Broadcom to Acquire WIDCOMM, the Industry's Leading Provider of Critical Software for Bluetooth Wireless Devices" (Press release). Broadcom. 2004-04-19. http://www.broadcom.com/press/release.php?id=515961. Retrieved 2007-03-02. 
  2. ^ a b c d e Bluetooth Wireless Technology FAQ
  3. ^ Bluetooth HCI Transport Layer
  4. ^ a b c d Bluetooth Wireless Technology FAQ - 2010
  5. ^ USB/1394 on the PC
  6. ^ http://www.csr.com/products/52/csr-harmony harmony
  7. ^ Toshiba Debuts First Bluetooth/Wi-Fi Notebooks | PCWorld
  8. ^ Selim Çιracι, Evren Karaca, Mark Reşat Pariente (2006-05-19) (PDF). Bluetooth Audio Streaming on Linux-Based Embedded Devices. Bilkent University. http://www.ug.bcc.bilkent.edu.tr/~resat/Resources/cs515term.pdf. Retrieved 2007-03-05. 
  9. ^ hidd
  10. ^ http://developer.apple.com/mac/library/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html
  11. ^ https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=16052
  12. ^ https://www.bluetooth.org/qualweb/ProductDetails.cfm?ProductID=700
  13. ^ "ClarinoxBlue". clarinox. http://www.clarinox.com/index.php?id=56. Retrieved 2010-08-09. 
  14. ^ "dotstack". http://www.searanllc.com/. Retrieved 2011-11-16. 
  15. ^ EtherMind - Bluetooth Stack And Profiles IP Suite
  16. ^ "Mecel Betula". Mecel AB. http://www.mecel.se/products/bluetooth. Retrieved 2011-06-07. 
  17. ^ https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=14442
  18. ^ https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=14088
  19. ^ https://www.bluetooth.hrc.ac.in