Computing and Networks

Bluetooth USB dongle firmware error in Ubuntu 16.04 – 16.10

After having a running battle with my, what turns out, cheap Chinese CSR clone bluetooth USB adaptor (maybe more on that in another post).  I purchased a more expensive adaptor to trouble shoot some issues.  The time round I picked up a Targus brand from the local office supply store that based on the  Broadcom BCM20702a1 chip.

When booting up with the adaptor installed I noticed HCI errors in my dmesg

Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
bluetooth hci0: firmware: failed to load brcm/BCM20702A1-0a5c-21e6.hcd (-2)
bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2
Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e6.hcd not found

It would appear that the distribution I am running doesn’t have the firmware drivers for this adaptor and that this is not that unusual and not that big of an issue.  Installing firmware drivers is not that big a deal and the internet is usually your friend.

My adaptor came with windows drivers but I chose to download updated drivers from the internet that came in a nice packaged windows installer.  Turns out the pakaging was new but the needed hex file contained inside was the same version (windows driver installers tend to be huge full of different drivers for different chipsets).  After a quick search I determined that the BCM20702A1_001.002.014.1483.1669.hex file was the one I needed for my adaptor.

A nifty utility called hex2hcd will convert the hex file into the what linux can load.

$> hex2hcd BCM20702A1_001.002.014.1483.1669.hex

Then copy to the firmware directory with the correct name:

$> sudo cp ./BCM20702A1_001.002.014.1483.1669.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd

Reboot and all should be one with the universe.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.