Hi,
This is about fixing Bluetooth on a Mac Mini 5,1 running Sonoma 14.7.3.
Background: I picked up a Mac Mini 5,1 mid-2011 with 2.3GHz with dual-core i5 with the intention to run it headlessly as a media server, photo archive, file server, torrent client, etc to replace an aging 14-year old WD MyBook Live NAS. The Mac Mini cost me $30 but came without any HDD or SSD but the seller assured me everything was working.
1. Fitted the MacMini5,1 with an SSD. With OCLP 2.2.0, I installed MacOS Sonoma 14.7.2 using an external HDD running on Thunderbolt 1 (and wired keyboard and mouse), and later upgraded it to 14.7.3 using OTA. Installed OpenCore to disk on the EFI partition. Installed Plex Media Server (runs fine) and attempted to configure it to run headlessly.
2. This is where I tried to use SleepAid to see if it was going to Sleep and Waking up fine. But the app kept crashing so I went into console and discovered bluetoothd process kept crashing and restarting and crashing again - over the few days it has accumulated almost 50 entries in Console's Crash Report. Having only had it running with screen sharing, I never tried the Bluetooth. When I tried to get Bluetooth working, it just wouldn't turn on. On System Information, Bluetooth would show up blank and the status bar at the bottom had the little spining wheel on the right. Often, it would crash System Information.
3. To debug further, I disabled the loading of the BlueToolFixUp.kext by setting the Enable to false in the config.plist in the EFI partition. This is where it got interesting. This time the Bluetooth still didn't work but System Information would now show Bluetooth with chipset BCM_4350C2 and under the USB section, it would read "Broadcom Bluetooth Download Device" with Vendor ID 0x05ac and Product ID 0xf007.
4. I looked into Acidanthera's repo (
https://github.com/acidanthera/BrcmPatchRAM) but did not find any matching Bluetooth firmware with that Vendor ID and Product ID.
5. Googling. I found this;
How to Flash Broadcom Bluetooth Firmware An EliteMacx86 Exclusive Guide - This guide describes how to flash Broadcom Bluetooth Firmware on macOS and is applicable to both, built-in and external USB Adapter. By following this guide, you'll be able to flash the firmware for your Broadcom...
elitemacx86.com
The only positive I see is that the Apple Broadcom Built-in Bluetooth, is at least recognised as such. You never know, maybe it isn't totally bricked. It wasn't recognised as such until i chose the drivers (i mentioned before). Without drivers it's listed as Broadcom Bluetooth Download Device...
www.tonymacx86.com
So it turns out the Product ID 0xF007 means that the Broadcom Bluetooth device is in Device Firmware Upgrade (DFU) mode. Not sure how it got into that mode. Since I only installed Sonoma and nothing else.
6. Followed the instructions in the postings above, I install dfu-util with Homebrew. Googled for the actual Vendor and Product ID for my Bluetooth controller on Macmini5,1. Found it here
https://linux-hardware.ru/?probe=0156afc704 as Vendor ID: Product ID as 05ac:8281.
7. Extracted the 20702_8281.dfu file inside my Big Sur install on an old MBP from IOBluetoothFamily.kext in folder /System/Library/Extensions.
8. Using the 8281 Product ID from step 6. and it also helped that 20702_8281.dfu was also listed as removed on the Monterrey section of the Dortania's OpenCore Legacy Guide.
9. Using dfu-util, I flashed the firmware onto the Bluetooth card: dfu-util -R -D 20702_8281.dfu. Firware download was successful.
10. I re-enable BlueToolFixUp.kext on the EFI partition. And rebooted with my fingers crossed.
11. It worked. On System Information ... USB section, it now shows: Bluetooth USB Host Controller. Product ID 0x8281, Vendor ID 0x05ac, version 1.56. In the Bluetooth section of System Information, it shows Chipset BCM_20702A3, Firmware version v156 c5916 but oddly, Address is NULL.
12. Bluetooth is working. Connected to Logitech K380 keyboard, a set of earpods too. More importantly, AirDrop works!!! And so does WiFi. No more bluetoothd crash reports in Console. Still testing the Sleep and Wake functions - seem to work or now. Also, the Bluetooth firmware survived a few reboots.
Hope someone finds this helpful.