Bluetooth not connecting to devices even though it recognizes them

I'm runing 15.04 on a dell xps 13 bluetooth recognises devices when i try to add them but won't let me connect to them Here is the results from my terminal.

~ $ uname -a; lspci -nnk | grep -iA2 net; lsusb; dmesg | grep -i bluetooth; dmesg | grep -i firmware; lsmod | grep bluetooth

Linux aaron-XPS-13 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
02:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
    Subsystem: Dell Device [1028:0019]
    Kernel driver in use: wl
Bus 003 Device 002: ID 8087:8001 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0bda:5682 Realtek Semiconductor Corp. 
Bus 001 Device 002: ID 0a5c:216f Broadcom Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[    8.164048] Bluetooth: Core ver 2.20
[    8.164065] Bluetooth: HCI device and connection manager initialized
[    8.164069] Bluetooth: HCI socket layer initialized
[    8.164073] Bluetooth: L2CAP socket layer initialized
[    8.164079] Bluetooth: SCO socket layer initialized
[    8.353160] bluetooth hci0: Direct firmware load for brcm/BCM20702A0-0a5c-216f.hcd failed with error -2
[    8.353166] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-216f.hcd not found
[   20.289452] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   20.289455] Bluetooth: BNEP filters: protocol multicast
[   20.289459] Bluetooth: BNEP socket layer initialized
[   20.310897] Bluetooth: RFCOMM TTY layer initialized
[   20.310907] Bluetooth: RFCOMM socket layer initialized
[   20.310912] Bluetooth: RFCOMM ver 1.11
[  886.399085] Bluetooth: hci0 urb ffff8800d8c15e40 failed to resubmit (2)
[  895.471190] Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=1000 lmp_ver=06 lmp_subver=220e
[  896.113983] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=1624 lmp_ver=06 lmp_subver=220e
[    8.353160] bluetooth hci0: Direct firmware load for brcm/BCM20702A0-0a5c-216f.hcd failed with error -2
[  896.113983] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=1624 lmp_ver=06 lmp_subver=220e
bluetooth             491520  22 bnep,btusb,rfcomm
~ $ 

Solution 1:

For anyone wondering what the source of the files is in Jeremy31's answer, here's an alternative method.

Download the Windows driver from Microsoft to /tmp.

http://catalog.update.microsoft.com/v7/site/ScopedViewRedirect.aspx?updateid=87a7756f-1451-45da-ba8a-55f8aa29dfee

Unpack it using cabextract:

cabextract 20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab

Download and build hex2hcd:

git clone https://github.com/jessesung/hex2hcd.git
pushd hex2hcd
make
popd

Make the .hcd.

./hex2hcd/hex2hcd BCM20702A1_001.002.014.1443.1572.hex BCM20702A0-0a5c-216f.hcd

Move it to your firmware folder:

sudo cp BCM20702A0-0a5c-216f.hcd /lib/firmware/brcm/

And reload the module:

sudo modprobe -r btusb
sudo modprobe btusb

References:

  • https://ftbeowulf.wordpress.com/2015/06/23/dell-xps-13-9343-developer-edition-bluetooth-firmware/
  • http://tech.sybreon.com/2015/03/15/xps13-9343-ubuntu-linux/

Solution 2:

wget "https://dl.dropboxusercontent.com/s/r2pb41rhx65t9zi/BCM20702A0-0a5c-216f.hcd"
sudo cp BCM20702A0-0a5c-216f.hcd /lib/firmware/brcm/
sudo modprobe -r btusb
sudo modprobe btusb

For source of the hcd file see @Ian's answer

See if it works

For Ubuntu 15.10+ and 14.04 with kernels 4.2+ the second command should be

sudo cp BCM20702A0-0a5c-216f.hcd /lib/firmware/brcm/BCM.hcd

Solution 3:

If you are using XPS 13 9350 (2016 edition), the previous answers won't work, because you need the newest driver.

The following should make your bluetooth work properly (tested on Debian Stretch with kernel 4.6.0-1-amd64):

$ wget http://downloads.dell.com/FOLDER03272920M/1/9350_Network_Driver_XMJK7_WN32_12.0.1.720_A00.EXE
$ 7z x 9350_Network_Driver_XMJK7_WN32_12.0.1.720_A00.EXE
$ cp Win32/BCM4350C5_003.006.007.0095.1703.hex ./
$ hex2hcd BCM4350C5_003.006.007.0095.1703.hex
$ sudo mv BCM4350C5_003.006.007.0095.1703.hcd /lib/firmware/brcm/BCM-0a5c-6412.hcd

Then restart your computer and enjoy!

Source: https://wiki.archlinux.org/index.php/Dell_XPS_13_(2015)#Bluetooth