Using unsupported Bluetooth 4.0 USB dongle with OS X

alt=

UPDATE: Looks like with OS X Mountain Lion, you don’t have to do the following hack anymore! The Broadcom dongle I describe in this article is supported on OS X Mountain Lion by default! In fact, the new kext includes support specifically for the IOGEAR GBU521 Bluetooth 4.0 Micro Adapter! Also, you might want to consider getting the IOGEAR one since the eBay one I got has a bright blue LED that’s always lit and can be pretty annoying at night.

MORE UPDATE: There’s been reports that while this guide worked in getting the drivers loaded for the external Bluetooth adapter, some was still stuck with the Apple’s built-in adapter. I’ve added some further tips at the bottom on how you can manually select which adapter to use. However, since my MacBook’s internal Bluetooth device is actually already dead, I cannot verify this at this point of writing. Please let me know if it works.

—– End of Update —–

If you find yourself wanting upgrade your Mac’s Bluetooth 2.1 support with a USB dongle that supports Bluetooth 4.0, here’s a tip for you to get it on the cheap with those Bluetooth 4.0 USB dongles you find posted on eBay.

IOGEAR GBU 521

IOGEAR GBU521 Bluetooth 4.0 Micro Adapter

Why I even explored getting a Bluetooth 4.0 USB dongle was due to the untimely demise of the onboard Bluetooth 2.1 chip on my 2010 MacBook Pro. It just went dead without any warning after about 1.5 years of me using my MBP. So I searched for a Bluetooth dongle that has Mac support. You’d be surprised that there isn’t many that officially states OS X support, especially so for a Bluetooth 4.0 dongle. So in the end, I decided to pick one that apparently used a photo of the dongle (see below) plugged into a MacBook Pro and hoped that it would work.

If you’re wondering which Bluetooth 4.0 dongle I bought, this link will bring you to the item page on eBay and it cost me US$12.98 for the dongle. And jumping ahead, it works, so you could go ahead and get the same too, especially if you decide to use the same kext file that I’ll post up in this article as a sample. Unfortunately, it’s no longer listed as of my last check.

Update: In retrospect now that I’ve been using the cheaper eBay dongle, you might want to consider getting the IOGEAR one. Why? The eBay one has a bright blue LED that’s always lit and can be pretty annoying at night. So unless being a little ‘bling-bling’ is your thing, get the IOGEAR GBU521 Bluetooth 4.0 Micro Adapter which looks a little more discreet. Also, you can sometimes get pretty good deal on Amazon and get this dongle for as low as US$13.50.

But of course any Bluetooth 4.0 USB dongle would do as long as it is using the exact same chip as the IOGEAR’s dongle, which is Broadcom’s BCM20702A0 chip. You can read more about the chip here.

Now, you’d probably guessed that the dongle didn’t work right out of the box, hence this article. When I plugged in the dongle, Bluetooth support was nonexistent. However, the USB dongle did register up in the USB Device Tree when I checked with the System Information.

What that means is that OS X does see the hardware. However, there isn’t a driver that the OS can find for the Bluetooth dongle and therefore didn’t ‘load’ it up.

The solution then is to perhaps hack the kext (kernel extension) that handles the Bluetooth devices and include support for this dongle! And since the newer Macs all have Bluetooth 4.0 support, I’m sure that the drivers included with OS X Lion (10.7.4 as I’m writing this post) would have drivers that supports it. And in my case, support for the Broadcom BCM20702A0 chip.

A quick search around the Internet reveals the exact kext to edit. Basically the one that you need to hack is /System/Library/Extensions/IOBluetoothFamily.kext.

Within that kext, BroadcomUSBBluetoothHCIController.kext, is another next that is basically the Broadcom driver.

In order to get to them, just head over the /System/Library/Extensions/  location in finder. Seek out the IOBluetoothFamily.kext and open up the package contents. Note to the newbies, a kext ‘file’ is really just a special folder that holds a collection of files that make up the kernel extension.

And before we continue, I found that the best and sure fire way is to create a copy of the IOBluetoothFamily.kext to a different location, i.e. the desktop or anywhere you like, edit it there and use the Kext Utility to ‘install’ the kext. I’ll come to the installation steps soon, but go ahead and make a copy of the kext file now.

Ok. Now you have the copy of the kext file, open up the IOBluetoothFamily.kext package, continue to navigate to /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/ and you’ll find another kext named BroadcomUSBBluetoothHCIController.kext.

Do the same again for the BroadcomUSBBluetoothHCIController.kext and open up the Contents folder. In that folder you should find the Info.plist file.

This is the file that you would need to edit to add the support for your new Bluetooth USB dongle.

But before we edit the file, let’s get some information of the Bluetooth device, specifically the product and device id, that you’d need in order to edit the plist file. You can actually get this information from the System Information utility. Just do a spotlight search for “System Information” if you don’t know where to find it.

Once open, you would need to browse to the USB device tree and look for the bluetooth dongle. Now, it may show up in various names depending on the Bluetooth USB dongle you get, but it should be easy enough to identify which is the exact device. In my case, it just showed up with the name BCM20702A0 . Selecting the item reveals the information you need which would be the Product ID and Vendor ID values.

Now the values you see for both the Product ID and Vendor ID are in hex. And if you’ve gone ahead to open up the Info.plist file, you’ll then notice that the idProduct and idVendor values are in integer. So you’ll need to convert it from hex to integer.

In my case with the BCM20702A0 chip, the Product ID value is 0x21e8. Converting 21e8 to integer gives me the value of 8680. As for the Vendor ID, 0x0a5c is 2652 in integer. If you don’t know how to convert hex to integer, just use this site here to do so. Now that you know your Product ID and Vendor ID in integer form, let’s move on to edit your plist file!

To do so, just open the Info.plist file with any text editor. As for me, I’m using TextWrangler to do so. You should see a bunch of text in the form of an XML document. Just scroll down all the way to the end till you find a key by the name of “Microsoft Bluetooth 2.0 USB Dongle”.

What you need to do is simply copy and paste a new entry using the “Microsoft Bluetooth 2.0 USB Dongle” entry and edit it with the new information you found (see the red text below). Note that for the new of the device, you can basically use any name you want. What OS X cares about is only the idProduct and idVendor keys as that’s what it uses to match and load the appropriate drivers.

 
 ....
 ....
 <key>Microsoft Bluetooth 2.0 USB Dongle</key>
     <dict>
       <key>CFBundleIdentifier</key>
        <string>com.apple.driver.BroadcomUSBBluetoothHCIController</string>
       <key>IOClass</key>
       <string>BroadcomUSBBluetoothHCIController</string>
        <key>IOProviderClass</key>
        <string>IOUSBDevice</string>
        <key>idProduct</key>
        <integer>156</integer>
        <key>idVendor</key>
        <integer>1118</integer>
        </dict>
 <key>Bluetooth 4.0 USB Dongle</key>
     <dict>
        <key>CFBundleIdentifier</key>
        <string>com.apple.driver.BroadcomUSBBluetoothHCIController</string>
        <key>IOClass</key>
        <string>BroadcomUSBBluetoothHCIController</string>
        <key>IOProviderClass</key>
        <string>IOUSBDevice</string>
        <key>idProduct</key>
        <integer>8680</integer>
        <key>idVendor</key>
        <integer>2652</integer>
     </dict>
 </dict>
 ....
 ....

If you aren’t sure about this, you can use the sample edited kext file here - IOBluetoothFamily.kext. You could use my kext file right off the download. However, I’d advice you to try editing it yourself to be familiar with the process since every OS X update is likely to ‘wipe’ off your hacked ‘kext’ and you’d need to re-do the steps again, and it’s always best to edit it from the latest kext file.

Once you have the edited kext. Next is to use the Kext Utility (download) to replace the original kext file. When you load up the Kext Utility, you’d see that it would be running some activities upon start-up. Just leave it to do whatever it’s doing until it’s done with whatever that it’s doing. Then, drag the edited kext file over into the Kext Utility and you will see it installing it onto your system. Again, it will let you know when it’s complete. 

When finish, just quit the Kext Utility and reboot your system. Once restarted, your Mac should now recognize the new Bluetooth device and you’re good to go!

But to make sure that the new dongle is the active one being use, hold on to the option key and click on the Bluetooth icon on the menu bar. If you see the version to be 4.0 then you’re ok.

Bluetooth Version

Bluetooth Version

If it’s not version 4 (assuming your internal MacBook’s Bluetooth dongle is not BT 4.0 that is), one way to change this is to use the Bluetooth Explorer tool that should be already installed on your Mac. Just follow the screenshots below since it’s pretty self explanatory.

Use Spotlight to quickly open the Bluetooth Explorer

Use Spotlight to quickly open the Bluetooth Explorer

Go to Utilities -> HCI Controller Selector

Go to Utilities -> HCI Controller Selector

Activate the Bluetooth device of your choice!

Activate the Bluetooth device of your choice!

Let me know if the Host Controller Selector works!

Please Google +1 my article if you think it was useful. Thanks!

Was this post helpful? Please donate to keep this site running. Thanks!

You may also like...

91 Responses

  1. drunknbass says:

    Hey, did the info in the system info change after you updated? or does the dongle just work now. I guess what im getting at is other than bluetooth working is there any visual indication it works? are there any infos in system info about bluetooth 4.0 support, etc?

  2. Ken Ng says:

    The thing with my problem is that the dongle does not work at all by default. I can see if detected as a USB device but that’s it. OS X does not by default recognize it as a Bluetooth device without the kext hack. Once the hack is done, the Bluetooth info in the System Information shows the Bluetooth device information and obviously it’s working now.

    Here’s the extract from my System Information on the Bluetooth device:-

    Apple Bluetooth Software Version: 4.0.5f11
    Hardware Settings:
    Address: ##-##-##-##-##-##
    Manufacturer: Broadcom
    Name: Ken’s MacBook Pro
    Firmware Version: v14 c4096
    Bluetooth Power: On
    Discoverable: No
    Vendor ID: 0xa5c
    Product ID: 0x21e8
    HCI Version: 6 (0×6)
    HCI Revision: 4096 (0×1000)
    LMP Version: 6 (0×6)
    LMP Subversion: 8718 (0x220e)
    Device Type (Major): Computer
    Device Type (Complete): Mac Portable
    Composite Class Of Device: 3801356 (0x3a010c)
    Device Class (Major): 1 (0×1)
    Device Class (Minor): 3 (0×3)
    Service Class: 464 (0x1d0)
    Services:
    Bluetooth File Transfer:
    Folder other devices can browse: ~/Public
    Requires Authentication: Yes
    State: Enabled
    Bluetooth File Exchange:
    Folder for accepted items: ~/Downloads
    Requires Authentication: No
    When other items are accepted: Ask
    When PIM items are accepted: Ask
    When receiving items: Prompt for each file
    State: Enabled
    Devices (Paired, Favorites, etc):
    Ken’s iPhone:
    Address: ##-##-##-##-##-##
    Type: Smartphone
    Firmware Version: 0×510
    Services: Wireless iAP, PAN Network Access Profile, AVRCP Device, Handsfree Gateway, Audio Source, AVRCP Device, Phonebook
    Paired: Yes
    Favorite: Yes
    Connected: No
    Manufacturer: Broadcom (0×6, 0×4103)
    Vendor ID: 0x5ac
    Product ID: 0x12a0
    EDR Supported: Yes
    eSCO Supported: Yes
    Razer Orochi:
    Address: ##-##-##-##-##-##
    Type: Mouse
    Firmware Version: 0×501
    Services: Razer Orochi
    Paired: Yes
    Favorite: No
    Connected: No
    Manufacturer: Broadcom (0×3, 0×229)
    Vendor ID: 0×1532
    Product ID: 0×14
    EDR Supported: No
    eSCO Supported: No
    Incoming Serial Ports:
    Bluetooth-PDA-Sync:
    RFCOMM Channel: 3
    Requires Authentication: No
    Outgoing Serial Ports:
    Bluetooth-Modem:
    Address:
    RFCOMM Channel: 0
    Requires Authentication: No
    KensiPhone-WirelessiAP:
    Address: ##-##-##-##-##-##
    RFCOMM Channel: 1
    Requires Authentication: No

  3. MarkB says:

    Ken, great post. Other than verifying your System Information as shown above, have you tried actually connecting to a Bluetooth 4 peripheral with this dongle after the configuration?

  4. Ken Ng says:

    If my iPhone 4S counts, then yes. Otherwise, there isn’t any many Bluetooth 4.0 devices available for me to test it with. However, the new 2012 MacBook Air is also equipped with the same BCM20702-based chipset. http://www.appleinsider.com/articles/12/06/12/teardown_of_2012_macbook_air_finds_revised_flash_memory_connector.html

    “The 2012 MacBook Air also features the same Broadcom BCM4322 Intesifi Single-Chip 802.11n Wi-Fi Transceiver, and Broadcom BCM20702 Single-Chip Bluetooth 4.0 Processor with Bluetooth Low Energy support. The stereo speaker design is also identical to models released in 2011 and 2010.”

  5. Falcon says:

    Please tell me, how to connect a bluetooth headset to bm20702a0.

  6. Ken Ng says:

    You would just connect the headset to the USB dongle as you would normally do on OS X.

  7. Falcon says:

    did not work. connects but no sound is transmitted

  8. Ken Ng says:

    Do check the Sound preference in System Preferences and see if the Output has the Bluetooth devices selected. Sometimes it’s not so no sound is transmitted to the connected Bluetooth device.

  9. I’m not even sure what is going on. the latest mountain lion 10.8.1 doesnt even have a kext at that location, the closest is
    /System/Library/Extensions/IOBluetoothFamily.kext/Contents/Plugins/BroadcomBluetoothHCIControllerUSBTransport.kext and i have edited that and added another entry under IOKitPersonalities dict

    BroadcomUSBBluetoothHCIController – IOGear BLE

    CFBundleIdentifier
    com.apple.iokit.BroadcomBluetoothHCIControllerUSBTransport
    IOClass
    BroadcomBluetoothHCIControllerUSBTransport
    IOProviderClass
    IOUSBDevice
    idProduct
    8680
    idVendor
    2652

    but it still doesn’t show this as the vendor/product in sysinfo under BLUETOOTH. Even after sudo nvram bluetoothHostControllerSwitchBehavior=”never” and reconnecting the dongle.

    Xcode reports my system is not BLE capable and i’m guessing because it’s not being utilized by my system as the bluetooth device,

  10. soonoon says:

    thanks for this…! I exactly follow the steps and all WORKS!! MILLION THANKS

  11. Ken Ng says:

    Yup, they changed the name of the kext in Mountain Lion. But you should not need to enter a new entry for idProduct 8680 and idVendor 2652 as there’s already one for it.

    BroadcomUSBBluetoothHCIController – MediaLink BT4.0 Adapter

    CFBundleIdentifier
    com.apple.iokit.BroadcomBluetoothHCIControllerUSBTransport
    IOClass
    BroadcomBluetoothHCIControllerUSBTransport
    IOProviderClass
    IOUSBDevice
    idProduct
    8680
    idVendor
    2652

  12. kallisti says:

    I can’t get this to work on Mountain Lion. I see a blue light on in the dongle, but I don’t see how to pair a device with it. I’ve tried to put two headsets into pairing mode, and my phone, but they can’t find the device. They can on a windows machine, however, once I installed the windows drivers. So I know the dongle is working, but what’s the process for connecting devices to it on a mac? Thanks in advance for any help…

  13. Ken Ng says:

    The bluelight does not necessarily mean that the device is already registered to be working on the Mac. I’m assuming you got the exact same dongle that I bought from eBay? In Mountain Lion, it should work without any tweaking on the kext.

    Did you confirm that it is indeed working by checking on the System Information utility?

  14. Noah says:

    The kext utility doesn’t load on my architecture, iMac g5 PowerPC. Is there another utility out there for non-intel, or is my computer too old to even make this hack work? I’m on osx 10.5.8

  15. Ken Ng says:

    Try this utility and see if it works for you. http://www.osx86.net/view/250-kext_helper_b7.html. It’s said to support 10.5.x.

  16. Noah says:

    Same problem with this kext utility, I get an error message “You can’t open … because it is not supported on this architecture”

    I know that my computer can’t update since its the last generation before macs went to intel chips, and this often limits what i can use/open.

    I can open an mkext tool that can create and unpack MKEXT files, but i dont think that helps me load kext files onto my computer… sorry I’m kind of pushing the limits of my computer knowledge here!

  17. JuPe says:

    I’ve got MacPro 1.1 running on 10.7.5 and I’m trying to install GBU521 and did the kext hack.
    I did it with Kext Utility…
    I can see the hack in place on the Info.plist but after reboot it’s still not recognizing the Dongle.
    Please see below.

    BCM20702A0:

    Product ID: 0x21e8
    Vendor ID: 0x0a5c (Broadcom Corp.)
    Version: 1.12
    Serial Number: 000272328D26
    Speed: Up to 12 Mb/sec
    Manufacturer: Broadcom Corp
    Location ID: 0x5d100000 / 2
    Current Available (mA): 500
    Current Required (mA): Unknown (Device has not been configured)

    Not sure how to get the dongle to work.
    Any good ideas?

    Cheers,
    JuPe

  18. JuPe says:

    Did it with Kextbeast and it worked…
    Not sure what was the difference.

  19. Ken Ng says:

    Probably some issues Kext Utility. But glad you got it working!

  20. Daniel says:

    Thanks for the info, this is exactly what I need.
    Except it doesn’t quite work for me…
    OSX 10.6.8 on a mid-2007 MacBook (version: 2,1) .
    I had to use KextBeast to get the modified kext file to load. Same iogear BT USB as mentioned above and with the same product/vendor as your screenshots and sample file. When I plug in the BT USB, the mac’s profile says it goes from Bluetooth LMP 3 to 6, which i think means it can handle BT4.0.

    However, the BT icon on the mac bar still shows 2.4.5.

    I’ve tried enabling/disabling the internal BT. I’ve tried about eight modifications to the .kext: with the additional BT4 line; with the 4.0 replacing the 2.0 line; with the 2.0 updated with the new vendor/product; with your version of the file (which doesn’t have lines about siezecontrol); and with the version of the file that was on my computer.

    So I’m stuck and hoping you have a few other ideas on what I can try before I throw in the towel.
    Thanks,
    Daniel

  21. Ken Ng says:

    I assumed that the devices would connect to the dongle instead of the internal connector, but I could be wrong. The internal Bluetooth chip on my MacBook Pro is dead so I can’t see how I can disable it. Let me test it this weekend on my wife’s MacBook Air and I’ll come back with what I’ve found.

  22. Thanks for posting your information about getting the bluetooth dongle working!! I have up and running 3 hackintosh partions, Mountain Lion, Snow Leopard and Lion on wihich i installed the firs USB Dongel, the GMYLE with the bright blue light…heres what i am getting:

    Mountain Lion 10.8.2 : No hack needed, running so far with all apple bluetooth products, mouse, keyboard and trackpad, can wake from sleep

    Lion 10.7.5 : Did the exact mod you offered here, usb dongle ist working with all apple bluetooth products BUT without the “bluetooh device can wake from sleep” option ticked(greyed out)

    Snow Leopard 10.6.8 : Now heres the problem…when installing the the kext with the same method the bluetooth symbol showing up and dongle is running…i can pair the above mentioned devices (mouse and trackpad, NOT keyboard)…but when the devices are showing as connected no pointer is moving…
    I also tried making a second kext with entry bluetooth 2.0, as i guess that the pretty old now snow leo doesn´t support bluetooth 4.0 …but that didn´t work.

    Any tips and guesses?

    Thanks again Ken!!!

  23. Ken Ng says:

    Unfortunately, I do not have a Snow Leopard machine to test. But what I might do is to take the kext that works in Lion and try loading it on SL and see if it does the trick. Of course, backup the SL’s kext first.

  24. Ken Ng says:

    Looks like my wife’s MacBook Air may not be a good candidate to test it since it’s already has the newer Bluetooth 4.0 module. The dongle works but I can’t be sure for certain which bluetooth module the device was connecting too.

    But looking at most of the comments and other articles online on this topic, it seems that the dongle will override the internal Bluetooth module when you use the dongle. So technically, it should already work. Have you tried to pair a Bluetooth 4 device with it?

  25. pacino says:

    I had the same issue – couldn’t get OS X to use an iOGear GBU521 instead of the iMac’s built-in BT chip. Turns out my issue was I’d set the “Switch Behavior” setting to “never” after following Apple’s iOS dev guidelines (I got the GBU521 so I could do some BT Low Energy dev in iOS):

    http://developer.apple.com/library/ios/#technotes/tn2295/_index.html

    Setting the behavior back to “always” now lets OS X use the GBU521 as soon as it’s plugged in:

    sudo nvram bluetoothHostControllerSwitchBehavior=”always”

    Although this now means I can do BLE dev from OS X, I can’t get it to work in the iOS Simulator – seems the iOS Sim needs to have exclusive access to the BT module which is why Apple tell you above to disable OS X’s ability to commandeer the GBU521 when it’s plugged in.

    http://developer.apple.com/library/ios/technotes/tn2295/_index.html#//apple_ref/doc/uid/DTS40012211-CH1-UNDERSTAND_SWITCH__BEHAVIOR

    Pacino.

  26. Ken Ng says:

    Awesome info. Thanks for sharing!

  27. Bilal says:

    Hi Ken,

    Thanks for an in-depth and informative post.

    As mentioned by others above, I followed the steps outlined in the post in order to use an external Bluetooth LE dongle with the iOS Simulator in XCode. I have a 13 inch retina MBP (2013, Mountain Lion 10.8.2) which has an inbuilt BLE adapter.

    After installing the IOBluetoothFamily.kext file, for some reason MBP’s in-built Bluetooth adapter has become unavailable in the top bar. Also I can no longer see the “Bluetooth” icon in the system preferences. Surprisingly though I can still use my wireless keyboard; hence the actual Bluetooth adapter seems to be functional.

    I removed the IOBluetoothFamily.kext file, but that didn’t help. I tried clearing the NVRAM etc but still the notebook’s inbuilt bluetooth adapter appears as unavailable.

    I was wondering if you knew how I could restore/reset MBP’s driver settings for the in-built bluetooth adapter, because at this stage my wireless keyboard seems to be working but I cant change/see any settings or preferences for the in-built BLE adapter.

    Bluetooth USB Host controller is listed under “USB” in the system profiller, but the actual “Bluetooth” tab/menu item shows – No information found.

    Thanks once again.

  28. Ken Ng says:

    You’ll probably need to restore the original kext file to get it as per normal again. Did you backup the original kext? If you do, just repeat the steps to ‘install’ the kext and rebooting should load the original kext again.

    But I’m wondering why you needed a BLE adapter when the new Retina MBPs built-in BT module supports BLE?

  29. David says:

    Thanks for the great post Ken. Really useful.

    Did the earlier poster ever resolve the issue of getting the adapter running under Mountain Lion?

    I’m running ML on a 2007 MacBook Pro, and although my IOGEAR GBU521 appears under the device tree (so is at least being detected), I’m not getting any LTE and the Bluetooth LMP and firmware versions are not showing as updated under System Preferences.

    I’d appreciate anyone’s thoughts or suggestions

  30. Ken Ng says:

    Looks like there’s a way to manually select the active bluetooth device using the Bluetooth Explorer utility. I’ve updated the article to include those steps. Do check it out and let me know if it works.

  31. Nathan White says:

    I have a MacBook running 10.6.8. I inserted the text from your article that was in red, used the Kext Utility you recommended and rebooted. still not seeing the 4.0 Bluetooth. The dongle does appear in the USB section of the sSystem info.

  32. Ken Ng says:

    Hi Nathan,

    It seems that there are a minority set of users who are facing the same issues as you did. I’ve recently updated my article to point out that you may need to manually activate the USB dongle instead of the built in Bluetooth chip using the Bluetooth Explorer utility. Did that work?

  33. Nathan White says:

    Ken, my computer doesn’t have Bluetooth Explorer. I tried to download it from the Mac App Store and it said that I need 10.7 or higher version of OS X.

  34. Ken Ng says:

    I wasn’t aware that. My apologies. Looks like I’ll need to do more research on this. Let me see what i can find out and i will update the article as soon as I do.

    Sorry that I’m not much of a help at this point in time.

  35. Does bluetooth AUDIO work with this? On 10.8.2?

    Thanks !

  36. Ken Ng says:

    Yes it does! When I first wrote this guide, it was on 10.8.2 and I paired it successfully with my Jabra Halo BT headset. No problem at all. Just no AptX support of course since the external dongle doesn’t have AptX codec supported.

  37. andrew says:

    Hi – just a quick note to thank you very much for this guide, it has worked a treat on my 2007 Mac Pro. Brilliant!
    Andrew

  38. Ken Ng says:

    Glad you find it useful. :)

  39. GNT says:

    If anyone can offer help in setting this up it would be greatly appreciated.
    Here is a little video of my system info: http://youtu.be/v8fkKmOW3gM

    I tried to change use UCI Controller Selector and also the info from #25 above, Pacino.
    Any advice appreciated.
    Thank you

  40. Chris Dunn says:

    I followed the steps exactly, but do not see the controller in the Host Controller Selector :( not sure what else to do.

    Nathan White, do you have developer tools installed, perhaps the bluetooth utility is a part of that…

  41. Ken Ng says:

    Could you try if this would work. Before plugging in the bluetooth dongle, disable the built in one your MacBook, then plug in the dongle, it probably would activate the bluetooth using the dongle now. Let me know if this works.

  42. Does anyone succed in getting this to work on a 10.7.5 mid 2007 mac mini? I tried all the steps above but got stuck in selecting the HCI. It just not appear on the list!

  43. JD123 says:

    Would this work with the new “Knock” app?

  44. Ken Ng says:

    It works. I just tried it myself. It’s awesome!

  45. JD123 says:

    Ken Ng, Can you give me some specs of your hardware (ie (i)mac(book) vs BT-adapter).
    Thanks :)

  46. you rock, mate.
    gratzie.

  47. ps: i kinda like the little blue light. :D

  48. Ben says:

    Hi Ken (and all), I was hoping to confirm whether or not the GBU521 works with Mac OS X 10.6.8 (after doing the kext edit)–can you (or anyone else) confirm? I’ve seen people saying both that the GBU521 does and does not work with 10.6.8, which is confusing (I’m hoping to use the GBU521 with a 2006 MacBook 1,1, which does come installed with Bluetooth, running Mac OS X 10.6.8).

  49. Ben says:

    *whoops, which does NOT come installed with Bluetooth, is what I meant to write.

  50. Ben says:

    Hi Ken (and all), I was hoping to confirm whether or not the GBU521 works with Mac OS X 10.6.8 (after doing the kext edit)–can you (or anyone else) confirm? I’ve seen people saying both that the GBU521 does and does not work with 10.6.8, which is confusing (I’m hoping to use the GBU521 with a 2006 MacBook 1,1, which does not come installed with Bluetooth, running Mac OS X 10.6.8).

  51. Ken Ng says:

    Hi Ben, I don’t personally have the GBU521, but it should work in Mac OS X 10.6.8 with the kext-edit. By default, Mac OS X 10.6.8 does not recognise the bluetooth device. The GBU521 uses the same Broadcom BCM20702A0 chip as the Bluetooth module that I bought off eBay.

  52. Ben says:

    Hi Ken–thanks so much for the speedy response! I just ordered the GBU521 (and I’ve already followed your instructions to edit the kext, so my MacBook is hopefully all ready to go). Once the adapter arrives (in a few days), I’ll post back with an update on whether it worked on my 2006 MacBook 1,1 running Mac OS X 10.6.8.

  53. Ben says:

    Oh, also, when I was editing the kext, I noticed that all the other device entries in the “Info.plist” of the “BroadcomUSBBluetoothHCIController.kext,” include this text (which was not in your kext) after “IOUSBDevice”: “IOProviderMergeProperties ClassicMustNotSeize idProduct…[etc.].” I couldn’t find any relevant hits in Google about this–do you think I should add this text to the entry for the Bluetooth 4.0 USB Dongle that I edited into the kext?

  54. Ben says:

    Oh–the text didn’t post correctly for some reason, so I’m trying again (this time, replace the square brackets with angled brackets and the forward slashes with back slashes here): “[key]IOProviderMergeProperties[\key] [dict] [key]ClassicMustNotSeize[\key] [true\] [\dict] [key]idProduct[\key]“

  55. Ken Ng says:

    No you do not need those. Let me post you what it is on my OS X 10.9.1 (Mavericks) for the GBU521 driver. (replacing the <> with [])

    [key]BroadcomUSBBluetoothHCIController – IOGear – GBU521[/key]
    [dict]
    [key]CFBundleIdentifier[/key]
    [string]com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport[/string]
    [key]IOClass[/key]
    [string]BroadcomBluetoothHostControllerUSBTransport[/string]
    [key]IOProviderClass[/key]
    [string]IOUSBDevice[/string]
    [key]idProduct[/key]
    [integer]8449[/integer]
    [key]idVendor[/key]
    [integer]2652[/integer]
    [/dict]

  56. Ben says:

    Update–so, I can’t seem to get the GBU521 adapter to fully operate. It shows up in System Profiler, just like yours does, Chris, but in the Bluetooth pane in System Preferences it says that “Bluetooth power is off. To use Bluetooth, first you must turn it on.” The Bluetooth status in the menu bar says it’s on, though, and you can still click “Set Up New Device…” in the Bluetooth pane in System Preferences, but it doesn’t find anything. I did get it to connect to my phone, and was able to transfer a photo back and forth, but I can’t seem to get it to work again. Any suggestions? I’m new to using Bluetooth–maybe I’m just not doing something simple?

  57. Ben says:

    The poster Andre, here, describes exactly what my situation is: https://discussions.apple.com/message/17681490#17681490 (except, that I can’t use Bluetooth Explorer, because it requires Mac OS X 10.7).

  58. Ben says:

    MORE UPDATE: the poster Andre, here (https://discussions.apple.com/message/17681490#17681490) described exactly what my situation was AND the solution worked!!!

  59. Salvatore says:

    I am running 10.6.8, and seem unable to use xCode because of the older software. Is there another way to “reset” the bluetooth or to select which device to use? Thanks!

  60. Ben says:

    So, the only issue I appear to be having now is that the GBU521 isn’t showing up after I shutdown the MacBook and start it back up, until I unplug it and plug it back in–anyone know anything I could try to eliminate this issue?

  61. Ken Ng says:

    Sounds like OS X is simply going back and recognising the on-board bluetooth device, and then ignoring the external USB one. I’ve yet to find a way to disable the internal bluetooth device thus far. If i do, I’ll update the post.

  62. Ben says:

    @Salvatore–did you try installing XCode from the Developer Tools on your Mac OS X 10.6 install disk? Try that–I did that and was able to run Bluetooth Explorer in the version it installed from the disk.

  63. Salvatore says:

    @Ben, Sorry for not following up. I was able to download xCode and run Bluetooth Explorer, however I can’t seem to get my Mac to select the dongle over the built-in bt. It doesn’t come up in the list under “HCI controller selector.” I’ll have to play around with it some more… Thanks!!

  64. Salvatore says:

    I think the problem could be when I look in the /system/library/extensions folder, I have two files: the “IOBluetoothFamily.kext” file but also a “IOBluetoothFamily.kext.bak” folder. I’m not sure why they are both there. Should I delete one of them?? When I open either one, I can pull up the broadcom information and see Bluetooth 4.0 listed, but they are slightly different. I’m very confused…

  65. AJ (@AJACs3) says:

    THANK YOU!!!

    I am on Mavericks on my slightly older iMac. I am using the same dongle you are. I found that:

    1. I needed to download the Bluetooth Explorer from developer.apple.com. (It is in the download called “Hardware IO Tools for Xcode.)

    2. It seems to stick across reboots!!! Alleluia!!! This makes “knocktounlock.com” work on my older iMac which is why I was going through this in the first place.

    CAUTION:
    Have a wired keyboard and mouse on hand. Switching BT adapters unpairs your BT devices from your mac, and if you only have a BT Keyboard and BT Mouse/Trackpad, you’ll be hosed. :P

  66. AJ (@AJACs3) says:

    (oops, forgot to confirm, not need to modify any config files)

  67. Ken Ng says:

    Glad you got it working!

  68. Rich says:

    I have a MacPro1,1, OS X 10.6.8 and your kext trick worked and got my IOGear GBU521 working. It recognizes my Magic Mouse but I get the notice that “the pairing was unsuccessful. This confiuration of Mac OS X could be invalid or unsupported.” What is going on and is there something I can do to get the Magic Mouse working?

    Rich

  69. Bill says:

    First off, great post. I followed all the directions and the dongle (IOGear one) is recognized and is working (paired with a Magic Mouse no problem and the Broadcom shows up in the Bluetooth hardware section on the system). The only hitch is that when I option-click on the Bluetooth icon, it still says version 2.4 (as its does in the system profiler), not version 4.0. I don’t have any 4.0 devices handy to check, since I want to make sure this fix works before I drop the money on the fitness sensors that I’m going to be using. Anyone have any thoughts about this discrepancy?

  70. Bill says:

    And for reference purposes, I am running Snow Leopard 10.6.8 on a Core Duo MacBook.

  71. Ken Ng says:

    That’s weird. I distinctively remember that OS X reports it as version 4.0 even when not connected to any Bluetooth 4.0 devices. Also, you’re not the first who’s reported this discrepancy, also with the IOGear dongle.

  72. Thank you for this information and especially for the updates. It took me more time to drive to MicroCenter than it did to get this up and running on my 2009 13″ MBP. I now have real stereo streaming to my bluetooth headphones and can use the Authy bluetooth feature for 2-factor authentication tokens.

  73. bazpaul says:

    Hi Ken – awesome post and your are so kind to help everyone.

    I have the same adaptor iogear 521 but have a really weird issue. In HCI selector when I select the Broadcom controller osx prompts for a password, then after password it just defaults back to the apple one.

    I cant select the broadcom – I have done everything else to the letter… :(

  74. Nacho says:

    Hi Ken! Many thanks for this post… But i’m still in trouble… After modifying the “info.plist” file, when i drag “IOBluetoothFamily.kext” to the kext uitlity application, it shows: “Install: “IOBluetoothFamily.kext” … Can’t copy source file.
    AppleKextExcludeList.kext not found”
    Any ideas?

  75. Tom says:

    Hi Ken,

    Any ideas why the GBU521 has a product code of 8449 in the mavericks driver? I have a GBU521 and under system profiler it still shows as 21e8 (8680 integer) and as such isn’t seen as “IOGear – GBU521″

  76. Peter says:

    great post, thanx!

  77. Tom, don’t worry about it if it’s working :D

    Oh, and if anyone is getting floods of kIOUSBHighSpeedSplitError messages in Console, take the dongle out of your USB hub and plug it directly into the machine. Fixed everything for me.

  78. bullgod says:

    This worked great on my Mid 2011 iMac running Lion. Now I’m finally able to pair with my home theater. The only problem is that swipes are no longer recognized by my Magic Mouse. When I look at the list of bluetooth devices, my mouse and keyboard appear to not be connected (even though I am able to use them).

    Using BT Explorer, I was able to activate the built-in radio and restored full function to my mouse. They also now showed up as connected.

    Is it possible to have both radios active and associate the built-in with my keyboard/mouse and the dongle with my home theater?

  79. bullgod says:

    Follow-up to my post the other day. I tried using one of the 3 “reset” buttons in Bluetooth Explorer and now I’m stuck in a mode where I’m going through prompts selecting a language, keyboard, network connection, etc. I don’t mind this so much except when it comes to the part about user info. I’m afraid I don’t know/recall how this was done the first time around and I’m concerned if I do it wrong, I won’t be able to get back to the default desktop the way it was. I already had a bootcamp partition set up and I can see that my data is still there.

    I just want to abort this “reset” process so that I can try another route. Maybe like what is described here:

    https://discussions.apple.com/message/13263724

  80. David says:

    I followed AJACs3 advice on the Xcode download for my new Mavericks Hackintosh….works like a charm, many thanks to all.

  81. Baconbitz says:

    bzapaul, I came here because of this issue. I don’t know what to do. It doesn’t work. I checked and it says 4.2, which is weird since it’s still on the built Bluetooth adapter.

  82. rabahiff says:

    I may be totally alone here, but…I can’t get this to work on my Mac Pro 2,1 with 10.7.5. I have put hours into following the steps really to the letter, editing the plist.info in IOBluetoothFamily.kext, calculating the hex conversion, using Kext Utility, Kext Helper (could’t find where KextBeast was installed) but my Belkin 4.0 BT adapter is not recognized as a BT device, but visible in the USB tree in system preferences (and in USB Prober). Even Bluetooth Explorer can’t recognize it as a BT device and thus it cannot reset it either. Please, if anyone has a tip I would be grateful.

  83. rabahiff says:

    I followed the instructions to the letter and tried doing it with all of the three kext installers, but my Mac Pro 2,1 8-core w 10.7.5 cannot see that the connected device is a BT dongle, only that it is connected via USB (in USB Probe and System info). No luck with BT Explorer either – it just can’t be seen as a BT device.

    I would be extremely grateful for any tips that anyone may provide.

  84. Sascha Reichert says:

    Will this work on a G5 (Late 2005) too?

  85. Ken Ng says:

    It should. I don’t see why not. Which version of OS X are you using now?

  86. Michael Horton says:

    Thank you for a great post – I have a 2011 27″ iMac, have put am iogear 521 on it.
    Used BT Explorer to use the Broadcom BT. All OK
    iMac will pair with Bose BT Speaker now trouble.
    Not with Apple BT Keyboard or Apple BT Trackpad
    The BT Explorer Event Log vomits all sorts of errors, but here are the first few lines:

    Jun 24 23:51:52 Michaels-iMac.local System Preferences[444]: [BluetoothHIDDevice][initWithHIDDevice] Unable to get Object ID from IORegistry
    Jun 24 23:51:52 Michaels-iMac kernel[0]: [AppleMultitouchDevice::willTerminate] entered
    Jun 24 23:51:52 Michaels-iMac kernel[0]: [AppleMultitouchDevice::stop] entered
    Jun 24 23:51:52 Michaels-iMac kernel[0]: [0xffffff8074342a00][free]()
    Jun 24 23:51:52 Michaels-iMac kernel[0]: [0xffffff8074314300][free]()
    Jun 24 23:51:52 Michaels-iMac kernel[0]: [0xffffff8074248800][free]()
    Jun 24 23:51:52 Michaels-iMac.local loginwindow[40]: Preferred Localizations total: 1 contents (
    English
    )
    Jun 24 23:51:52 Michaels-iMac.local System Preferences[444]: An instance 0x6000000139b0 of class AVPlayer was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here’s the current observation info:
    (
    <NSKeyValueObservance 0x6180000da400: Observer: 0x6000000f3700, Key path: status, Options: Context: 0x108adf0e8, Property: 0x61000005af40>
    I am running the latest version of Mavericks with all updates completed
    Any ideas?
    Thanks

  87. Bo De says:

    According Sascha Reichert question:
    The latest system that can run on an PowerMac G5 is Leopard. Is it really possible that it can use Bluetooth 4.0 ?

    I am on Lion, I used your instructions and installed Belkin Mini Bluetooth v4.0 Adapter, it works great. And it disables the internal adapter when in use.
    But Bluetooth Explorer (version 2.0) crashes when I run it. (It works when i remove the adapter and use the internal one).

  88. Ken Ng says:

    Yes. It seems that the Apple devices are reluctant to connect to non-Apple bluetooth chips. Not sure why.

  89. David says:

    running 10.6.8 all looked good until the re boot. i don’t seem to be able to get the Bluetooth explorer to be located. how else can i find it please. show 2.4.5f3 (v14 c4096)

  90. Bo De says:

    Now I have installed my Bluetooth 4.0 in Snow Leopard too, works great… so far.
    But, just as with Lion, Bluetooth Explorer crashes :(

    Here is part of error- message i get:

    Process: Bluetooth Explorer [257]
    Path: /Developer/Applications/Utilities/Bluetooth/Bluetooth Explorer.app/Contents/MacOS/Bluetooth Explorer
    Identifier: com.apple.BluetoothExplorer
    Version: 2.0 (2.0f20)
    Build Info: IOBluetoothFamily-20000320~11
    Code Type: X86 (Native)
    Parent Process: launchd [199]
    …….
    Exception Type: EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0×0000000000000002, 0×0000000000000000
    Crashed Thread: 0 Dispatch queue: com.apple.main-thread

    Dyld Error Message:
    Symbol not found: _IOBluetoothLocalDeviceReadExtendedInquiryResponse
    Referenced from: /Developer/Applications/Utilities/Bluetooth/Bluetooth Explorer.app/Contents/MacOS/Bluetooth Explorer
    Expected in: /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth

    Everything else works… but is it safe to continue using the Dongle?
    Strange no one else seems to get this problem

  91. Michael Horton says:

    You have the same BT USB device – can you get Apple KB and trackpad to work with it?

Let me know what you think...

%d bloggers like this: