mac-precision-touchpad icon indicating copy to clipboard operation
mac-precision-touchpad copied to clipboard

Request to work with Magic Trackpad 1

Open meeebee opened this issue 3 years ago • 29 comments

Pre-report checks

  • [ ] Have you checked (use search) Azure DevOps Board and Github issues for known bugs and plans? Yes, does not exist.

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] Would like to see this driver updated to work with Magic Trackpad version 1

Describe the solution you'd like A clear and concise description of what you want to happen. Would like to see the same driver used for the first version of Apple's Magic Trackpad 1.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here. Would probably be dependent on bluetooth support as Trackpad1 does not have USB option.

AB#650

meeebee avatar Oct 11 '20 18:10 meeebee

I would like Magic TrackPad 1 support as well. Can not use this driver. I uses generic mouse driver. I can move and click. No right.click even with modifiers

povlhp avatar Oct 29 '20 13:10 povlhp

There are only paid alternatives for TP1

fabeit avatar Nov 11 '20 12:11 fabeit

I'd also be happy to see support for Magic Trackpad 1!

lothar-cell avatar Feb 07 '21 10:02 lothar-cell

Can't you just use the Bootcamp Drivers for Magic Trackpad 1? https://support.apple.com/downloads/bootcamp-windows-drivers -> download Boot Camp Support Software -> Unpack Zip -> Install the drivers needed from within the zip, such as zip:BootCamp/Drivers/Apple/AppleWirelessTrackpad64.exe and AppleMultiTouchTrackPadInstaller64.exe

GenieTim avatar Jun 02 '21 11:06 GenieTim

Yes, that's what I use, but the right-click implementation is a pain, it misinterprets the taps. A very sloppy job from apple.

lothar-cell avatar Jun 02 '21 11:06 lothar-cell

+++ to mt1 support

MrJonhnny avatar Jun 10 '21 00:06 MrJonhnny

image

🤔 Sounds not too bad, will be added in the backlog.

imbushuo avatar Jun 12 '21 09:06 imbushuo

That‘s great! Thank YOU!

image

🤔 Sounds not too bad, will be added in the backlog.

AFuFred avatar Jun 20 '21 14:06 AFuFred

@imbushuo does this driver have Magic Trackpad 1 support or no? Its not clear from this thread as to weather this has been implemented since the last comment or not.

GraphicHealer avatar Jan 16 '22 23:01 GraphicHealer

I'd also really like to see this made to work with Magic Trackpad 1.

CottonEvoker avatar Feb 02 '22 11:02 CottonEvoker

Can't you just use the Bootcamp Drivers for Magic Trackpad 1? https://support.apple.com/downloads/bootcamp-windows-drivers -> download Boot Camp Support Software -> Unpack Zip -> Install the drivers needed from within the zip, such as zip:BootCamp/Drivers/Apple/AppleWirelessTrackpad64.exe and AppleMultiTouchTrackPadInstaller64.exe

Built-in MacBook Touchpad works nicely with https://github.com/imbushuo/mac-precision-touchpad/releases/tag/2105-3979.

Wireless Magic Trackpad 1 works almost as well with Bootcamp AppleWirelessTrackpad64.exe and the following registry flips in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID<find your VID PID from \Device Parameters per https://apple.stackexchange.com/questions/63598/invert-scrolling-on-windows-bootcamp/312504#312504.

"FlipFlopWheel"=dword:00000001
"FlipFlopHScroll"=dword:00000001

Disabling and reenabling the device is quick to get those registry changes to become effective, no need to reboot.

The mention of "almost" is because the Magic TP1 feels a bit jerky and doesn't behave as the built-in Touchpad.

For example, with the built-in Touchpad, I can swipe (two fingers swipe and let go) to scroll up/down and scrolling will slowly decelerate after fingers are lifted. With the Bootcamp driver, swiping in the same manner abruptly stops as soon as fingers are lifted up from Magic TP1, no slow deceleration, doesn't feel "natural".

alimas7 avatar Feb 09 '22 06:02 alimas7

Also click and drag is interpreted as two-finger click, unless left or right lower corner is used for clicking. This and no proper “rubberband” scrolling (or touch gestures) makes a restrained user experience.

lothar-cell avatar Feb 09 '22 07:02 lothar-cell

The other problem with the Boot Camp drivers is that they don't have any other gestures such as three finger drag, pinch and zoom, three and four finger gestures.

fabeit avatar Feb 09 '22 09:02 fabeit

100% agree, and payed alternatives have been capitalising this situation (even extramagic, which is a half-baked implementation anyway, as for magic utilities I despise subscription-based software).

lothar-cell avatar Feb 09 '22 09:02 lothar-cell

@imbushuo Here's finger data frame format for MT1, based on both linux driver as well as my own reverse engineering.

struct __attribute__((__packed__)) mt1_finger {
	SInt16 X: 13;
	SInt16 Y: 13;
        UInt8 Unk1: 3;
	UInt8 Unk2: 3;
	UInt8 Touch_Major: 8;
	UInt8 Touch_Minor: 8;
	UInt8 Size: 6;
	UInt8 TrackingId: 4;
	UInt8 Orientation: 6;
 	UInt8 FingerId: 4;
	UInt8 HoverState: 4;
};

Still not sure what unk1 and unk2 are though. They seem to be some sort of relative coordinates as unk2 increases as you drag finger right and up, and decreases as you go down and left. unk1 is similar but more sensitive.

Also it seems magic trackpad 1 is not that good at detecting finger id when compared to internal trackpad. It always misinterprets palm as thumb, which frequently leads to false taps.

krackers avatar Feb 13 '22 02:02 krackers

For completeness, here is header format

struct __attribute__((__packed__)) HEADER {
	UInt8 report_id: 8;
	UInt8 button_data: 6;
	UInt32 timestamp: 18;
};

Each frame consists of 4 byte header as above followed by 9 bytes of finger data as in other struct, as can be seen from linux driver.. Finally to enable multitouch mode you have to send a report to the trackpad, just as in mt2 I believe. Let me know if any other information is needed here, but I believe this should be sufficient to begin reading frames from the trackpad? There are other set/get reports that are sent during the initial handshake though, I don't know how to decode those yet. I'm guessing based on MT2 work that some probably include trackpad dimensions, but this should be a fixed constant so it's not really needed.

krackers avatar Feb 20 '22 05:02 krackers

+1, it would add a lot of utility to the older model.

GoldenJoe avatar Feb 25 '22 01:02 GoldenJoe

All for the Magic Tracpad 1 unite! And down with Magic Utilities! DOWN WITH STUPID SUBSCRIPTION SOFTWARE!!!!

GraphicHealer avatar Feb 25 '22 01:02 GraphicHealer

A new trackpad would be more expensive than donating - I'd be happy to implicitly pay for MT1 support!

bruder-grimm avatar May 01 '22 13:05 bruder-grimm

I would too, but it ended up being used on a mac and I cannot send it now. :(

GraphicHealer avatar May 01 '22 14:05 GraphicHealer

+1 for Magic Trackpad 1 support! Please make it happen, lots of us still have some of these lying around :)

fschuh avatar May 13 '22 04:05 fschuh

+1 and thanks for the awesome work

efouladi avatar Sep 24 '22 21:09 efouladi

Is there any hope to get this supported? It would be amazing

piereligio avatar Nov 20 '22 15:11 piereligio

I'd love to see this, recently got a Magic Trackpad 1 from a donation event and I'd love to be able to use it to its fullest on Windows.

superluig164 avatar Sep 29 '23 23:09 superluig164

I'd still like to see this too @superluig164 , but I think we need to keep expectations in check at this point.

Prior to your post it was 10+ months since this request last got a +1.

CottonEvoker avatar Sep 30 '23 00:09 CottonEvoker

I think it's better to add my opinion and hopefully one day it happens than to let the post get even more abandoned and give the impression that nobody is interested in the feature anymore. I'm not expecting it to happen tomorrow. Just adding my +1 to help.

superluig164 avatar Sep 30 '23 15:09 superluig164

+1 from me Actually, I would like to research into the possible solution, but don't quite know where to start, because I'm completely new to Drivers/Bluetooth stuff. For now I'm collecting some logs for my Magic Trackpad 1 using Microsoft Bluetooth Test Platform package and learning about Bluetooth reverse engineering as I have some free time on the weekends.

Maybe if someone with some knowledge is interested and we can communicate somehow (discord?) to slowly move towards the solution?

I guess it will be better than just waiting something to happen.

mikry13 avatar Nov 04 '23 07:11 mikry13

The mt1 frame layout is already fairly well reverse engineered, thanks to linux drivers. See https://github.com/imbushuo/mac-precision-touchpad/issues/358#issuecomment-1037691730. So not much reversing work should be needed, I think it's just a matter of someone hacking up this code to interpret the mt1 frames instead of the mt2 frames.

krackers avatar Nov 06 '23 02:11 krackers

+1

Would love to see the MT1 working on it's full glory on windows :)

anothermimich avatar Jan 14 '24 14:01 anothermimich