The wireless variant of the ConnectCore 6 Plus SOM integrates the 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 6 Plus 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
)
These options are enabled as built-in on the default ConnectCore 6 Plus kernel configuration file.
Kernel driver
The Bluetooth driver is located at:
File | Description |
---|---|
UART (H4) protocol support |
Device tree bindings
There are no specific device tree bindings for the Bluetooth.
A bluetooth
node is given as a device tree placeholder for U-Boot to fill in the Bluetooth interface MAC address.
This address is then programmed into the device by the Digi Embedded Yocto bluez
init script.
Bluetooth SIG certification
Digi has qualified the Digi Embedded Yocto software as Host Subsystem on the Bluetooth SIG and the ConnectCore 6 Plus hardware platform as Controller Subsystem. This qualification was done using BlueZ version 5.41. By default, Digi Embedded Yocto-3.2 builds a more recent version of the BlueZ stack. To benefit from Digi’s Bluetooth SIG Qualified Subsystem, your Digi Embedded Yocto project must specifically build BlueZ version 5.41. This modular qualification strategy enables end products to inherit a portion of Digi’s certifications, potentially reducing validation time.
Digi also recommends you include bluez5-testtools
, which is not included by default.
To do so, add the following lines to your project’s conf/local.conf
:
PREFERRED_VERSION_bluez5 = "5.41"
IMAGE_INSTALL_append = " bluez5-testtools"
Note the required white space when appending a value to an array variable using the _append override syntax.
|
Bluetooth interfaces
Disable Bluetooth
Bluetooth is enabled by default on the ConnectCore 6 Plus variants that support it. To disable the Bluetooth interface, add the following lines to your platform device tree:
/* Disable Bluetooth */
&bluetooth {
status = "disabled";
};
&uart2 {
/* Drive BT_EN low to disable Bluetooth */
pinctrl-assert-gpios = <&gpio_extender 4 GPIO_ACTIVE_LOW>;
};
This patch:
-
disables the
bluetooth
node of the device tree. The status of this node triggers the initialization scripts that bring up the Bluetooth interface, so these won’t start when the node is disabled. -
makes use of the UART node (the UART connected to the Bluetooth chip), to drive the BT_EN line low, thus disabling the Bluetooth chip.
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). |