README.md (9a0af64aaaecc692a8e13150ace05c499ecd43c4) README.md (71f4b58fd72671b27d7da5ff4ebb479a8c1352c8)
1#
2
3In this chapter, we first explain how Bluetooth chipsets are connected physically and then provide information about popular Bluetooth chipset and their use with BTstack.
4
5## HCI Interface
6
7The 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.
8

--- 71 unchanged lines hidden (view full) ---

80| EM 9304 | LE | SPI, H4 | Yes | n.a. | Yes | Yes | n.a. | Don't know | em9301 | Custom HCI SPI implementation |
81| EM 9305 | LE | SPI, H4 | Yes | n.a. | Yes | Yes | n.a. | Yes | em9301 | Custom HCI SPI implementation |
82| Intel Dual Wireless 3165, 8260, 8265 | Dual mode | USB | Yes | Probably | Don't know | Don't know | Don't know | Don't know | intel | Firmware size: 400 kB |
83| Nordic nRF | LE | H4 | Fixed Random | n.a. | Yes | Yes | n.a. | Yes | | Requires HCI firmware |
84| NXP 88W8997 | Dual mode | H4 | Yes | Partially(2) | Yes | Yes | No | Yes | nxp | Requires initial firmware |
85| NXP IW416 | Dual mode | H4 | Yes | No | Yes | Yes | No | Yes | nxp | Requires initial firmware |
86| NXP IW61x | Dual mode | H4 | Yes | Partially(2) | Yes | Yes | No | Yes | nxp | Requires initial firmware |
87| STM STLC2500D | Classic | H4 | No | Don't know | n.a | n.a. | No | n.a. | stlc2500d | Custom deep sleep management not supported |
1#
2
3In this chapter, we first explain how Bluetooth chipsets are connected physically and then provide information about popular Bluetooth chipset and their use with BTstack.
4
5## HCI Interface
6
7The 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.
8

--- 71 unchanged lines hidden (view full) ---

80| EM 9304 | LE | SPI, H4 | Yes | n.a. | Yes | Yes | n.a. | Don't know | em9301 | Custom HCI SPI implementation |
81| EM 9305 | LE | SPI, H4 | Yes | n.a. | Yes | Yes | n.a. | Yes | em9301 | Custom HCI SPI implementation |
82| Intel Dual Wireless 3165, 8260, 8265 | Dual mode | USB | Yes | Probably | Don't know | Don't know | Don't know | Don't know | intel | Firmware size: 400 kB |
83| Nordic nRF | LE | H4 | Fixed Random | n.a. | Yes | Yes | n.a. | Yes | | Requires HCI firmware |
84| NXP 88W8997 | Dual mode | H4 | Yes | Partially(2) | Yes | Yes | No | Yes | nxp | Requires initial firmware |
85| NXP IW416 | Dual mode | H4 | Yes | No | Yes | Yes | No | Yes | nxp | Requires initial firmware |
86| NXP IW61x | Dual mode | H4 | Yes | Partially(2) | Yes | Yes | No | Yes | nxp | Requires initial firmware |
87| STM STLC2500D | Classic | H4 | No | Don't know | n.a | n.a. | No | n.a. | stlc2500d | Custom deep sleep management not supported |
88| STM32WB | LE | VHCI | Yes | n.a. | Yes | Yes | n.a. | Yes | | See port/stm32wb55x-nucleo-freertos |
89| STM32WB0 | LE | VHCI, H4 | Yes | n.a. | Yes | Yes | n.a. | Yes | | HCI Firmware part of STM32WB0 Cube Package |
88| Renesas RX23W | LE | H4 | No | n.a. | Yes | Yes | n.a . | Don't know | | HCI Firmware part of BTTS |
89| Realtek RTL8822CS | Dual mode + Wifi | H5 | Yes | Yes | Don't know | Don't know | Don't know | Don't know | | Requires initial firmware + config |
90| Realtek USB Dongles | Dual mode + Wifi | USB | Yes | Yes | Don't know | Don't know | Don't know | Don't know | realtek | Requires initial firmware + config |
91| Toshiba TC35661 | Dual mode | H4 | No | No | No | No | No | No | tc3566 | Only -007/009 models provide full HCI. See below |
92| TI CC256x, WL183x | Dual mode | H4, H5, eHCILL | Yes | Yes | No | Yes for CC256XC | No | No | cc256x | Also WL185x, WL187x, and WL189x |
93
94**Notes**:
95

--- 207 unchanged lines hidden (view full) ---

303**Init script** is required.
304
305**BTstack integration**: H4/H5 Controller require firmware upload. 'rtk_attach' can be used for this. For USB Controllers,
306*btstack_chipset_realtek.c* implements the patch and config upload mechanism. See port/libusb for details on how to use it.
307
308
309## Renesas Electronics
310
90| Renesas RX23W | LE | H4 | No | n.a. | Yes | Yes | n.a . | Don't know | | HCI Firmware part of BTTS |
91| Realtek RTL8822CS | Dual mode + Wifi | H5 | Yes | Yes | Don't know | Don't know | Don't know | Don't know | | Requires initial firmware + config |
92| Realtek USB Dongles | Dual mode + Wifi | USB | Yes | Yes | Don't know | Don't know | Don't know | Don't know | realtek | Requires initial firmware + config |
93| Toshiba TC35661 | Dual mode | H4 | No | No | No | No | No | No | tc3566 | Only -007/009 models provide full HCI. See below |
94| TI CC256x, WL183x | Dual mode | H4, H5, eHCILL | Yes | Yes | No | Yes for CC256XC | No | No | cc256x | Also WL185x, WL187x, and WL189x |
95
96**Notes**:
97

--- 207 unchanged lines hidden (view full) ---

305**Init script** is required.
306
307**BTstack integration**: H4/H5 Controller require firmware upload. 'rtk_attach' can be used for this. For USB Controllers,
308*btstack_chipset_realtek.c* implements the patch and config upload mechanism. See port/libusb for details on how to use it.
309
310
311## Renesas Electronics
312
311Please see Dialog Semiconducator for DA14xxx Bluetooth SoCs above.
313Please see Dialog Semiconductor for DA14xxx Bluetooth SoCs above.
312
313Renesas currently has 3 LE-only SoCs: the older 16-bit RL78 and the newer RX23W and the RA4W1.
314For the newer SoCs, Renesas provides a pre-compiled HCI firmware as well as an HCI project for their e2 Studio IDE.
315The HCI firmware needs to be programmed into the SoC Flash.
316
317Both newer SoC provide the newer Bluetooth 5.0 features like DLE, 2M-PHY, Long Range, and Multiple Roles.
318
319To install the HCI Firmware on the [Target Board for RX23W](https://www.renesas.com/us/en/products/software-tools/boards-and-kits/eval-kits/rx-family-target-board.html):

--- 27 unchanged lines hidden (view full) ---

347
348**BTstack integration**: Support for the STLC2500C is provided by *btstack_chipset_stlc.c*. During the setup, *btstack_chipset_stlc2500d_instance* function is used to get a *btstack_chipset_t* instance and passed to *hci_init* function. It enables higher UART baud rate and to set the BD Addr during startup.
349
350
351### BlueNRG
352
353The BlueNRG series is an LE-only SoC which can be used with an HCI Firmware over a custom SPI interface.
354
314
315Renesas currently has 3 LE-only SoCs: the older 16-bit RL78 and the newer RX23W and the RA4W1.
316For the newer SoCs, Renesas provides a pre-compiled HCI firmware as well as an HCI project for their e2 Studio IDE.
317The HCI firmware needs to be programmed into the SoC Flash.
318
319Both newer SoC provide the newer Bluetooth 5.0 features like DLE, 2M-PHY, Long Range, and Multiple Roles.
320
321To install the HCI Firmware on the [Target Board for RX23W](https://www.renesas.com/us/en/products/software-tools/boards-and-kits/eval-kits/rx-family-target-board.html):

--- 27 unchanged lines hidden (view full) ---

349
350**BTstack integration**: Support for the STLC2500C is provided by *btstack_chipset_stlc.c*. During the setup, *btstack_chipset_stlc2500d_instance* function is used to get a *btstack_chipset_t* instance and passed to *hci_init* function. It enables higher UART baud rate and to set the BD Addr during startup.
351
352
353### BlueNRG
354
355The BlueNRG series is an LE-only SoC which can be used with an HCI Firmware over a custom SPI interface.
356
355### STM32-WB5x
357### STM32-WB
356
358
357The new STM32-WB5x series microcontroller is an SoC with a multi-protocol 2.4 Ghz radio co-processor. It provides a virtual HCI interface.
359The STM32-WB5x series microcontroller is an SoC with a multi-protocol 2.4 Ghz radio co-processor. It provides a virtual HCI interface.
358
360
361### STM32-WB0
359
362
363The STM32-WB50 series microcontroller is an SoC with a multi-protocol 2.4 Ghz radio co-processor.
364The [STM32Cube MCU Package for STM32WB0 series](https://www.st.com/en/embedded-software/stm32cubewb0.html) provides the HCI firmware.
365
366To flash this firmware, you can:
367- [Download and Install STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html)
368- [Download and Unzip the STM32WB0 MCU Package](https://www.st.com/en/embedded-software/stm32cubewb0.html)
369- Open STM32CubeIDE
370- Import projects`Projects/{Your DevKit}/Applications/BLE/BLE_TransparentMode/STM32CubeIDE` and make sure the option 'copy into workspace' is unchecked
371- In `ble_conf.h`, add the line:
372 - `#define BLESTACK_CONTROLLER_ONLY 1`
373- Replace the controller+stack library with the controller only library:
374 - Go to Properties->C/C++ Build->Settings->Tool Settings->MCU GCC Linker->Libraries in STM32CubeIDE
375 - Replace `:stm32wb0x_ble_stack.a` with `:stm32wb0x_ble_stack_controller_only.a`
376- Connect your Nucleo board and press the "Run" button
377
378The HCI firmware is configured for 921600 baud and no hardware flow control. You can modify these settings in `MX_USART1_UART_Init()` in `main.c`.
379Use `UART_HWCONTROL_RTS_CTS` to enable hardware flowcontrol.
380
381
360## Texas Instruments CC256x series
361
362The Texas Instruments CC256x series is currently in its fourth iteration and provides a Classic-only (CC2560), a Dual-mode (CC2564), and a Classic + ANT (CC2567) model. A variant of the Dual-mode chipset is also integrated into TI's WiLink 8 Wifi+Bluetooth combo modules of the WL183x, WL185x, WL187x, and WL189x series. Some of the latter support ANT as well.
363
364The CC256x chipset is connected via an UART connection and supports the H4, H5 (since third iteration), and eHCILL.
365
366The latest generation `CC256xC` chipsets support multiple LE roles in parallel.
367

--- 58 unchanged lines hidden ---
382## Texas Instruments CC256x series
383
384The Texas Instruments CC256x series is currently in its fourth iteration and provides a Classic-only (CC2560), a Dual-mode (CC2564), and a Classic + ANT (CC2567) model. A variant of the Dual-mode chipset is also integrated into TI's WiLink 8 Wifi+Bluetooth combo modules of the WL183x, WL185x, WL187x, and WL189x series. Some of the latter support ANT as well.
385
386The CC256x chipset is connected via an UART connection and supports the H4, H5 (since third iteration), and eHCILL.
387
388The latest generation `CC256xC` chipsets support multiple LE roles in parallel.
389

--- 58 unchanged lines hidden ---