Bluetooth peripherals randomly disconnecting under Mavericks
I've scoured the internet to try to find a solution to this bizarre problem (similar problems here and here and here), but have unfortunately failed so far. I'm running OS X 10.9.1 on an early-2013 retina MBP, and my Magic Mouse and Bluetooth Keyboard disconnect every 1–3 hours, causing the following kernel errors:
1/26/14 12:09:23.000 AM kernel[0]: [BNBMouseDevice][waitForData][7c-6d-62-f4-b0-ee] Timeout waiting for data
1/26/14 12:09:23.000 AM kernel[0]: [BNBMouseDevice::getExtendedReport][80.14] ERROR: [BNBMouseDevice] getReport returned error e00002d6 for reportID 0x0030
1/26/14 12:09:23.000 AM kernel[0]: [BNBMouseDevice][getBatteryState] Couldn't get battery state from device
1/26/14 12:09:26.000 AM kernel[0]: [IOBluetoothHCIController][handleACLPacketTimeout] -- Disconnecting due to device not responding (ACL Packet timed out) for connection handle 0xd
1/26/14 12:09:26.308 AM loginwindow[59]: Preferred Localizations total: 1 contents (en)
1/26/14 12:09:29.000 AM kernel[0]: [IOBluetoothHCIController][handleACLPacketTimeout] -- Disconnecting due to device not responding (ACL Packet timed out) for connection handle 0xc
1/26/14 12:09:29.000 AM kernel[0]: [BNBMouseDevice][waitForData][7c-6d-62-f4-b0-ee] Became inactive waiting for data
1/26/14 12:09:29.000 AM kernel[0]: [BNBMouseDevice::getExtendedReport][80.14] ERROR: [BNBMouseDevice] getReport returned error e00002d7 for reportID 0x0060
1/26/14 12:09:29.000 AM kernel[0]: [BNBMouseDevice::createUsedVoltagesDict][80.14] ERROR: Unable to get calibrated battery thresholds report for product ID 781
1/26/14 12:09:29.000 AM kernel[0]: [BNBMouseDevice] notice: _outstandingIO > 0 but isInactive() returned TRUE...
1/26/14 12:09:29.000 AM kernel[0]: [AppleMultitouchDevice::willTerminate] entered
1/26/14 12:09:29.000 AM kernel[0]: [AppleMultitouchDevice::stop] entered
Additionally, the Bluetooth panel in System Preferences freezes up completely and shows glitchy information:
The only way to get the mouse and keyboard to reconnect (and the only way to get the Bluetooth panel to work again) is to:
- Turn all the peripherals off
- Put the computer to sleep (without closing the lid)
- Wait for 60–90 seconds for the computer to magically wake itself back up
- Turn on the peripherals. All is well.
If I put the computer to sleep with Bluetooth working, it will stay asleep. If I put it to sleep after the peripherals disconnect, it will wake up automatically after a while.
I have no idea what is triggering these disconnects. They don't happen at the same intervals (sometimes it happens after an hour, sometimes four), but they always happen. Since upgrading to Mavericks I've had to do this whole put-the-computer-to-sleep thing several times a day. This did not happen under Mountain Lion.
I've tried the following things, without success:
- Reset SMC
- Reset PRAM
- Deleted
~/Library/Preferences/com.apple.bluetooth.*
and/Library/Preferences/com.apple.bluethooth
and anything else related to Bluetooth - Reinstalled Mavericks
- Had the physical Bluetooth controller replaced by Apple (just got the computer back yesterday)
Despite all this, the problem persists. I still have to put the computer to sleep 4–5 times a day to get the mouse and keyboard working again. Seemingly nobody knows how to fix it—it has even stumped Apple.
Does anyone know what's going on?
Solution 1:
I was able to overcome the problem with this quick fix. So whenever you loose bluetooth connectivity just run the following commands in the terminal
$ sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
$ sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
You will regain connectivity.
Solution 2:
I had the same issues and I was able to fix it by deleting the bluetooth settings as Andrew suggested in 3, in combination with also killing the preference cache (see http://reviews.cnet.com/8301-13727_7-57617236-263/how-to-tackle-defaults-not-sticking-in-mavericks/). Without killing the cache daemon, I wasn't able to solve the problem. So here's what I did:
rm /Library/Preferences/com.apple.Bluetooth.plist
killall -u yourusername cfprefsd
If I remember correctly, I issued both commands multiple times to make sure all Bluetooth settings.
Hope this helps!