HCI SPI

Browse source code on GitHub

Overview

Expose Bluetooth Controller support over SPI to another device/CPU using the Zephyr SPI HCI transport protocol (similar to BlueNRG).

Requirements

A board with SPI slave, GPIO and Bluetooth Low Energy support.

Building and Running

You then need to ensure that your devicetree defines a node for the HCI SPI slave device with compatible zephyr,bt-hci-spi-slave. This node sets an interrupt line to the host and associates the application with a SPI bus to use.

See boards/nrf51dk_nrf51822.overlay in this sample directory for an example overlay for the nRF51 DK board.

Build and flash the sample as follows, replacing <board> with your target board (e.g. nRF51 DK using the nrf51dk/nrf51822 target):

west build -b <board> samples/bluetooth/hci_spi
west flash

You will also need a separate chip acting as BT HCI SPI master. This application is compatible with the HCI SPI master driver provided by Zephyr’s Bluetooth HCI driver core; see the help associated with the CONFIG_BT_SPI configuration option for more information.

Refer to Bluetooth for general Bluetooth information, and to Providing Bluetooth to 96b_carbon for instructions specific to the 96Boards Carbon board.

See also

HCI RAW channel
Bluetooth APIs
SPI