Suggestions for Linux-friendly BLE dongle?

Posted on
  • I bought this Bluetooth dongle for a desktop computer running Ubuntu 20.04 LTS, using bluez. It works with my wireless headphones but does not get along with my Bangle.js 2. It regularly takes a dozen attempts or more to connect without giving an error, and even then it might only stay connected anywhere from a few seconds to a minute or two before erroring out and disconnecting, regardless of how close the dongle and watch are to each other. I have a laptop running the same version of Ubuntu, and its built-in Bluetooth works fine with the Bangle. Oddly, I tried this dongle on a Windows 10 system and it seemed to work fine there, too, so maybe the Linux drivers for that chipset are buggy?

    To preserve my sanity, I was thinking of trying to buy a different dongle in the hope that I get one that works better. Is there anyone here who successfully works with Bangle BLE on Ubuntu or a similar distro (like Debian or Raspberry Pi OS) who could suggest a specific dongle that seems to work well with it? Or any other suggestions for this problem?

  • Or any other suggestions for this problem?

    Can you show output of dmesg when you plug it in? Does it load any firmware file? I have a bt 5.3 dongle that by default behaves is similar way (mostly does not work) and it was old linux firmware, when I googled it I found people with same problem and solution was to copy firmware from windows driver installation to linux into /lib/firmware. After doing that it works perfectly and since then it is the best bt dongle I have.

  • mine says

    [ 9058.109616] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
    [ 9058.111717] Bluetooth: hci0: RTL: rom_version status=0 version=1
    [ 9058.111736] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
    [ 9058.112034] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_config.bin
    [ 9058.112217] Bluetooth: hci0: RTL: cfg_sz 6, total sz 28410
    [ 9058.382728] Bluetooth: hci0: RTL: fw version 0xdcc6b3a8
    

    and some Amazon reviews from your link say it is based on rtl8761bu, check this https://www.reddit.com/r/linuxhardware/comments/ynjvkx/bluetooth_53_linux_support/

    I just copied rtl8761b_mp_chip_bt40_fw_asic_rom_patch_new to /lib/firmware/rtl_bt/rtl8761bu_fw.bin as is.

  • It'd be great if you could lsusb and post up the USB IDs? It might help others find similar dongles/solutions.

    A few years ago I bought a bunch of dongles and made a list at https://www.espruino.com/Quick+Start+BLE#requirements but there are no BLE 5 dongles in that list.

    I'm still doing all my main work using a Broadcom BCM20702A0 based BT 4.2 module and it's been pretty reliable for me.

  • It'd be great if you could lsusb and post up the USB IDs?

    the reddit thread has it, I think mine is that 0bda:a729 Realtek Semiconductor Corp. Bluetooth 5.3 Radio mentioned there, will check later EDIT: yes, that's it

    I'm still doing all my main work using a Broadcom BCM20702A0 based BT 4.2 module and it's been pretty reliable for me.

    the 5.3 one I have is good because it can also do coded phy - long range of 52840, however linux/bluez support for it is not great overall, but at least scanning for extended advertising over coded phy works

  • but at least scanning for extended advertising over coded phy works

    That's very cool. Yes, I've been missing being able to do that.

  • A few years ago I bought a bunch of dongles and made a list at https://www.espruino.com/Quick+Start+BLE­#requirements but there are no BLE 5 dongles in that list.

    the reddit thread has a link to this https://medium.com/codex/bluetooth-5-on-linux-overview-of-kernel-supported-dongles-and-chipsets-c6f2b632b236

  • This is all I get when I plug in the dongle:

    [3709401.040967] usb 2-1.7: new full-speed USB device number 85 using ehci-pci
    [3709401.158174] usb 2-1.7: New USB device found, idVendor=7392, idProduct=c611, bcdDevice= 2.00
    [3709401.158180] usb 2-1.7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [3709401.158182] usb 2-1.7: Product: Edimax Bluetooth Adapter
    [3709401.158183] usb 2-1.7: Manufacturer: Realtek
    [3709401.158185] usb 2-1.7: SerialNumber: 00E04C239987
    

    No mention of any firmware loading here or in any of my system logs, so I have no idea which firmware file to target. :(

  • That's odd. The usb vid/pid is different from mine but someone here does see the firmware loading messages with your one https://forums.debian.net/viewtopic.php?t=155644

  • Strange. The forums post shows loading rtl8761bu_fw.bin, but my /lib/firmware/rtl_bt directory does not have that file. The closest filename present is rtl8761b_fw.bin.

    I found a Linux driver download on the manufacturer's website (http://www.edimax.com). This ZIP file contains a lib/firmware with a rtl8761bu_fw file (not quite the same naming scheme). Then it has lib/firmware/rtl_bt with a handful of other files in it and a lib/firmware/rtlbt with a rtl8761b_fw. This isn't very consistent with the organization of my system's /lib/firmware directory. I can't really make heads or tails of this.

  • It probably differs between linux distros, however even with no firmware present on disk you should see lines similar to those

    [ 1368.955155] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
    [ 1368.956133] Bluetooth: hci0: RTL: rom_version status=0 version=1
    [ 1368.956136] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
    [ 1368.956155] bluetooth hci0: firmware: failed to load rtl_bt/rtl8761bu_fw.bin (-2)
    

    when bluez tries to use the device. You mentioned ubuntu 20.04, that is quite old, I use 22.04 and it is directly in /lib/firmware like in the edimax zip, anyway you can try to put that file to your location.

  • Yeah, I don't get any of those “Bluetooth:” lines in my system logs at all. I looked in /var/log and in the systemd journal for bluetooth.service, and they're nowhere to be found. Absolutely no feedback on loading firmware. I tried placing the firmware files in a few of the standard locations, but it doesn't seem to improve anything.

    Yes, Ubuntu 20.04 is a bit old, but it's still supported, and upgrading in my use case is a major undertaking (and I sometimes need to use “legacy” software which is increasingly difficult to get working on newer distros). I guess I could try booting a newer distro on a spare computer sometime and see what messages or behavior I get on it.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Suggestions for Linux-friendly BLE dongle?

Posted by Avatar for tev @tev

Actions