41

I'm using a Magic Mouse with my MacBook Pro and Mountain Lion. The cursor sometimes start to lag. I figured, the reason for this could be the distance between my Mac and the mouse (about 1.5 meters / 5 foot).

I bought an external USB Bluetooth dongle I want to plug into my monitor on my desk, so the mouse is closer to the controller. However, I can't figure out how to make OS X use the external dongle instead of the built in controller.

When I go into System Prefs > Bluetooth and hold the Option key to display the reception, I see that it is the strongest when it's next to my Mac and not when it's next to the dongle. So what can I do to change that? Thanks!

DrummerB
  • 823
  • What is the model of your USB Bluetooth dongle? Does it come with a driver CD? – jaume Jun 20 '13 at 07:11
  • It's a Hama stick, without a CD. I tried turning off Bluetooth in the System Prefs, then plug in the stick, then reactivate Bluetooth and it worked. I had to reconfigure the mouse (and keyboard). But when I restart it seems to use the built-in controller again. – DrummerB Jun 20 '13 at 11:03
  • Is your problem fixed? If yes, please mark the right answers, else please add info. to let others fix it. – dan Jan 31 '18 at 10:44
  • As of macOS 10.13.6 (probably earlier versions too) all that seems to be necessary is to plug the dongle in and the Mac automatically switches to it (as confirmed by Option clicking on the Bluetooth icon in the menubar) – Perry Nov 05 '18 at 00:11

5 Answers5

34

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
kenorb
  • 12,695
  • 1
    While having a GUI, such as with Bluetooth Explorer, is nice, this is the only solution that works across reboots, which is something the OP probably wanted, and I certainly do. Thanks. – larryy Apr 17 '19 at 02:53
  • 3
    Thanks for this! It looks like macOS Catalina changes the default for this flag to be "always" instead of "never". As such, I was no longer able to map Bluetooth adapters to my virtual machines with Parallels or VMWare. Setting this to "never" resolved that problem. – JacobJ Oct 25 '19 at 20:09
17

Edit: This no longer appears to work as of at least macOS 14 and Apple Silicon. I believe Bluetooth Explorer worked (if you already had it) for at least some functionality on macOS 13 on Intel. On my current M2 system, not a single bit of Bluetooth Explorer works correctly, so if you have it you can probably trash it.

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/

  • Now available from https://developer.apple.com/download/more/ at http://adcdownload.apple.com/Developer_Tools/Hardware_IO_Tools_for_Xcode_7.3/Hardware_IO_Tools_for_Xcode_7.3.dmg – jorisw Sep 23 '16 at 16:28
  • 1
    Just adding to @user216942 answer, since Xcode 8 the Bluetooth Explorer is under the package named "Additional Tools for Xcode" – Felipe Plets Nov 01 '16 at 22:12
  • @FelipePlets there is no 'Bluetooth Explorer' in "Additional Tools for Xcode" package – thanhbinh84 Apr 05 '21 at 08:02
  • 3
    @thanhbinh84 "Bluetooth Explorer" was removed from "Additional Tools for Xcode" since Xcode 12. – Felipe Plets Apr 05 '21 at 13:04
  • @FelipePlets what could we do with 'bluetooth explorer'? when I select HCI Controller selector, there is only 1 device, I have to plug out and in to active external bluetooth adapter. Go to the tool again, still 1 device. I have to plug out/in to active every time computer reboot. 'sudo nvram bluetoothHostControllerSwitchBehavior=always' doesn't help. – thanhbinh84 Apr 06 '21 at 08:35
  • @thanhbinh84 sorry it's been a while I don't work with Bluetooth development so I don't know how to make it work nowadays. – Felipe Plets Apr 06 '21 at 17:08
  • The Bluetooth Explorer part of this answer should be removed, since it makes no sense nowadays - that tool is gone, as mentioned, at least since 2021. – igorsantos07 Mar 29 '24 at 15:09
8

I've often had the exact same problem! I've found that the following method works consistently to switch to the external adapter. Starting with the external bluetooth dongle unplugged:

  1. Turn off Bluetooth
  2. Wait about three seconds
  3. Plug in dongle
  4. Again, wait about three seconds
  5. Turn on Bluetooth

This works every time for me. No reboots or additional software required!


Additionally, there's a much quicker way to see which bluetooth adapter your mac is currently using. With your external Bluetooth adapter unplugged:

  1. If there's no Bluetooth icon in your menu bar, go to system prefs -> Bluetooth and check "Show Bluetooth in menu bar"
  2. With the external dongle unplugged, option+click on the Bluetooth icon in your menu bar
  3. Note the sequence of letters and numbers after "Address:". This is the name of your computer's internal Bluetooth adapter. (I usually just pay attention to the last two characters)

Now, try to switch to your external adapter, and repeat the above steps. If the address changes, your computer is definitely using the external adapter.

Wowfunhappy
  • 7,383
2

Looked in here: /Library/Preferences/SystemConfiguration. There i found a bluetooth plist file. I trashed it, rebooted, and then my USB dongle was finally recognized. I did not need to reset any SMC, NVRAM.

jorisw
  • 219
Jacques
  • 19
-5

You shouldn't have that much of a reception issue from 1.5 meters. Even with some interference between the mini and your mouse, BT should be fine so I might be suspect of something else causing the issue rather than the Mac Mini BT card. But yeah, go into System Preferences > Bluetooth and turn it off.

Andrew U.
  • 1,793
  • 1
    I understand you are trying to help, but this is not an answer to the question. We should really try and follow the intended purposes for each action – Y. Gherbi Mar 11 '23 at 23:49