Table of Contents

Bluetooth

See bluetooth for Linux Bluetooth services and development.

There are two standards in use known as BT classic and BT low energy.

Anything other than BLE is considered to be legacy now.

HCI / LMPVersion
0 1.0b
1 1.1
2 1.2
3 2.0+EDR
4 2.1+EDR
5 3.0+HS
6 4.0
7 4.1
8 4.2
9 5.0
10 5.1
11 5.2
12 5.3

BT 3.0+HS utilises WiFi. BT 4.0 onward is BLE, anything prior is BDR/EDR.

RPi

The Raspberry Pi3/4 have built in BT BLE 5.0 but it can be awkward to setup the UART configuration. UART can be /dev/ttyS0 or /dev/ttyAMA0 depending on how you configure it in /boot/config.txt

If the device needs to be attached to a specific the UART it can be done like this.

btattach -B /dev/ttyAMA0 -P bcm -S 3000000

Alternatively, the kernel can attach with the following entry in /boot/config.txt on both the Pi3 and Pi4 (reboot to take effect).

dtparam=krnbt=on

Pi400

Raspberry Pi 400 Rev 1.0

hci0:   Type: Primary  Bus: UART
        BD Address: DC:A6:32:DC:5A:E8  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING
        RX bytes:6038 acl:0 sco:0 events:400 errors:0
        TX bytes:52632 acl:0 sco:0 commands:356 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: 'BlueZ 5.55'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 5.0 (0x9)  Revision: 0x36
        LMP Version: 5.0 (0x9)  Subversion: 0x6606
        Manufacturer: Broadcom Corporation (15)

Pi3

Raspberry Pi 3 Model B Plus Rev 1.3

hci0:   Type: Primary  Bus: UART
        BD Address: 43:45:C0:00:1F:AC  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING
        RX bytes:4726 acl:0 sco:0 events:398 errors:0
        TX bytes:60451 acl:0 sco:0 commands:398 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: 'BlueZ 5.50'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 5.0 (0x9)  Revision: 0x156
        LMP Version: 5.0 (0x9)  Subversion: 0x6119
        Manufacturer: Cypress Semiconductor Corporation (305)

Pi4

Raspberry Pi 4 Model B Rev 1.1

hci0:   Type: Primary  Bus: UART
        BD Address: DC:A6:32:03:03:0E  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING
        RX bytes:3680 acl:0 sco:0 events:385 errors:0
        TX bytes:66436 acl:0 sco:0 commands:385 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: 'BlueZ 5.55'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 5.0 (0x9)  Revision: 0x17e
        LMP Version: 5.0 (0x9)  Subversion: 0x6119
        Manufacturer: Cypress Semiconductor (305)

USB

Here is a list of legacy BT USB adapters all of which are either BT 2.0 or 1.2.

BARROT

CSR clones which are very cheap and found in pound stores.

BT 2.0

usb 2-1: new full-speed USB device number 44 using ohci-platform
usb 2-1: device descriptor read/all, error -62
usb 2-1: new full-speed USB device number 45 using ohci-platform
usb 2-1: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice= 1.34
usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Bluetooth: hci0: CSR: Setting up dongle with HCI ver=3 rev=0c5c; LMP ver=3 subver=0c5c; manufacturer=10
Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...
Bluetooth: hci0: CSR: Couldn't suspend the device for our Barrot 8041a02 receive-issue workaround
Bluetooth: hci0: HCI Delete Stored Link Key command is advertised, but not supported.
Bluetooth: hci0: HCI Read Default Erroneous Data Reporting command is advertised, but not supported.
Bluetooth: hci0: HCI Set Event Filter command not supported.

hci0:   Type: Primary  Bus: USB
        BD Address: 00:15:83:0C:BF:EB  ACL MTU: 339:8  SCO MTU: 128:2
        UP RUNNING
        RX bytes:966 acl:0 sco:0 events:41 errors:0
        TX bytes:913 acl:0 sco:0 commands:41 errors:0
        Features: 0xff 0x3e 0x85 0x30 0x18 0x18 0x00 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF
        Link mode: PERIPHERAL ACCEPT
        Name: 'Pi6'
        Class: 0x000104
        Service Classes: Unspecified
        Device Class: Computer, Desktop workstation
        HCI Version: 2.0 (0x3)  Revision: 0xc5c
        LMP Version: 2.0 (0x3)  Subversion: 0xc5c
        Manufacturer: Cambridge Silicon Radio (10)

Silicon Wave

A very old USB adapter.

BT 1.2

usb 2-1: new full-speed USB device number 46 using ohci-platform
usb 2-1: New USB device found, idVendor=0c10, idProduct=0000, bcdDevice=20.05
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1: Product: Bluetooth Device
usb 2-1: Manufacturer: Bluetooth Device
usb 2-1: SerialNumber: D9BF16940A00
Bluetooth: hci0: HCI Read Local Supported Commands not supported
Bluetooth: MGMT ver 1.22

hci0:   Type: Primary  Bus: USB
        BD Address: 00:0A:94:16:BF:D9  ACL MTU: 120:20  SCO MTU: 50:0
        UP RUNNING
        RX bytes:399 acl:0 sco:0 events:17 errors:0
        TX bytes:563 acl:0 sco:0 commands:17 errors:0
        Features: 0xff 0xff 0x8d 0x78 0x18 0x18 0x00 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy:
        Link mode: PERIPHERAL ACCEPT
        Name: 'Pi6'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 1.2 (0x2)  Revision: 0x0
        LMP Version: 1.2 (0x2)  Subversion: 0x8a9
        Manufacturer: Silicon Wave (11)

Broadcom

BT 2.0

usb 2-1: new full-speed USB device number 47 using ohci-platform
usb 2-1: New USB device found, idVendor=050d, idProduct=0012, bcdDevice= 0.00
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: BCM92045DG Non-UHE
usb 2-1: Manufacturer: Broadcom Corp
Bluetooth: MGMT ver 1.22

hci0:   Type: Primary  Bus: USB
        BD Address: 00:0A:3A:6D:86:E1  ACL MTU: 1017:8  SCO MTU: 64:8
        UP RUNNING
        RX bytes:492 acl:0 sco:0 events:21 errors:0
        TX bytes:574 acl:0 sco:0 commands:21 errors:0
        Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: PERIPHERAL ACCEPT
        Name: 'Pi6'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 2.0 (0x3)  Revision: 0x2000
        LMP Version: 2.0 (0x3)  Subversion: 0x4127
        Manufacturer: Broadcom Corporation (15)

BT 2.0

usb 2-1: new full-speed USB device number 48 using ohci-platform
usb 2-1: New USB device found, idVendor=0a5c, idProduct=2121, bcdDevice= 1.00
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: Bluetooth Dongle V2.0+EDR
usb 2-1: Manufacturer: Broadcom Corp
Bluetooth: MGMT ver 1.22

hci0:   Type: Primary  Bus: USB
        BD Address: 00:19:86:00:01:B6  ACL MTU: 1017:8  SCO MTU: 64:0
        UP RUNNING
        RX bytes:500 acl:0 sco:0 events:22 errors:0
        TX bytes:584 acl:0 sco:0 commands:22 errors:0
        Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: PERIPHERAL ACCEPT
        Name: 'Pi6'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 2.0 (0x3)  Revision: 0x411a
        LMP Version: 2.0 (0x3)  Subversion: 0x430e
        Manufacturer: Broadcom Corporation (15)