Objective
I wanted to set up my new USB-BT400 adapter working with Linux Mint.
Motivation
As a consequence of the actual corona-situation I had to use my headset in order to work from home. Since now, I only had a cheap wired one that I rarely used. Recently, my old headset somehow disassembled itself. Therefore, I thought, maybe it's better to buy a good one instead of a crappy cheap one, because I have to use it at a daily bases from now on. The headset should be of good quality and also fit well regarding UX, which means "no cables" anymore. My decision felt on the Sony XB900N. I also wanted to be able to use it not only with my laptop, but also with my desktop computer. Unfortunately, I have no bluetooth adapter assembled on it's mainboard. Therefore I decided to buy a bluetooth adapter, as well. My decision here, felt on the USB-BT400. The adapter and the headset worked well on Windows. I even could use the headset with my laptop out-of-the-box. Unfortunatelly, I recognized, when I wanted to use the bluetooth adapter in combination with the bluetooth headset on my desktop computer running my favorite OS Linux Mint Ulyana, the speakers of the headset work well, but the microphone was not recognized at all. Time to fix this!
Prerequisites
- Linux Mint 20.0 Ulyana - Cinnamon (64 Bit)
- USB-BT400
- Any bluetooth headset with microphone (e.g. Sony XB900N)
Solution
Test if all works
First plug-in the bluetooth adapter into a free USB slot. Turn bluetooth on. Open the bluetooth device manager (e.g. default or blueman) and try find your bluetooth headset. Set it up, try to pair it and connect. If everything works fine, Good! Otherwise...
Check what the problem is
Open a terminal and type the following command:
$> sudo dmesg | egrep -i 'blue|firm'
you'll see some output similar to this:
[ 0.196061] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 1.011797] usb 3-6: Product: BCM920702 Bluetooth 4.0
[ 4.962537] Bluetooth: Core ver 2.22
[ 4.962552] Bluetooth: HCI device and connection manager initialized
...
[ 5.169217] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1346
[ 5.172387] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
[ 5.172390] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found
[ 1.011797] usb 3-6: Product: BCM920702 Bluetooth 4.0
[ 4.962537] Bluetooth: Core ver 2.22
[ 4.962552] Bluetooth: HCI device and connection manager initialized
...
[ 5.169217] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1346
[ 5.172387] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
[ 5.172390] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found
Get the missing firmware and install it.
Navigate to USB-BT400 firmware and download the correct firmware for your device mentioned from the error message above, mine is
BCM20702A1-0b05-17cb.hcd
$> cd /lib/firmware/brcm/
$> wget https://github.com/winterheart/broadcom-bt-firmware/
blob/master/brcm/BCM20702A1-0b05-17cb.hcd
&& sudo mv BCM20702A1-0b05-17cb.hcd /lib/firmware/brcm/
$> wget https://github.com/winterheart/broadcom-bt-firmware/
blob/master/brcm/BCM20702A1-0b05-17cb.hcd
&& sudo mv BCM20702A1-0b05-17cb.hcd /lib/firmware/brcm/
you'll see some output similar to this:
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘BCM20702A1-0b05-17cb.hcd’
BCM20702A1-0b05-17cb.hcd [ <=> ] 80,47K --.-KB/s in 0,03s
2020-10-05 19:23:04 (2,26 MB/s) - ‘BCM20702A1-0b05-17cb.hcd’ saved [82403]
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘BCM20702A1-0b05-17cb.hcd’
BCM20702A1-0b05-17cb.hcd [ <=> ] 80,47K --.-KB/s in 0,03s
2020-10-05 19:23:04 (2,26 MB/s) - ‘BCM20702A1-0b05-17cb.hcd’ saved [82403]
Verify that all is fine now
Reboot, and check again.
$> sudo dmesg | egrep -i 'blue|firm'
you'll see some output similar to this:
[ 0.196061] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 1.011797] usb 3-6: Product: BCM920702 Bluetooth 4.0
[ 4.962537] Bluetooth: Core ver 2.22
[ 4.962552] Bluetooth: HCI device and connection manager initialized
...
[ 5.979445] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1467
[ 5.995451] Bluetooth: hci0: Broadcom Bluetooth Device
[ 1.011797] usb 3-6: Product: BCM920702 Bluetooth 4.0
[ 4.962537] Bluetooth: Core ver 2.22
[ 4.962552] Bluetooth: HCI device and connection manager initialized
...
[ 5.979445] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1467
[ 5.995451] Bluetooth: hci0: Broadcom Bluetooth Device
Open the bluetooth device manager (e.g. default or blueman) and try find your bluetooth headset. Set it up, try to pair it and connect. Navigate with your browser to a page to test your microphone online. Done!