Force OS X to use Bluetooth dongle instead of built in controller

To force the system to use USB Bluetooth dongle by default, run the following command:

sudo nvram bluetoothHostControllerSwitchBehavior=always

This will modify your boot kernel arguments.

To do opposite, use never. The change would be applied after the reboot. To return to the default, run:

sudo nvram -d bluetoothHostControllerSwitchBehavior

I just went through this using this no-name adapter on OS X 10.10: http://www.amazon.ca/dp/B00E38N7QE/ref=pe_386430_30332290_TE_3p_dp_1

The easiest way to use the USB adapter is to reboot. If you hold down the Option key while clicking on the Bluetooth menu icon, the MAC address of the adapter should be different. You can also verify in System Profiler. You'll know it's working if any existing pairings break.

I've found that a BT 4.0 adapter is working better than the built-in adapter in my 2010-era Macbook Pro. Especially with a headset, there's much better sound quality.

The on / off button in System Preferences is a little buggy. Turning off the adapter works fine, but clicking "on" turned the internal adapter back on. I had to unplug the adapter, plug it back in, and then turn Bluetooth back on.

If you want to work around this without rebooting, you can use Bluetooth Explorer from the OS X developer tools. You'll need a (free) developer account. There's a ton of useful tools to debug interference, pairing issues, and so on.

HCI controller menu item

This is now part of a package called "Hardware IO Tools for Xcode V x.x" and can be found at https://developer.apple.com/downloads/