-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Force-Feedback #3
Comments
Hi @poisonnuke Look at magicmouse_emit_touch to see the 9 bytes finger report are:
I am pretty sure,that x,y, touch_major and touch_minor are correct, but the rest may contain errors. You can debug the 9 bytes finger report and check, if it works for you. Regarding force-touch you can look at this driver from ponyfleisch,which makes use of force touch in bluetooth: |
What tool did you use for to figure out the headers and length of finger report? I'd like to try to make the magicmouse2 work with this driver. Also, can we merge ponyfleish's force touch work back into this driver so that we can mainline all the features? |
I managed to get magic mouse 2 to register with hid_magicmouse now. However, scrolling isn't working. How did you reverse engineer that part of the protocol? |
@rohitpid when i first started with the magictrackpad 2 i connected it to windows and used wireshark to sniff the USB communication to see how Trackpad++ switches to multi finger reporting, during development i compared the outcome with the trackpad of my macbook. Later i also used a Beagle USB to sniff the USB communication on Mac OSX. But there is also a apple tool to sniff the communication called Packet Logger. I haven't tested it, but @ponyfleisch used it for looking at the bluetooth protocol. The bluetooth and USB protocols are different. |
@robotrovsky I have basic working changes for magic mouse 2 now! |
@rohitpid have you found something regarding the haptic feedback engine? |
@poisonnuke nope I haven't looked at it yet sorry. |
@robotrovsky where you able to create a new usb-trace recently? because I have no MacOSX where Wireshark works and no Beagle too. And as mentioned, I cant find any valid USB-Request in your last trace :( |
@poisonnuke i am sorry, but i have no other usb-trace |
@poisonnuke Have you seen #28? |
After reading the code of @mwyborski @dos1 @ponyfleisch , I added support to change click pressure and haptic feedback for magic trackpad 2 based on mainline driver. It works on both usb and bt. https://github.com/nexustar/linux-hid-magicmouse |
@nexustar any plans for mainlining your changes? |
@nexustar Any reason to rely on host clicking? Back when I was figuring this stuff out I pursued a solution with device clicking because host clicking increases latency, which was especially noticeable over Bluetooth. The main reason I didn't send my code upstream so far was because it uses |
Nevermind the stability issues - looks like it may have been fixed in torvalds/linux@4fb1251 and torvalds/linux@4b4f6ce which means it wasn't my fault :) |
The click type setting on macOS changes pressure threshold as well, not just feedback strength. It may be doable with device clicking, but not sure - macOS seems to use host clicking as well and settings there only affect feedback when using the same touchpad in linux, and none of the values in the message that sets feedback seems to change the threshold. |
you are right |
|
That might be in scope for https://github.com/libratbag/piper/ (https://github.com/libratbag/libratbag) :) |
Looks like https://github.com/dos1/Linux-Magic-Trackpad-2-Driver allows for changing the haptic feedback without host clicking. I didn't notice changes in sensitivity doing this. |
Hello @robotrovsky
may I ask in the first play, how you where able to determine all the values for the driver? Reverese-Engineering by intercepting the communications?
I am interested in the force-feedback functionality, disabeling the default force-touch and sending my own events. If possible with different profiles.
The text was updated successfully, but these errors were encountered: