Apple Event: May 7th at 7 am PT

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

16-inch MacBook Pro Bluetooth issue

I bought the new 16-inch MacBook Pro when it first came out and was happily using it until a week later my bluetooth stopped discovering devices, in particular my Magic Mouse and iPhone. I tried everything from resetting nvram, smc, resetting the bluetooth module, removing bluetooth.plist, downloaded bluetooth explorer and reset a bunch of settings etc and even went to the extent of completely formatting the computer and installing osx from scratch to no avail. Hardware diagnostics showed no hardware issues as well. The bluetooth device was showing up fine in System Report but it just wasn't discovering anything. I have a work laptop (2017 MacBook Pro) which I use side by side and it was working fine.


Long story short, I was able to replace the device at the Apple store I bought it at since it was within the 14 day return policy window. So I put it down to just being unlucky.


It's been a few weeks since then and I now have the same issue with the replacement laptop. This time though I think I know what triggered it.


I have a CalDigit dock that I use for my work laptop and occasionally have a usb bluetooth device attached to it for some work I do in virtual machines. The issue occurred when I connected my new MacBook to the dock along with the bluetooth dongle. The usb bluetooth dongle worked fine however when I disconnected the thunderbolt dock from the MacBook I noticed the bluetooth icon in the top right hand corner changed to an icon with a zigzag across it, obviously due to bluetooth device being disconnected.


Since disconnecting the external bluetooth device I'm having the same issue as I had previously, my MacBook Bluetooth device won't find any devices and is not recognized by other bluetooth devices like my iPhone/other MacBooks. I've gone through the whole process as before, and have resorted to a clean install of osx to no avail. I've even compared bluetoothd console logs between the working MacBook I have and the now broken one, the only difference is the working MacBook is able to detect devices when they are advertised, whereas the MacBook Pro 16-inch does not.


Digging into this, it seems as though OSX by default switches to any attached USB bluetooth device when it's plugged in and then when disconnected, it reverts back to the onboard device. This works fine on my old MacBook as I've been using the USB dongle for a while now without any issues. I initially thought that there may be a software issue with the internal bluetooth device not switching back properly but I would have thought a clean install would have fixed it so there must be some sort of hardware issue specifically with the new MacBook Pro 16-inch.


I'm pretty frustrated now as I've now gone through two 16-inch MacBook Pro's with bricked bluetooth devices that I'm fairly certain was caused by connecting an external bluetooth dongle via thunderbolt. I'm pretty sure onboard devices shouldn't die just because a third party device was connected/disconnected.


Has anyone come across this yet with the new MacBook Pro 16-inch? I'm going to visit the Apple store tomorrow to see what they can do but I'd prefer if I didn't have to send my laptop away and just find a fix myself if there is one. If not, I thought it'd be good to post my experience here in case anyone else comes across this.

MacBook Pro 16", macOS 10.15

Posted on Dec 14, 2019 2:09 AM

Reply
Question marked as Best reply

Posted on Jul 6, 2020 5:25 AM

Here is a summary of the whole thread:


TL;DR:


  • It's apparently possible to unfix the problem with a BT 2.0 dongle
  • For those that are scared to break it again (after logic board replacement OR BT 2.0 fix), they can run a NVRAM command to never switch BT controllers again (need to re-run after NVRAM reset):


sudo nvram bluetoothHostControllerSwitchBehavior="never"


Might be best to put that in a startup script and only change if needed.


  • It seems to have to do with Power Management and seemingly a EFI firmware bug introduced in Catalina as it's not possible to break Mojave in the same way.


So in summary it's several factors that came together here to create this bug:


  • a) A likely firmware bug in the EFI in Catalina.
  • b) A pretty unsafe default for switching Bluetooth controllers - which most users likely don't want anyway.
  • c) Maybe: A CSR USB controller using the exact same chip as the internal one. (if I am able to unbreak my device, I will try to re-break with a Broadcom 4.0 device, too)


Long version:


I have been bitten by the Bluetooth bug, too that breaks the internal Bluetooth module on Mac Book Pro 16inch if you accidentally plug in an USB CSR 4.0 Bluetooth dongle.


  • It seems to not happen on Mojave - so it's also related to a driver bug in Catalina regarding power management.
  • It happens in the first place because the nvram default behavior is to switch over to external Bluetooth by default.


The symptom is:


  • The Bluetooth chip gets too little power and hence fails to connect to devices and if it does connection is spotty. While on MacBook Pro 16inch it completely fails, other Macs can have bad Bluetooth behavior that is "spotty".


  • The solution of AppleRepair so far has been to completely replace the logic board, which fixes it till the next Dongle is plugged in and obviously is quite costly for a pure software bug.


Several observations:


  • The current theory is that the internal firmware mixes up the external CSR chip for it's own and saves the power requirement of the external chip (which is less as its powered by BT) and then uses this for the internal chip.


  • a) It is highly debatable to make the switch over to external dongle the default for all users if the functionality is usually only wanted by a handful of developers that develop Bluetooth LE applications. In fact it also breaks it for iOS developers and everyone that wants to use a Dongle to use with a VM:



  • Fortunately that is easily remedied with a nvram command to change the behavior. It would be great if Apple changed this in the next minor Catalina release by default to not switch over to external Bluetooth automatically, but make it an option to select the Controller (like you can do with Bluetooth Explorer). The setting could be stored and automatically be applied after every reboot to what the user configured. That would prevent the bug in probably most user cases until a proper fix can be found.


  • b) It is unclear if a pure software fix could fix this as per the reports the issue remains once it has happened even if you boot into Windows / Bootcamp. However it is seemingly possible (per the above accepted answer) to unfix that issue with an older CSR Bluetooth 2.0 dongle. This probably helps, because it has a different power requirement as it predates Bluetooth LE and hence the MacBook FW gives the internal Bluetooth chip more power again.


  • c) Someone tried to port the Bluetooth drivers from Catalina to Mojave and it did not work.This points to the fact that it likely is an EFI / soft FW update that broke this in Catalina and not a pure software bug.


Overall it seems Apple would have several ways to fix / work around this:


  • Fix the EFI to fix the PM bug. (that gives hope that it can be fixed 100% and also restored affected devices without logic board replacement)
  • If that fix takes a while to do, at least change the default and put out a changelog for those few that need to use an external Bluetooth dongle to replace the internal one.
  • Create a program that does whatever the diagnostics on the Apple Wifi in the repair shop does to reset the firmware to sane values.
  • Create a device to emulate the USB behavior of a 2.0 Bluetooth device to fix broken devices [unlikely as that is].


In theory VirtualHere + ZeroTier could be used to share a BT 2.0 dongle from one machine on the internet to another one and unbreak something remotely. (not sure if that would work in practice though as emulation is not perfect. Though I know that Bluetooth over Internet works well as that is ironically how I broke my BT in the first place as I needed a dongle for bluetooth-over-internet)

Similar questions

341 replies
Question marked as Best reply

Jul 6, 2020 5:25 AM in response to AntiHawk

Here is a summary of the whole thread:


TL;DR:


  • It's apparently possible to unfix the problem with a BT 2.0 dongle
  • For those that are scared to break it again (after logic board replacement OR BT 2.0 fix), they can run a NVRAM command to never switch BT controllers again (need to re-run after NVRAM reset):


sudo nvram bluetoothHostControllerSwitchBehavior="never"


Might be best to put that in a startup script and only change if needed.


  • It seems to have to do with Power Management and seemingly a EFI firmware bug introduced in Catalina as it's not possible to break Mojave in the same way.


So in summary it's several factors that came together here to create this bug:


  • a) A likely firmware bug in the EFI in Catalina.
  • b) A pretty unsafe default for switching Bluetooth controllers - which most users likely don't want anyway.
  • c) Maybe: A CSR USB controller using the exact same chip as the internal one. (if I am able to unbreak my device, I will try to re-break with a Broadcom 4.0 device, too)


Long version:


I have been bitten by the Bluetooth bug, too that breaks the internal Bluetooth module on Mac Book Pro 16inch if you accidentally plug in an USB CSR 4.0 Bluetooth dongle.


  • It seems to not happen on Mojave - so it's also related to a driver bug in Catalina regarding power management.
  • It happens in the first place because the nvram default behavior is to switch over to external Bluetooth by default.


The symptom is:


  • The Bluetooth chip gets too little power and hence fails to connect to devices and if it does connection is spotty. While on MacBook Pro 16inch it completely fails, other Macs can have bad Bluetooth behavior that is "spotty".


  • The solution of AppleRepair so far has been to completely replace the logic board, which fixes it till the next Dongle is plugged in and obviously is quite costly for a pure software bug.


Several observations:


  • The current theory is that the internal firmware mixes up the external CSR chip for it's own and saves the power requirement of the external chip (which is less as its powered by BT) and then uses this for the internal chip.


  • a) It is highly debatable to make the switch over to external dongle the default for all users if the functionality is usually only wanted by a handful of developers that develop Bluetooth LE applications. In fact it also breaks it for iOS developers and everyone that wants to use a Dongle to use with a VM:



  • Fortunately that is easily remedied with a nvram command to change the behavior. It would be great if Apple changed this in the next minor Catalina release by default to not switch over to external Bluetooth automatically, but make it an option to select the Controller (like you can do with Bluetooth Explorer). The setting could be stored and automatically be applied after every reboot to what the user configured. That would prevent the bug in probably most user cases until a proper fix can be found.


  • b) It is unclear if a pure software fix could fix this as per the reports the issue remains once it has happened even if you boot into Windows / Bootcamp. However it is seemingly possible (per the above accepted answer) to unfix that issue with an older CSR Bluetooth 2.0 dongle. This probably helps, because it has a different power requirement as it predates Bluetooth LE and hence the MacBook FW gives the internal Bluetooth chip more power again.


  • c) Someone tried to port the Bluetooth drivers from Catalina to Mojave and it did not work.This points to the fact that it likely is an EFI / soft FW update that broke this in Catalina and not a pure software bug.


Overall it seems Apple would have several ways to fix / work around this:


  • Fix the EFI to fix the PM bug. (that gives hope that it can be fixed 100% and also restored affected devices without logic board replacement)
  • If that fix takes a while to do, at least change the default and put out a changelog for those few that need to use an external Bluetooth dongle to replace the internal one.
  • Create a program that does whatever the diagnostics on the Apple Wifi in the repair shop does to reset the firmware to sane values.
  • Create a device to emulate the USB behavior of a 2.0 Bluetooth device to fix broken devices [unlikely as that is].


In theory VirtualHere + ZeroTier could be used to share a BT 2.0 dongle from one machine on the internet to another one and unbreak something remotely. (not sure if that would work in practice though as emulation is not perfect. Though I know that Bluetooth over Internet works well as that is ironically how I broke my BT in the first place as I needed a dongle for bluetooth-over-internet)

May 24, 2020 8:25 AM in response to jamiefromkirkcaldy

jamiefromkirkcaldy wrote:

I had done a full reinstall by nuking the T2 Firmware and it hadn't solved it on mine.

A 2019 iMac does not have an Apple T2 Controller. See About the Apple T2 Security Chip - Apple Support and iMac (Retina 5K, 27-inch, 2019) - Technical Specifications for reference.

I wonder if I do a few complete installs if it might work?

It is worth an experiment. The power issues on the 16-in MBP are unrelated to the 2019 iMac experiment. Posts in this discussion have tried to erase/re-install macOS on the 16-in MBP, but without positive results.


Jun 4, 2020 3:11 AM in response to jeremías49

OK,


target mac's bluetooth was rendered unusable by some bt 4.0 dongle and I used other older bt 2.0 dongle to troubleshoot and eventually to get it working again.


To replicate successful recovery just yesterday that I did:

  1. Cleared SMC, NVRAM
  2. reset bluetooth from shift+option icon debug method
  3. installed blueutil, with brew installed from terminal brew install blueutil
  4. plugged in the bluetooth dongle and fiddled around it until bluetooth works with with the dongle (bluetooth explorer app, turning bluetooth on and off again multiple times)
  5. connected to android phone using the bluetooth dongle (paired etc, also I had visible connectivity light on the dongle that I noticed to be blicking time to time)
  6. removed the bluetooth dongle -> paired android device disappears from the bt device list
  7. restarted to recovery
  8. mounted macos partition in recovery
  9. openned terminal in recovery
  10. executed cd /PATH/TO/MOUNTED/MACOS/VOLUME + /usr/local/Cellar/blueutil/2.6.0/bin/blueutil
  11. executed blueutil -p 0
  12. executed blueutil -p 1
  13. executed blueutil --inquiry
  14. blueutil did not return anything even if android device was discoverable
  15. rebooted to macos -> bluetooth still not working
  16. shutdown the mac
  17. plugged in the bluetooth dongle and turned on the mac and started macos
  18. at this point discovering new bluetooth devices used the onboard bluetooth as dongle was not blinking
  19. initiated pairing to android but cancelled it from the macos
  20. removed bluetooth dongle
  21. initiated pairing to android and completed it
  22. restarted macos and internal bluetooth was still working


half of things in the list are probably not related why it started working again but this is how I did it.

I am still amazed how such things are even a thing on this expensive machine.

Jun 9, 2020 8:13 PM in response to jberian

Hi,


I changed the procedure a bit as NVRAM reset was pain to do as I have firmware password set.

Doing SMC reset instead.


https://www.youtube.com/watch?v=2elFJmqJJtI


---


1. For demo purposes I have already broken my internal BT with CSR 4.0 BT dongle

2. Disconnect CSR 4.0 BT dongle if it is still connected

3. option+shift+bt icon - debug - reset the bluetooth module

4. Run “sudo rm /Library/Preferences/com.apple.Bluetooth.plist”

5. Shutdown your Mac and do SMC reset

1. My procedure is following as I have filevault enabled

1. Start your Mac

2. Wait until filevault login appears

3. Press option+cmd+RIGHT SHIFT for 7 seconds

4. While keep holding keys in step 3. also press power button for 7 seconds

1. Fans should briefly spin up and Mac shut power off, keep holding power button for whole 7 seconds

5. If fans did not spin up try SMC reset again

6. Start your Mac to macOS normally without connecting any dongles

7. See Ya soon…

8. After SMC reset

9. Insert BT 2.0 USB dongle

10. Initiate pairing but cancel it from macOS

11. Remove BT 2.0 USB dongle and immediately after try pairing again

12. Failed

13. Trying again

14. Connect your BT 2.0 USB dongle

15. Initiate pairing but cancel it from macOS

16. Cancel pairing then remove BT 2.0 and try pairing again

17. Failed

18. Do step 5. again

19. Check if internal bluetooth is working already

20. Internal BT works again if it does not try steps 9-11 again

21. Done

Jun 4, 2020 2:04 AM in response to AntiHawk

I just spent the past 2 hours trying all possible combinations of the steps you described to no avail.

macOS just won't recognise the internal module as a HCI Controller anymore.


Using the dongle is the only way to get partial/unstable Bluetooth.

With the Bluetooth Explorer I can see that macOS will pick some BLE devices nearby without a dongle but won't successfully connect to any of them.


Jun 6, 2020 8:59 PM in response to jeremías49

Hi,


So I borrowed my friends CSR 4.0 BT USB dongle...

My Mac is following version:


Internal bluetooth is as follows:


...and spent 5 hours with it...

I was able to break my internal BT 5 times and recover 5 times :) but it was well very frustrating...


Following did the trick:


and sorry the list is still long :(


  1. option+shift+bt icon -> debug -> reset the bluetooth module
  2. sudo su
  3. rm /Library/Preferences/com.apple.Bluetooth.plist
  4. reboot (to filevault login screen)
  5. NVRAM reset (I am not sure but I think the fans must spin up for half a second to the NVRAM reset to be successful, I missed timing many times and it seemed like a normal hard shutdown what happens when you hold down power button for long enough)
  6. boot up to macOS normally WITHOUT BT CSR 4.0 connected
  7. Trying to recover with CSR 4.0 didn't work even once (I tried 4 of 5 hours to get it to work as this is what most people will have available)
  8. I connected my BT 2.0 USB dongle
  9. scanned for my android device
  10. Initiated pairing for android but cancelled it from macOS
  11. removed the BT 2.0 USB dongle
  12. immediately after connected to my android device and finished pairing with it
  13. BT restored


One time I had to try steps 8 - 12 again

Once I had to do whole 1 - 12 again.

3 times I got it work exactly as listed


There was so much luck involved finding this...

Jun 10, 2020 8:47 AM in response to AntiHawk

Thanks so much for this. It's got mine working again, but not without some drama.


I ordered the previously linked dongle from ebay and put it in. It got so hot it melted and burned. I'm going to put this down to more bad luck. I then found a 2.1 dongle in stock nearby and went and grabbed it. It's done the trick.


There is one caveat thus far, which is that my Logitech Craft keyboard won't pair with the Mac via bluetooth. Logitech Options pairing tool says 'Your Mac does not support Bluetooth Smart devices', which I think means is not 4.0+.


I'll persevere as it may be unrelated to this overall issue.


EDIT - Yep, fixed with a reboot. All working!


One thing I noticed in your instructions/video:

AntiHawk wrote:

Hi,

I changed the procedure a bit as NVRAM reset was pain to do as I have firmware password set.
Doing SMC reset instead.

https://www.youtube.com/watch?v=2elFJmqJJtI

---

1. For demo purposes I have already broken my internal BT with CSR 4.0 BT dongle
2. Disconnect CSR 4.0 BT dongle if it is still connected
3. option+shift+bt icon - debug - reset the bluetooth module
4. Run “sudo rm /Library/Preferences/com.apple.Bluetooth.plist”
5. Shutdown your Mac and do SMC reset
1. My procedure is following as I have filevault enabled
1. Start your Mac
2. Wait until filevault login appears
3. Press option+cmd+RIGHT SHIFT for 7 seconds


Number 3. should be option+control+RIGHT SHIFT, not CMD. At least according to the Apple instructions here.


Thanks again for all your work on this.

Jun 10, 2020 11:58 PM in response to jberian



I also get this issue :(


My only option is to connect the Dongle through this: https://www.apple.com/shop/product/MUF82AM/A/usb-c-digital-av-multiport-adapter



jberian wrote:

Thank you for this amazing info @AntiHawk!

I've bought a BT 2.0 usb dongle (the same exact chipset as yours) but I must be doing something wrong... it's not working for me. Could you please record a video and upload it to youtube?.

When I connect my BT 2.0 usb dongle I see how the BLE icon disconnects, shows an error and then comes back to normal. But I cannot see my MacBook from my Android phone... The only thing I see is a red blink LED on the BT 2.0 dongle. Any clues?


Jun 13, 2020 12:31 AM in response to jeremías49

I am using the original Apple cable, this one:

https://www.apple.com/shop/product/MJ1M2/usb-c-to-usb-adapter?fnode=991252f92d2a40afc8b66f3bd32a7e266d95b2f480ad1430d0018901292024de76a18d18503b7c1bb97119bb3750331bdf52aaff248717ab8ab99cf7399a5fa83027245b3a1c0c56d84d89eafbbee2d0bc8c1d48a9bea6c509fb59b3c4dc4e8a


I would recommend trying another Bluetooth Dongle, as my first one didn't work, which was the same as yours. I think trying to find a use Belkin, TP-Link etc might give more of a chance of success.

Aug 19, 2020 11:11 PM in response to Gordon Mohr

Hi Gordon


The chipset can be identified in the "SystemInformation Tab" / USB Details. See attached screenshot.

In the example, you can see the BCM2045A chipset. The spec of this chipset clearly states, that it is BT2.1.


Some more details about chipsets:


If switching behaviour is set to always, then:

  • With a CSR8510 A10 chipset, I can repeatedly "crash" the internal bluetooth.
  • Then, with a BCM2045A chipset, I can always fix it.



Boris

Feb 27, 2020 11:12 PM in response to Swift3004

Exactly same problem here.

Brand new MacBook Pro 16".

I plugged a USB Bluetooth dongle to pass it to my VM - and I lost the integrated bluetooth module.

Have tried everything:

  • reset NVRAM / SMC
  • Erase my Mac - clean Catalina install
  • Bluetooth Explorer still showing no HCI Module
  • Boot diagnostic


So have requested Genius Bar appointment this week end :-(


16-inch MacBook Pro Bluetooth issue

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.