The Khadas VIM(1) SBC uses an AMPAK AP6212 module with device ID 0x2209; resulting in BCM43430A1 firmware being loaded (as per current code) instead of BCM43438A1 which is needed for the BT module to work. The following patch is required: --- a/drivers/bluetooth/btbcm.c 2018-07-09 00:34:02.000000000 +0100 +++ b/drivers/bluetooth/btbcm.c 2018-07-12 11:38:12.323462430 +0100 @@ -326,7 +326,7 @@ static const struct bcm_subver_table bcm { 0x4406, "BCM4324B3" }, /* 002.004.006 */ { 0x610c, "BCM4354" }, /* 003.001.012 */ { 0x2122, "BCM4343A0" }, /* 001.001.034 */ - { 0x2209, "BCM43430A1" }, /* 001.002.009 */ + { 0x2209, "BCM43438A1" }, /* 001.002.009 */ { 0x6119, "BCM4345C0" }, /* 003.001.025 */ { 0x230f, "BCM4356A2" }, /* 001.003.015 */ { } Is BCM43438A1 simply a newer version of firmware that could be used by all devices (and the above patch can be submitted to effect the change) .. or is something more complicated required? BCM43438A1 firmware: (https://github.com/chewitt/brcmfmac_sdio-firmware-aml) [ 9.447310] Bluetooth: hci0: BCM: chip id 94 [ 9.449226] Bluetooth: hci0: BCM: features 0x2e [ 9.471969] Bluetooth: hci0: BCM43430A1 [ 9.471983] Bluetooth: hci0: BCM43438A1 (001.002.009) build 0000 [ 12.946499] Bluetooth: hci0: BCM43438A1 (001.002.009) build 0106 hci0: Type: Primary Bus: UART BD Address: CC:B8:A8:B5:9F:87 ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:2265 acl:0 sco:0 events:216 errors:0 TX bytes:36326 acl:0 sco:0 commands:214 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: SLAVE ACCEPT Name: 'LibreELEC' Class: 0x0c0000 Service Classes: Rendering, Capturing Device Class: Miscellaneous, HCI Version: 4.0 (0x6) Revision: 0x6a LMP Version: 4.0 (0x6) Subversion: 0x2209 Manufacturer: Broadcom Corporation (15) Christian