MacBook – Magic Trackpad randomly disconnects over bluetooth from MacBook Pro 2018

bluetoothmacbook promagic-trackpad

I know there's already this question with many suggestions but it's marked as resolved and not about MBP.

I have a setup with Magic Keyboard and Trackpad 2 connected over Bluetooth to MBP. Also an external display Dell U2715H. I've been working for a few months with MBP 2012 and it worked flawlessly, the monitor was connected via DP to mDP cable. Then my 2012 MBP died on me and I replaced it with 2018 MBP. I connected the display via Satechi USB-C hub with mDP slot.

And with this new setup, my Trackpad started to suddenly drop Bluetooth connections from time to time. It randomly disconnects-connects for 4-5 times over a few seconds. So, it's obviously not a Trackpad or some Wi-Fi router interferences issue because it worked just fine with the old MBP. I tried a few things that did not help:

  • Uninstall LittleSnitch (I've read somewhere that it might interfere)
  • Connected USB-C hub to the right side (tried different slots)
  • Reset Bluetooth module
  • Disabled handoff
  • Connect/disconnect Bluetooth devices
  • Charged devices to 100%

Apple support wasn't helpful either.

At first, disconnects happened only with Trackpad but not Magic Keyboard which I thought is super weird but later the keyboard started to disconnect as well.

I read a few reports by people claiming that's the issue in the USB-C hub interfering with Bluetooth signal, so I tested a day without the USB hub and connections weren't dropped, so I decided that's the issue and bought myself a DP to USB-c cable to replace the hub for the display connection. But to my surprise, it did not help.

I installed Bluetooth PacketLogger and got these error logs during the disconnects:

12:54:25.383  L2CAP Receive    0x000C  Trackpad           Connection Request - HID Control  
Identifier: 0x02
Size: 4 (0x0004)
PSM: 0x0011 - HID Control
Source CID: 0x0048
Channel ID: 0x0001  Length: 0x0008 (08) [ 02 02 04 00 11 00 48 00 ]
L2CAP Payload:
00000000: 0202 0400 1100 4800                      ......H.
12:54:25.383  ACL Receive      0x000C  Trackpad           Data [Handle: 0x000C, Packet Boundary Flags: 0x2, Length: 0x000C (12)]  
    Packet Boundary Flags: [10] 0x02 - First packet of Higher Layer Message (i.e. start of an L2CAP packet)
Broadcast Flags: [00] 0x00 - Point-to-point
Data (0x000C bytes)
12:54:25.383  ACL Receive      0x0000                     
00000000: 0C20 0C00 0800 0100 0202 0400 1100 4800  . ............H.  

########################################################

12:54:25.383  L2CAP Send       0x000C  Trackpad           Connection Response - HID Control - Connection Pending  
    Identifier: 0x02
Size: 8 (0x0008)
Destination CID: 0x0040
Source CID: 0x0048
Result: 0x0001 (Connection Pending)
Status: 0x0000 (No further information available)
Channel ID: 0x0001  Length: 0x000C (12) [ 03 02 08 00 40 00 48 00 01 00 00 00 ]
L2CAP Payload:
00000000: 0302 0800 4000 4800 0100 0000            ....@.H.....
12:54:25.383  ACL Send         0x000C  Trackpad           Data [Handle: 0x000C, Packet Boundary Flags: 0x2, Length: 0x0010 (16)]  
Packet Boundary Flags: [10] 0x02 - First packet of Higher Layer Message (i.e. start of an L2CAP packet)
Broadcast Flags: [00] 0x00 - Point-to-point
Data (0x0010 bytes)
12:54:25.383  ACL Send         0x0000                     00000000: 0C20 1000 0C00 0100 0302 0800 4000 4800  . ..........@.H.  
00000000: 0C20 1000 0C00 0100 0302 0800 4000 4800  . ..........@.H.
00000010: 0100 0000                                ....

########################################################

12:54:25.383  L2CAP Send       0x000C  Trackpad           Connection Response - HID Control - Connection Successful  
Identifier: 0x02
Size: 8 (0x0008)
Destination CID: 0x0040
Source CID: 0x0048
Result: 0x0000 (Connection Successful)
Status: 0x0000 (No further information available)
Channel ID: 0x0001  Length: 0x000C (12) [ 03 02 08 00 40 00 48 00 00 00 00 00 ]
L2CAP Payload:
00000000: 0302 0800 4000 4800 0000 0000            ....@.H.....
12:54:25.383  ACL Send         0x000C  Trackpad           Data [Handle: 0x000C, Packet Boundary Flags: 0x2, Length: 0x0010 (16)]  
Packet Boundary Flags: [10] 0x02 - First packet of Higher Layer Message (i.e. start of an L2CAP packet)
Broadcast Flags: [00] 0x00 - Point-to-point
Data (0x0010 bytes)
12:54:25.383  ACL Send         0x0000                     00000000: 0C20 1000 0C00 0100 0302 0800 4000 4800  . ..........@.H.  
00000000: 0C20 1000 0C00 0100 0302 0800 4000 4800  . ..........@.H.
00000010: 0000 0000                                ....

########################################################

12:54:25.383  L2CAP Send       0x000C  Trackpad           Configuration Request - HID Control  
Identifier: 0x03
Size: 8 (0x0008)
Destination CID: 0x0048
Flags: 0x0000  - Not Continuation
Options:
    MTU (Hint) - Length: 0x02
        MTU: 0xFFFF
Channel ID: 0x0001  Length: 0x000C (12) [ 04 03 08 00 48 00 00 00 01 02 FF FF ]
L2CAP Payload:
00000000: 0403 0800 4800 0000 0102 FFFF            ....H.......
12:54:25.383  ACL Send         0x000C  Trackpad           Data [Handle: 0x000C, Packet Boundary Flags: 0x2, Length: 0x0010 (16)]  
Packet Boundary Flags: [10] 0x02 - First packet of Higher Layer Message (i.e. start of an L2CAP packet)
Broadcast Flags: [00] 0x00 - Point-to-point
Data (0x0010 bytes)
12:54:25.383  ACL Send         0x0000                     00000000: 0C20 1000 0C00 0100 0403 0800 4800 0000  . ..........H...  
00000000: 0C20 1000 0C00 0100 0403 0800 4800 0000  . ..........H...
00000010: 0102 FFFF                                ....

########################################################

12:54:25.394  L2CAP Receive    0x000C  Trackpad           Connection Request - HID Interrupt  
Identifier: 0x04
Size: 4 (0x0004)
PSM: 0x0013 - HID Interrupt
Source CID: 0x0049
Channel ID: 0x0001  Length: 0x0008 (08) [ 02 04 04 00 13 00 49 00 ]
L2CAP Payload:
00000000: 0204 0400 1300 4900                      ......I.
12:54:25.394  ACL Receive      0x000C  Trackpad           Data [Handle: 0x000C, Packet Boundary Flags: 0x2, Length: 0x000C (12)]  
Packet Boundary Flags: [10] 0x02 - First packet of Higher Layer Message (i.e. start of an L2CAP packet)
Broadcast Flags: [00] 0x00 - Point-to-point
Data (0x000C bytes)
12:54:25.394  ACL Receive      0x0000                     00000000: 0C20 0C00 0800 0100 0204 0400 1300 4900  . ............I.  
00000000: 0C20 0C00 0800 0100 0204 0400 1300 4900  . ............I.

I think the only helpful message out of all this is First packet of Higher Layer Message (i.e. start of an L2CAP packet). Sounds like there's an interference with Bluetooth after all.

At this point, I'm inclined to think that the MBP 2018 just has a bad Bluetooth module (or poor design that causes signal interferences) and to resolve it for good you'll need to buy an external Bluetooth adapter.

Best Answer

I have this issue again and it seems the main reason is the interference between Bluetooth and WiFi frequencies. Updating to 5Ghz WiFi fixed the issue for me before in the old office but replacing a perfectly fine router with the new that supports 5Ghz is not really a solution.

Some people claim it to be a driver issue since Yosemite but I don't think so because my MBP 2012 worked flawlessly until it died in late 2018 and I had these issues with MBP 2018 since I bought it. So, my take is that it's a hardware issue caused by a bad design.

UPDATE: I've once again confirmed that switching to 5Ghz WiFi network fixes the issue. It doesn't matter whether you have both 2.4Ghz and 5Ghz enabled in your router as long as MBP connected to 5Ghz. I can't express enough how disappointing this is to have this issue in a so expensive laptop in its 3rd generation.