The wireless variant of the ConnectCore 8M Nano SOM integrates a Qualcomm QCA6564 wireless chipset with the following features:

  • Bluetooth 5.0, ANT+, backwards compatible with Bluetooth 4.2, 4.1, 4.0, 3.x, 2.x, and 1.0

  • Bluetooth and WLAN coexistence

Digi Embedded Yocto defines the dey-bluetooth feature that builds the bluez5 package for working with the Bluetooth interface. This package installs all the required libraries and tools to use Bluetooth.

Digi Embedded Yocto supports the core specification 5.0 (GAP, L2CAP, RFCOMM, SDP, GATT), including Classic Bluetooth and Bluetooth Smart (Low Energy).  The Linux Bluez stack supports additional Bluetooth Classic and Low Energy profiles that are not specifically validated. See the Bluez documentation for details.

If you own a Bluetooth-capable ConnectCore 8M Nano but you don’t need to use Bluetooth, see Disable Bluetooth for instructions on disabling the interface.

Kernel configuration

The Bluetooth interface is managed by the following kernel configuration options:

  • HCI UART driver (CONFIG_BT_HCIUART)

  • UART (H4) protocol support (CONFIG_BT_HCIUART_H4)

  • Digi Bluetooth support (CONFIG_BT_DIGI)

With the exception of the Digi Bluetooth support that is built as a module to allow you to load/unload it in runtime, these options are enabled as built-in on the default ConnectCore 8M Nano kernel configuration file.

Kernel driver

The Bluetooth driver is located at:

File Description

drivers/bluetooth/hci_h4.c

UART (H4) protocol support

drivers/bluetooth/btdigi.c

Digi Bluetooth support

Device tree bindings

The Digi-supported Bluetooth device tree bindings are documented at Documentation/devicetree/bindings/net/btdigi.txt. U-Boot fills-in the Bluetooth MAC address inside the bluetooth node of the device tree. This MAC address is then programmed into the Bluetooth chip by the Digi Embedded Yocto bluez init script.

ConnectCore 8M Nano device tree
bluetooth {
	/* U-Boot will fill in the MAC address here */
	compatible = "digi,bluetooth-cc8x";
	vin-supply = <&reg_rf_bt_en>;
	status = "okay";
};

Disable Bluetooth

Bluetooth is enabled by default on the ConnectCore 8M Nano variants that support it, by means of a device tree overlay. The Digi Embedded Yocto boot script automatically detects if the variant has a Bluetooth chip and adds the Bluetooth overlay to the U-Boot environment overlays variable.

To disable Bluetooth, set the following environment variable in U-Boot:

=> setenv disable_bt 1
=> saveenv

This prevents the boot script from adding the Bluetooth overlay, which results in the system disabling the Bluetooth interface.

To revert this change, remove the variable and the boot script will load the wireless overlay again.

With Bluetooth disabled, you may use that UART for other purposes, or its lines as GPIOs (this requires disabling the UART and redefining the IOMUX of the pads).