I recently bought an external bluetooth dongle to add BTLE support to my Macbook Pro 2011. I'm running Yosemite 10.10.2.

I've read different blogs and posts here, indicating how to enable the external dongle, but they don't seem to work. Following the answers to this AD question, I've tried downloading the Bluetooth Explorer found in the HardwareIOTools_Xcode_6.3.dmg package. But when I navigate to Tools->HCI Controller Selector, and choose the Broadcomm dongle and click Activate, the built-in Apple BRCM device remains active, and doesn't activate my external dongle.

enter image description here

I've also tried to update the nvram settings and rebooting:

sudo nvram bluetoothHostControllerSwitchBehavior=always

but that too doesn't have any impact.

What am I missing or doing wrong?

  • Is your Bluetooth dongle compatible Bluetooth “classic” or BTLE only? – dan Jan 25 '18 at 10:42
  • @danielAzuelos it is supposed to support bluetooth 1 & 2 as well. – Eric B. Jan 25 '18 at 11:51
  • How do you configure it to be in BT either 1 or 2? In which mode is it? – dan Jan 25 '18 at 12:19
  • @danielAzuelos Its specs say that it is BT 4.0+, compatible with BT 1.2/2.0/2.1/3.0. But I don't think there is a way to configure it to be in BT 1 or 2 specifically. – Eric B. Jan 25 '18 at 13:45
  • 1
    Then I advise you to add the origin (real make) of the 1st Bluetooth you used, and make an answer with your comment: the IOGear one fixed your problem. – dan Feb 8 '18 at 17:25

It turns out Bluetooth Explorer has an awkward UI, whether by sloppy design, implementation, or bug. The HCI Controller Selector does not show the active controller in the menu. It shows you the first item of some default menu order, even after you've picked a different item and clicked Activate. But the different controller was activated, even though it doesn't look like it—unless you pay attention to details in the drop-down menu.

It's easiest to see with pictures. Here's what the Bluetooth Explorer HCI Controller Selector looks like when I launch it:

Default state of Bluetooth controller selector

When I click on the menu I see this:

Bluetooth controller selector menu

If I click on the "Cambridge Silicon Radio" item and then click Activate, Bluetooth connectivity is lost for a moment and from the behavior of my connected keyboard and trackpad when it comes back I am certain that the Cambridge radio was indeed made the active controller. However, what the controller selector window looks like at this point is identical to the first image, as if the change was not made, even though it was.

However, if you look closely at that second image showing the pull-down menu opened up, you can see that it says "[ACTIVE]" next to the Cambridge item. That's because I had previously made it active. So there is a way to tell the activation worked; it's just not by looking at what the menu shows when it's collapsed.

So the technique you were trying to use probably worked, even though you had difficulty telling it.

I am still looking for a method to make the change permanent across reboots, but haven't found it. The suggested nvram command doesn't work for that, at least not on my macOS Mojave 10.14.6 system. I have it set to "always", but a reboot always goes back to the default, built-in Apple controller, which is a problem for my setup.

| improve this answer | |
  • Please edit your post to indicate what macOS you're running for future relevance. I was looking for a solution to make this change permanent across reboots as well. I tried sudo nvram bluetoothHostControllerSwitchBehavior=always on my Catalina system but it appeared to revert to built-in BT controller upon "reboots". However, I researched that "Changes to NVRAM variables are only saved by clean restart or shutdown" after which the NVRAM parameters persist after reboots [source: ss64.com/osx/nvram.html] This seems to have worked for me. – BartmanEH Jun 25 at 18:28
  • @BartmanEH Post edited to include OS release. After multiple restarts, both clean and forced, the parameter remains set, but still doesn't switch Bluetooth controllers. It's easy to check the current setting with just: nvram bluetoothHostControllerSwitchBehavior. On my system, having set it in the past, this returns "always". – larryy Jun 27 at 6:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .