Contribute
Register

How-To Bluetooth 5.0 USB Dongle [guide]

Status
Not open for further replies.
@OSX790 Thank you for the link, I was not aware of this information.

Per Dortania's Monterey notes, it looks like I need to:
  • add BrcmPatchRAM3.kext
  • add BrcmFirmwareData.kext
  • add BlueZToolFixup


Since I am keeping Catalina as my daily driver, I have a test-install of Monterey on an external drive -- I assume I also need to set the Min/MaxKernel fields?

@trs96 Thank you for the link and confirming BrcmPatchRAM requirement.

From what I gather, I probably should be using BrcmBluetoothInjector.kext up until Monterey?

Thanks!
I am sorry cannot help with the question on Min/max as I am still learning. Hopefully someone can confirm.
 
The UEFI > APFS > MinDate and MinVersion entries need to be set to the oldest version of macOS you are using.

If you were running Big Sur and Monterey that would be both set as '0'.

As you are running Catalina they need to be set as shown in this screenshot:

Screenshot 2022-02-07 at 13.44.58.png
 
https://dongle.hideez.com/how-to-use-hideez-bluetooth-dongle-on-macos Didn't know there was an install page for MacOS for HIDEEZ. It says "Note! The connection may be unstable on macOS Monterey" interesting! This is why I am staying on Big Sur for now, because of the changes to the Bluetooth stack on Monterey. But one day I'd like to upgrade to Monterey.
 
@theSov
Hi
Any further progress on your testing?

Thank you
 
Hello and thank you for the reminder @OSX790.

I've been meaning to post an update, but wanted to have something more concrete and substantial to report.

To note, a couple of things have changed on my end:
I wound up reformatting the Hack's SSD in order to address an empty inaccessible/un-deletable folder structure in Trash, which had been a nuisance for the past few months. I will replace the drive in the near future, but for now subsequent testing didn't detect any serious errors or anomalies so I re-used it.

Any prior attempts to upgrade from Catalina had failed (the reason I skipped Big Sur), however, during the clean-install process, I elected to install Monterey and then restore data from Time Machine. The Monterey installation succeeded without major issues on the freshly formatted disk, and restore process went smoother than I expected. I suspect whatever disk issues had been causing the un-deletable Trash item, had also hindered prior upgrade attempts.

After working out some initial application incompatibilities, the system seems to be performing better, faster, and more reliably now under Monterey -- although system boot takes significantly longer.

With regard to testing, I had ordered the Hideez dongle from eBay, but received one that had previously been opened. Here are 29 reasons why I didn't touch it other than to return it, and unable to do any testing with that dongle.

Initially Monterey's bluetooth support was broken and I needed to revert to a non-BT keyboard and mouse in order to add additional bluetooth kexts (BrcmPatchRAM3, BrcmFirmwareData, BrcmBluetoothInjector, BlueToolFixup). After adding kexts and getting BT running, bluetooth was very flaky and unstable until I enabled ExtendBTFeatureFlag. Around this time was when I discovered that the rear USB ports were non-functional.

The BT400 is performing well, aside from having had to re-pair my devices initially. Airdrop, Handoff, etc are not working but I do not rely on them so it's not much of an issue for me. Every so often bluetooth becomes unstable (pointer lag), but disabling and re-enabling bluetooth fixes the issue.

I wrote a script that uses blueutil to reset the BT stack:
Note: script needs to be run with a preceding .

i.e.: . ./reset_bluetooth

Code:
#!/bin/bash

clear
echo "*** Resetting Bluetooth ***"
echo
sleep 1

echo "Initial Status....: $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "  Disabled"; fi)"

sleep 2

echo "- Disabling.......:`blueutil -p 0` $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 2

echo "- Enabling........:`blueutil -p 1` $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 2

echo "Final Status......: $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 1

echo
if [[ `blueutil -p` -eq 1 ]] ; then; echo "Done! Bluetooth successfully reset."; else; echo "*** ERROR Unable to re-enable Bluetooth"; fi
echo

In large part, what is holding me back now, is the need to perform USB port-mapping. Since none of the rear USB3 ports are working, I've got a USB hub plugged into one of the two functioning case-mounted USB2 ports. I use the hub for non-essential peripherals, and the ASUS BT400 in the other port.

As for BT5.0, I have not had any luck yet with LAIRD BT851 or ASUS BT500. I have some additional BT5.0 dongles which I'd like to test. As mentioned previously, I have not had the opportunity to do much scientifically, other than plug them in and check if there are any pair-able bluetooth devices.

I have further testing ahead of me, but it hinges on finding the time to do the port mapping. My understanding is that this can help fix Airdrop, etc. I also suspect this will address the previously mentioned need to reset BT, as well as, you know... having proper USB3 ports again... lol

Hopefully you are able to glean some tidbits of knowledge from my experience.

Also @Edhawk, thank you: I did add the entries you suggested, should I ever have a need to restore a full Catalina backup.

[Edited for clarity and script addition.]
 
Last edited:
Hello and thank you for the reminder @OSX790.

I've been meaning to post an update, but wanted to have something more concrete and substantial to report.

To note, a couple of things have changed on my end:
I wound up reformatting the Hack's SSD in order to address an empty inaccessible/un-deletable folder structure in Trash, which had been a nuisance for the past few months. I will replace the drive in the near future, but for now subsequent testing didn't detect any serious errors or anomalies so I re-used it.

Any prior attempts to upgrade from Catalina had failed (the reason I skipped Big Sur), however, during the clean-install process, I elected to install Monterey and then restore data from Time Machine. The Monterey installation succeeded without major issues on the freshly formatted disk, and restore process went smoother than I expected. I suspect whatever disk issues had been causing the un-deletable Trash item, had also hindered prior upgrade attempts.

After working out some initial application incompatibilities, the system seems to be performing better, faster, and more reliably now under Monterey -- although system boot takes significantly longer.

With regard to testing, I had ordered the Hideez dongle from eBay, but received one that had previously been opened. Here are 29 reasons why I didn't touch it other than to return it, and unable to do any testing with that dongle.

Initially Monterey's bluetooth support was broken and I needed to revert to a non-BT keyboard and mouse in order to add additional bluetooth kexts (BrcmPatchRAM3, BrcmFirmwareData, BrcmBluetoothInjector, BlueToolFixup). After adding kexts and getting BT running, bluetooth was very flaky and unstable until I enabled ExtendBTFeatureFlag. Around this time was when I discovered that the rear USB ports were non-functional.

The BT400 is performing well, aside from having had to re-pair my devices initially. Airdrop, Handoff, etc are not working but I do not rely on them so it's not much of an issue for me. Every so often bluetooth becomes unstable (pointer lag), but disabling and re-enabling bluetooth fixes the issue.

I wrote a script that uses blueutil to reset the BT stack:
Note: script needs to be run with a preceding .

i.e.: . ./reset_bluetooth

Code:
#!/bin/bash

clear
echo "*** Resetting Bluetooth ***"
echo
sleep 1

echo "Initial Status....: $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "  Disabled"; fi)"

sleep 2

echo "- Disabling.......:`blueutil -p 0` $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 2

echo "- Enabling........:`blueutil -p 1` $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 2

echo "Final Status......: $(if [[ `blueutil -p` -eq 1 ]] ; then; echo "Enabled"; else; echo "Disabled"; fi)"

sleep 1

echo
if [[ `blueutil -p` -eq 1 ]] ; then; echo "Done! Bluetooth successfully reset."; else; echo "*** ERROR Unable to re-enable Bluetooth"; fi
echo

In large part, what is holding me back now, is the need to perform USB port-mapping. Since none of the rear USB3 ports are working, I've got a USB hub plugged into one of the two functioning case-mounted USB2 ports. I use the hub for non-essential peripherals, and the ASUS BT400 in the other port.

As for BT5.0, I have not had any luck yet with LAIRD BT851 or ASUS BT500. I have some additional BT5.0 dongles which I'd like to test. As mentioned previously, I have not had the opportunity to do much scientifically, other than plug them in and check if there are any pair-able bluetooth devices.

I have further testing ahead of me, but it hinges on finding the time to do the port mapping. My understanding is that this can help fix Airdrop, etc. I also suspect this will address the previously mentioned need to reset BT, as well as, you know... having proper USB3 ports again... lol

Hopefully you are able to glean some tidbits of knowledge from my experience.

Also @Edhawk, thank you: I did add the entries you suggested, should I ever have a need to restore a full Catalina backup.

[Edited for clarity and script addition.]
Thank you for a detailed answers. I have ordered the bt400 and that works fine on Monterey, but I cannot turn off wake from the magic mouse. I prefer to wake using my usb keyboard. For some reason if I move the mouse the machine wakes up which I don't like.

Anyone have a suggestion to fix this without buying another app would be appreciated.

Thank you
 
I either flip the mouse over, or turn off the little button switch on the bottom.
 
Initially Monterey's bluetooth support was broken and I needed to revert to a non-BT keyboard and mouse in order to add additional bluetooth kexts (BrcmPatchRAM3, BrcmFirmwareData, BrcmBluetoothInjector, BlueToolFixup). After adding kexts and getting BT running, bluetooth was very flaky and unstable until I enabled ExtendBTFeatureFlag. Around this time was when I discovered that the rear USB ports were non-functional.
I have my hack updated to Monterey but do not have functioning Bluetooth at this time, otherwise it is stable and fully functioning. For me BT dongle shows in System Report USB list and the Bluetooth lists the controller however I cannot pair any device. They list, I click connect, but the pairing always fails.

I want to confirm with you that you have added all 4 kexts listed to your OpenCore kexts folder and your config.plist file. There are two reasons. I had BrcmPatchRAM3, BrcmFirmwareData, and BlueToolFixup in place but still no functioning BT. When I added BrcmBluetoothInjector my hack would not boot. Is there an order you placed them in in the config.plist file? Second reason is that reading through the GitHub page for BrcmPatchRAM it states BrcmBluetoothInjector is only for macOS 10-11 and should not be used on macOS 12 (Monterey).

Second question for you. I checked the documentation for the OpenCore ExtendBTFeatureFlags quirk and it also lists it is for macOS 10.8-11 only. Is this the one you are referring to?

Thanks for the info
 
I have my hack updated to Monterey but do not have functioning Bluetooth at this time, otherwise it is stable and fully functioning. For me BT dongle shows in System Report USB list and the Bluetooth lists the controller however I cannot pair any device. They list, I click connect, but the pairing always fails.

I want to confirm with you that you have added all 4 kexts listed to your OpenCore kexts folder and your config.plist file. There are two reasons. I had BrcmPatchRAM3, BrcmFirmwareData, and BlueToolFixup in place but still no functioning BT. When I added BrcmBluetoothInjector my hack would not boot. Is there an order you placed them in in the config.plist file? Second reason is that reading through the GitHub page for BrcmPatchRAM it states BrcmBluetoothInjector is only for macOS 10-11 and should not be used on macOS 12 (Monterey).

Second question for you. I checked the documentation for the OpenCore ExtendBTFeatureFlags quirk and it also lists it is for macOS 10.8-11 only. Is this the one you are referring to?

Thanks for the info
Hi
Not sure what type of bluetooth module you are using, but I am using a usb Asus BT400 and the only kext I had to add was the BlueToolFixup to get it working on my machine which is currently on 12.3.1. It is the last kext on the list on the config file.

<dict>
<key>Arch</key>
<string>Any</string>
<key>BundlePath</key>
<string>BlueToolFixup.kext</string>
<key>Comment</key>
<string>V2.6.1 | Bluetooth patches</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/BlueToolFixup</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
 
Thank you for your reply. After reading around I stumbled upon the solution. Unplug the BlueTooth dongle then plug it back in. I will fiddle around with this but I know that a reboot will not necessarily reset the USB device and shutdown will not power it down because USB stays powered up unless you turn off the power supply or unplug it. My guess is that when going from Catalina to Monterey as I did you need to power down the dongle to clear its memory. (Based on reading on the BrcmPatchRAM page where it talks about loading them with info.)

Oh, I have an IOGEAR GBU521 Bluetooth 4.0 Micro Adapter.
 
Status
Not open for further replies.
Back
Top