Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad

Status
Not open for further replies.
Haven't read the code and tested them on my hackintosh.

But it's very great to see more developers involved in.

Just curious why didn't you folk the old one and change it? Yes, I mean this one,
https://github.com/AppleLife/VoodooPS2

I tried to build it and make it work, but could not make the touchpad work. I was probably doing something wrong. It seemed like the xcode project was really old and wanted to use really old SDKs and other funky stuff I did not understand. On top of that, the keyboard part was working, but had some really strange stuff in it. For example, when you pressed the brightness down key on the ProBook the computer would restart abruptly. At that point, I gave up and started looking for something that was closer to the one we were using.
 
The log I gave you was recorded by clearing display in console, click the right button then copy all. I didn't see any lines with passthru packet.

Make sure you select "system.log", then filter for "ps2:"

I don't trust the "All Messages" System Log Query thing. That part of Console.app seems completely broken to me (as evidence if I filter for 'ps2:' there right now, I get nothing, but if I select system.log first, I get lots of lines).
 
works perfect(again),
thank you!
you should add a donate button
 
Hey -- I'm curious about something with your acer? Does pressing the key assigned to turn the trackpad on/off cause any problems? It is 'prt sc' or Fn+Del on the ProBooks... might be different on yours. If you find the key, it will disable/enable input from your trackpad... I'm just wondering if the special command I'm sending to manipulate the LED on the ProBooks causes any problems for laptops without it. Probably not, as you might have noted a problem on wake from sleep, but I thought I'd ask anyway...

Hi, using "PrtSc" on its own disables the trackpad for me, "FN + DEL" does nothing for me.
 
When I clicked buttons for track point once, I get normal logs as my previous post, no passthru packet. When I click two buttons left-right fast or click both at the same time. I get passthru packet log:
Code:
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (0,0) z=0 w=0 mode=(0,0,0) buttons=1 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8190,8191) z=0 w=0 mode=(0,0,0) buttons=1 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8190,0) z=1 w=0 mode=(0,0,0) buttons=1 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8190,8191) z=1 w=0 mode=(0,0,0) buttons=1 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (0,0) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8189,0) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8191,2) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8189,1) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (0,0) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (8191,8191) z=0 w=1 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (3087,512) z=18 w=6 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (915,3372) z=255 w=14 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: passthru packet (56,-159) buttons=3
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=69648184 (false)
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (3072,512) z=18 w=4 mode=(1,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (1184,3116) z=0 w=6 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (37,8037) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (3087,512) z=6 w=11 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (255,0) z=3 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (15,0) z=1 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (0,0) z=1 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (255,0) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (240,0) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0
Oct 17 15:36:30 Nguyens-MacBook-Pro kernel[0]: ps2: (0,0) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0

In some cases, it makes all the signal from touchpad to be buttons=3, and I can't click or right click anywhere, USB mouse is unusable too. To solve this, I have to put machine to sleep or click left-right-left-right.... buttons very fast until it becomes normal.
Code:
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1,3) z=0 w=0 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2,3) z=0 w=0 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1,1) z=0 w=0 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3,3) z=0 w=0 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1,4) z=0 w=1 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3855,767) z=19 w=15 mode=(0,0,0) buttons=2 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (7171,7094) z=214 w=9 mode=(0,0,2) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: passthru packet (169,-177) buttons=3
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355527765 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3855,512) z=19 w=15 mode=(2,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (4354,7043) z=211 w=9 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355547719 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3958,4238) z=0 w=0 mode=(1,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2816,512) z=6 w=15 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1028,1701) z=197 w=8 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355581628 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (4034,4222) z=0 w=2 mode=(1,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2816,512) z=8 w=8 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (417,3115) z=0 w=2 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (233,4229) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3072,512) z=8 w=7 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (3087,767) z=8 w=7 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1718,3372) z=254 w=0 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: passthru packet (43,-152) buttons=3
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355679112 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (512,512) z=8 w=11 mode=(1,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1686,3106) z=1 w=5 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: passthru packet (43,-168) buttons=3
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (527,512) z=21 w=5 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1682,3362) z=255 w=14 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (7979,4284) z=255 w=1 mode=(1,1,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355745806 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (527,512) z=22 w=6 mode=(1,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (641,3362) z=255 w=14 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355765756 (false)
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (7981,4229) z=0 w=0 mode=(1,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2816,512) z=15 w=4 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1429,3115) z=0 w=5 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (49,4261) z=0 w=0 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2816,512) z=12 w=7 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1429,3115) z=0 w=8 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (56,4259) z=0 w=2 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (2831,512) z=14 w=6 mode=(0,0,0) buttons=3 wasdouble=0
Oct 17 15:41:15 Nguyens-MacBook-Pro kernel[0]: ps2: (1431,3371) z=255 w=10 mode=(0,0,1) buttons=3 wasdouble=0
Oct 17 15:41:16 Nguyens-MacBook-Pro kernel[0]: ps2: now-touchtime=355865277 (false)

Pass through is not working according to the spec I have on your trackpad. I'll see if I get a response from synaptics. The next version of my kext will have an override where you can disable the checks for pass through mode. Also added is some extra information about the trackpad (model IDs, etc) that you get in debug system.log output. That will be useful to send as information to Synaptics... Maybe when I push my latest changes to github, you can build it and provide the debug output for me.

The reason your pass through packets are disabling the ability to click is because they are not in the format as documented, and so the code is getting confused and thinking the buttons are stuck down. I have actually seen this happen once on my trackpad, so I have added extra code to the next version to detect pass through capability, and guest device presence, so for the normal ProBook trackpad, all this pass through stuff gets turned off.

For your trackpad, for now though, I recommend you use it as a mouse (delete VoodooPS2Trackpad.kext). Perhaps even the next version of the mouse kext will have some of the 'accidental input while typing' features.
 
Maybe when I push my latest changes to github, you can build it and provide the debug output for me.

I pushed my latest changes to the git repo. If you build it and run the debug version, you will get something like this in your system.log:

Code:
Oct 17 05:59:07 localhost kernel[0]: VoodooPS2Trackpad starting: Synaptics TouchPad reports type 0x47, version 7.5
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Identify bytes = { 0x5, 0x47, 0x17 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: passthru1=0, passthru2=0, passthru=0
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: ledpresent=1
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Mode/model($1) bytes = { 0x14, 0x75, 0xc1 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Capabilities($2) bytes = { 0xd0, 0x0, 0x73 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Model ID($3) bytes = { 0x1, 0xe0, 0xb1 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: SN Prefix($6) bytes = { 0x0, 0x0, 0x0 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: SN Suffix($7) bytes = { 0x0, 0x0, 0x0 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Resolutions($8) bytes = { 0x33, 0x80, 0x4e }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Extended Model($9) bytes = { 0x64, 0x0, 0x0 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Maximum coords($D) bytes = { 0xb3, 0x6e, 0x98 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Deluxe LED bytes($E) = { 0x55, 0xe, 0xd6 }
Oct 17 06:10:45 localhost kernel[0]: VoodooPS2Trackpad: Minimum coords bytes($F) = { 0x20, 0xd2, 0x1a }

This is pretty much all the information that the trackpad can provide about itself. If you get a chance, try it and post your output here. Thanks!
 
Amazing stuff!
Working on HP DV7 6xxx series

LED On trackpad turning off through fn + space
Keypad lock through prt scrn
Better scrolling
Better ignoring of accidential input
Amazing kext

Are you working on getting pinch to zoom and other functions to work ?
 
I still prefer VoodooPS2Trackpad. I rarely use those track point stuff. Please focus on improving experience for trackpad :D
How can I test if "Accidental input while typing" function works?

"Ignore accidental trackpad input" is already implemented, but not for ps2mouse, just ps2trackpad. It is a bunch of different things:
- don't simulate button presses (left or right) 500ms after a key press
- don't process scrolling 500ms after key press
(QuietTimeAfterTyping in Info.plist)
- ignore trackpad input with really large Z values (Z corresponds loosely to pressure, but also tends to be large when both palms brush against the left and right side of the trackpad)
(ZLimit in Info.plist)
- ignore trackpad input for really large W values (W values are supposed to indicate multi-finger input, but when they 9 and above, they tend to correspond to palm brushing)
(MultiFingerWLimit in Info.plist)

If you want to be sure VoodooPS2Trackpad.kext never enables pass through processing, set SkipPassThrough to Yes in Info.plist (this is only available in code built from the repo, not current builds in Download section).

It would be interesting to see how your trackpad responds to some of the information queries. I'm will need that information to positively identify your trackpad in order to compose and email to Synaptics for information. Not only might I discover how to deal with pass through correctly, but maybe I'll figure out what your trackpad needs to fix wake from sleep.

I was thinking you might want to use VoodooPS2Mouse.kext because of the wake from sleep issue... unless you never put your trackpad to sleep.
 
This is really nice, thanks a lot! :)
 
RehabMan,
work perfectly man
Thanks!
 
Status
Not open for further replies.
Back
Top