README.md (c1fc8abcd56457bda06c37c835137bb17d3b7feb) | README.md (fbacaeecf68f22294a9186dbb08a5b9d2c977d05) |
---|---|
1In this chapter, we first explain how Bluetooth chipsets are connected physically and then provide information about popular Bluetooth chipset and their use with BTstack. 2 3## HCI Interface 4 5The communication between a Host (a computer or an MCU) and a Host Controller (the actual Bluetooth chipset) follows the Host Controller Interface (HCI), see {@fig:HostChipsetConnection}. HCI defines how commands, events, asynchronous and synchronous data packets are exchanged. Asynchronous packets (ACL) are used for data transfer, while synchronous packets (SCO) are used for Voice with the Headset and the Hands-Free Profiles. 6 7{#fig:HostChipsetConnection} 8 --- 39 unchanged lines hidden (view full) --- 48Broadcom, whose Bluetooth + Wifi division has been acquired by the Cypress Semiconductor Corporation, provides developer documentation only to large customers as far as we know. It's possible to join their Community forum and download the WICED SDK. The WICED SDK is targeted at Wifi + Bluetooth Combo chipsets and contains the necessary chipset patch files. 49 50CSR, which has been acquired by Qualcomm, provides all relevant information on their Support website after signing an NDA. 51 52## Chipset Overview 53 54Chipset | Type | HCI Transport | BD_ADDR (1) | SCO over HCI (2) | LE DLE | Multiple LE Roles | BTstack folder | Comment 55-------------------- |-----------| ---------------|--------------|------------------|--------|----------------------|----------------|--------- | 1In this chapter, we first explain how Bluetooth chipsets are connected physically and then provide information about popular Bluetooth chipset and their use with BTstack. 2 3## HCI Interface 4 5The communication between a Host (a computer or an MCU) and a Host Controller (the actual Bluetooth chipset) follows the Host Controller Interface (HCI), see {@fig:HostChipsetConnection}. HCI defines how commands, events, asynchronous and synchronous data packets are exchanged. Asynchronous packets (ACL) are used for data transfer, while synchronous packets (SCO) are used for Voice with the Headset and the Hands-Free Profiles. 6 7{#fig:HostChipsetConnection} 8 --- 39 unchanged lines hidden (view full) --- 48Broadcom, whose Bluetooth + Wifi division has been acquired by the Cypress Semiconductor Corporation, provides developer documentation only to large customers as far as we know. It's possible to join their Community forum and download the WICED SDK. The WICED SDK is targeted at Wifi + Bluetooth Combo chipsets and contains the necessary chipset patch files. 49 50CSR, which has been acquired by Qualcomm, provides all relevant information on their Support website after signing an NDA. 51 52## Chipset Overview 53 54Chipset | Type | HCI Transport | BD_ADDR (1) | SCO over HCI (2) | LE DLE | Multiple LE Roles | BTstack folder | Comment 55-------------------- |-----------| ---------------|--------------|------------------|--------|----------------------|----------------|--------- |
56Atmel ATWILC3000 | Dual mode | H4 | Yes | Don't know | No | No | atwilc3000 | Required Bluetooth firmware is 270 kB |
|
56Broadcom UART | Dual mode | H4, H5 | Rarely | Probably (2) | No | Maybe (3) | bcm | Max UART baudrate 2 mbps 57Broadcom USB Dongles | Dual mode | USB | Yes | Yes | No | No | bcm | 58CSR UART | Dual mode | H4, H5, BCSP | Rarely | No (didn't work) | No | No | csr | 59CSR USB Dongles | Dual mode | USB | Mostly | Yes | No | No | csr | 60Dialog DA14581 | LE | H4, SPI | No | n.a. | No | No | da14581 | Official HCI firmware included in BTstack 61EM 9301 | LE | SPI, H4 | No | n.a. | No | No | em9301 | Custom HCI SPI implementation 62EM 9304 | LE | SPI, H4 | No | n.a. | Yes | Yes | em9301 | Custom HCI SPI implementation 63Nordic nRF | LE | H4 | Fixed Random | n.a. | Yes | Yes | | Requires custom HCI firmware 64STM STLC2500D | Classic | H4 | No | No (didn't try) | n.a | n.a. | stlc2500d | Custom deep sleep management not supported 65Toshiba TC35661 | Dual mode | H4 | No | No (didn't try) | No | No | tc3566 | HCI version not tested. See below 66TI CC256x, WL183x | Dual mode | H4, H5, eHCILL | Yes | Yes | No | Yes for CC256XC | cc256x | Also WL185x, WL187x, and WL189x 67 68**Notes**: 69 70 1. BD_ADDR: Indciates if Bluetooth chipset compes with its own valid MAC Addess. Better Broadcom and CSR dongles usually come with a MAC address from the dongle manufacturer, but cheaper ones might come with identical addresses. 71 2. SCO over HCI: All Bluetooth Classic chipsets support SCO over HCI, for those that are marked with No, we either didn't try or didn't found enough information to configure it correctly. 72 3. Multiple LE Roles: Apple uses Broadcom Bluetooth+Wifi in their iOS devices and newer iOS versions support multiple concurrent LE roles, 73 so at least some Broadcom models support multiple concurrent LE roles. | 57Broadcom UART | Dual mode | H4, H5 | Rarely | Probably (2) | No | Maybe (3) | bcm | Max UART baudrate 2 mbps 58Broadcom USB Dongles | Dual mode | USB | Yes | Yes | No | No | bcm | 59CSR UART | Dual mode | H4, H5, BCSP | Rarely | No (didn't work) | No | No | csr | 60CSR USB Dongles | Dual mode | USB | Mostly | Yes | No | No | csr | 61Dialog DA14581 | LE | H4, SPI | No | n.a. | No | No | da14581 | Official HCI firmware included in BTstack 62EM 9301 | LE | SPI, H4 | No | n.a. | No | No | em9301 | Custom HCI SPI implementation 63EM 9304 | LE | SPI, H4 | No | n.a. | Yes | Yes | em9301 | Custom HCI SPI implementation 64Nordic nRF | LE | H4 | Fixed Random | n.a. | Yes | Yes | | Requires custom HCI firmware 65STM STLC2500D | Classic | H4 | No | No (didn't try) | n.a | n.a. | stlc2500d | Custom deep sleep management not supported 66Toshiba TC35661 | Dual mode | H4 | No | No (didn't try) | No | No | tc3566 | HCI version not tested. See below 67TI CC256x, WL183x | Dual mode | H4, H5, eHCILL | Yes | Yes | No | Yes for CC256XC | cc256x | Also WL185x, WL187x, and WL189x 68 69**Notes**: 70 71 1. BD_ADDR: Indciates if Bluetooth chipset compes with its own valid MAC Addess. Better Broadcom and CSR dongles usually come with a MAC address from the dongle manufacturer, but cheaper ones might come with identical addresses. 72 2. SCO over HCI: All Bluetooth Classic chipsets support SCO over HCI, for those that are marked with No, we either didn't try or didn't found enough information to configure it correctly. 73 3. Multiple LE Roles: Apple uses Broadcom Bluetooth+Wifi in their iOS devices and newer iOS versions support multiple concurrent LE roles, 74 so at least some Broadcom models support multiple concurrent LE roles. |
74 4. Datasheet doesn't mention it, while tech support stated that multiple roles are supported. Doc will be updated after some basic tests on this. | |
75 | 75 |
76## Atmel/Microchip 77 78The ATILC3000 Bluetooth/Wifi combo controller has been used with Linux on embedded devices by Atmel/Microchip. Drivers and documentation are available from a [GitHub repository](https://github.com/atwilc3000). The ATWILC3000 has a basic HCI implementation stored in ROM and requires a firmware image to be uploaded before it can be used. Please note: the Bluetooth firmware is 270 kB. 79 80**BD Addr** seems to be stored in the device. Bluetooth address can be updated via vendor-specific command. (Documentation will be updated after checking the BD Addr of a different board.) 81 82**Baud rate** can be set with a custom command. 83 84**BTstack integration**: *btstack_chipset_atwilc3000.c* contains the code to download the Bluetooth firmware image into the RAM of the ATWILC3000. After that, it can be normally used by BTstack. 85 |
|
76## Broadcom 77 78Before the Broadcom Wifi+Bluetooth division was taken over by Cypress Semiconductor, it was not possible to buy Broadcom chipset in low quantities. Nevertheless, module manufacturers like Ampak created modules that contained Broadcom BCM chipsets (Bluetooth as well as Bluetooth+Wifi combos) that might already have been pre-tested for FCC and similar certifications. 79A popular example is the Ampak AP6212A module that contains an BCM 43438A1 and is used on the Raspberry Pi 3, the RedBear Duo, and the RedBear IoT pHAT for older Raspberry Pi models. 80 81The best source for documentation on vendor specific commands so far has been the source code for blueZ and the Bluedroid Bluetooth stack from Android. 82 83Broadcom USB dongles do not require special configuration, however SCO data is not routed over USB by default. --- 32 unchanged lines hidden (view full) --- 116 117SCO Data is routed over HCI for USB dongles, but not for UART connections. HSP and HFP Narrow Band Speech is supported via I2C/PCM pins. 118 119 120## Dialog Semiconductor 121 122Dialog Semiconductor offers the DA14581, an LE-only SoC that can be programmed with an HCI firmware. The HCI firmware can be uploaded on boot into SRAM or stored in the OTP (One-time programmable) memory, or in an external SPI. 123 | 86## Broadcom 87 88Before the Broadcom Wifi+Bluetooth division was taken over by Cypress Semiconductor, it was not possible to buy Broadcom chipset in low quantities. Nevertheless, module manufacturers like Ampak created modules that contained Broadcom BCM chipsets (Bluetooth as well as Bluetooth+Wifi combos) that might already have been pre-tested for FCC and similar certifications. 89A popular example is the Ampak AP6212A module that contains an BCM 43438A1 and is used on the Raspberry Pi 3, the RedBear Duo, and the RedBear IoT pHAT for older Raspberry Pi models. 90 91The best source for documentation on vendor specific commands so far has been the source code for blueZ and the Bluedroid Bluetooth stack from Android. 92 93Broadcom USB dongles do not require special configuration, however SCO data is not routed over USB by default. --- 32 unchanged lines hidden (view full) --- 126 127SCO Data is routed over HCI for USB dongles, but not for UART connections. HSP and HFP Narrow Band Speech is supported via I2C/PCM pins. 128 129 130## Dialog Semiconductor 131 132Dialog Semiconductor offers the DA14581, an LE-only SoC that can be programmed with an HCI firmware. The HCI firmware can be uploaded on boot into SRAM or stored in the OTP (One-time programmable) memory, or in an external SPI. 133 |
124IT does not implement the Data Length Extension or supports multiple concurrent roles. | 134It does not implement the Data Length Extension or supports multiple concurrent roles. |
125 126**BD Addr** fixed to 80:EA:CA:00:00:01. No command in HCI firmware to set it differently. Random addresses could be used instead. 127 128**Baud rate**: The baud rate is fixed at 115200 with the provided firmware. A higher baud rate could be achieved by re-compiling the HCI firmware using Dialog's HCI SDK. 129 130**BTstack integration**: *btstack_chipset_da14581.c* contains the code to download the provided HCI firmware into the SRAM of the DA14581. After that, it can be used as any other HCI chipset. 131 132## EM Microelectronic Marin --- 131 unchanged lines hidden --- | 135 136**BD Addr** fixed to 80:EA:CA:00:00:01. No command in HCI firmware to set it differently. Random addresses could be used instead. 137 138**Baud rate**: The baud rate is fixed at 115200 with the provided firmware. A higher baud rate could be achieved by re-compiling the HCI firmware using Dialog's HCI SDK. 139 140**BTstack integration**: *btstack_chipset_da14581.c* contains the code to download the provided HCI firmware into the SRAM of the DA14581. After that, it can be used as any other HCI chipset. 141 142## EM Microelectronic Marin --- 131 unchanged lines hidden --- |