imbushuo / mac-precision-touchpad

Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
Other
8.73k stars 559 forks source link

(Firmware update induced? - Maybe fixed???) Long bluetooth connection times, doesn't affect "official" drivers or MagicUtilities. (Detailed Report) #477

Open WinkelCode opened 2 years ago

WinkelCode commented 2 years ago

Background A couple days ago, I was troubleshooting a random Bluetooth disconnection issue*, during this I ended up pairing my Magic Trackpad 2 (Grey/Black) to my iPad and leaving it for an hour or so, afterwards (I am not 100% sure but the timeframe fits) I started having issues connecting it at all to my PC while in Windows. Throughout all of this I had no issues (besides the now worked-around disconnect bug) in Linux, connecting via USB also works as expected.

*I believe the issue was due to having my monitors USB cable plugged into a certain USB 3.0 port/controller, instead of the previous USB 2.0 port, a certified AMD™ B550™ moment.

Note: Whenever I say "official [Apple] driver" I mean this: https://swcdn.apple.com/content/downloads/49/15/071-01695/pzb50hqjggaapo0xspcdmotzig589qer8f/AppleBcUpdate.exe (Thanks to this reddit post) Extract it with 7zip, NanaZip, etc. and (right-click) install both .inf driver files.

The bug presents as follows:

USB Connectivity is not affected and behaves as expected.

Bluetooth with no drivers: Pairs successfully but no input. (I might be misremembering but I think it used to work? Just without right click or scroll, as does USB with no drivers.)

I took multiple measurements to get an average connection time (or a range), measurement starts from first click (to initiate connection) until cursor begins moving:

Attempted Troubleshooting

Expected behavior I don't remember it ever taking so long to connect, I have been using this driver for quite a while now and I'm pretty sure it never took that long. 20 seconds might not be "long" but it's annoying to have to wait when, for instance, starting the PC or just generally having to reconnect the Trackpad.

Environment OS: Windows 11 (Windows 10 LTSC was also tested, and presented the same issue) Platform: AMD B550 (Gigabyte B550 Vision D/Ryzen 5900x) Wireless/Bluetooth: Intel AX200 NGW

Magic Trackpad 2 "Space Grey" Info from iPad:

Info from MacBook:

Note: I didn't check the firmware before the bug started.

Random stuff that I noticed:

AB#824

provalinf commented 1 year ago

Interesting subject, I have unpacked the last trackpad drivers delivered with bootcamp 6.1.19, the drivers carry the date of 04/07/2022 and it seems that apple is made of apple by forcing the disconnection of the trackpad just after pairing, basically it is no longer usable, maybe it controls that the pc is really a bootcamp by registry key or by bluetooth chip.
Another hypothesis is that this version of bootcamp comes with a changelog that says it improves the bluetooth connection, maybe these improvements make it no longer compatible with the bluetooth of my intel AX201. latest bootcamp 6.1.19.zip

WinkelCode commented 1 year ago

@provalinf Do the old drivers still work, or was the firmware changed again? I attached the old files; had to zip them for GitHub, the unpackable executable inside is signed by Apple. AppleBcUpdate.zip

WinkelCode commented 1 year ago

I totally forgot to mention: THE BUG FIXED "ITSELF".

I connected my Magic Trackpad to my iPad via Bluetooth and left it idle for an hour or so, afterwards the firmware number changed and everything worked as expected again.

That's why I'm asking if your bug is due to firmware or driver.

WinkelCode commented 1 year ago

@provalinf Not sure if you still have the issue, but I figured out that with the newer driver, you simply have to make sure it's not installed while pairing, afterwards you can install it and everything seems to work fine.

I have a work-in-progress script to automate this: https://gist.github.com/WinkelCode/cae44ddce205b5363c60f15b2748ad1e

Right now it just uninstalls the driver using pnputil.

provalinf commented 1 year ago

@WinkelCode Sorry I didn't reply, I forgot about this thread!
Can you show the version of your current firmware?
I'm going to try again and see if my trackpad updates with the trackpad connected in USB on my macOS VM as I don't have a mac on hand.
But to answer your question of October 23, during my test I had removed the old bootcamp driver (which worked perfectly) via pnputil, reconnected the trackpad without driver, there it worked in the classic way in limited mode, then by installing the new bootcamp driver, the trackpad disconnects. Even when unpairing and re-pairing, the trackpad connects and then in the second disconnects.

WinkelCode commented 1 year ago

@provalinf I made a new version of the script: https://gist.github.com/WinkelCode/faa1d6000a4ec379e039110cbf97b8de You have to put it into the extracted "AppleBcUpdate" folder. (You don't have to use it, but it made the process a lot faster for me, and also should prevent accidentally removing the wrong drivers, still, use at your own risk!)

Here is what worked for me: (BT = Bluetooth settings in Windows)

  1. Remove Trackpad from BT if it is still there
  2. Disable BT
  3. Remove Trackpad drivers
  4. Enable BT
  5. Pair Trackpad (it works, but only basic functionality)
  6. Disable BT
  7. Install Driver
  8. Enable BT
  9. It works for a moment, then it stops and I get a notification to restart the PC
  10. Turn trackpad off/on
  11. Works as expected now

My iPad reports Firmware ver. 0860.0398.0192 MacBook Pro on Ventura reports: 1.9.2

Observation: The firmware versions from my first post make me suspect that 0860.0398 is static and 0192 equals 1.9.2 on iPad/macOS respectively.

I am using these drivers: https://swcdn.apple.com/content/downloads/03/60/041-96205/61hhcnj7q5dxosc171ytixty20vuqg0r0n/AppleBcUpdate.exe Mirror: AppleBcUpdate.zip The executable is signed by Apple of course. The installed driver reports the version as 6.1.8000.6 (up from .5 with the previous one, I also uploaded it earlier in the thread).

Edit 2: As for Firmware updates, based on my experience with getting the fixed firmware via my iPad, it for sure updates via Bluetooth, maybe they just didn't implement it via USB?

Edit 3: I also left the trackpad connected to my iPad for about an hour yesterday and didn't get any newer firmware beyond the one that fixed the issue for me back in October.

Edit 4: In two test runs my trackpad randomly became unresponsive after a period of time if I didn't restart my PC after installing the new driver, but this could've been coincidence. Restarting definitely won't hurt after messing with drivers in Windows.