Jump to content

Refined ALPS TouchPad driver


Dr. Hurt

Recommended Posts

Last update: 28 October 2020

 

A refined ALPS touchpad driver based on the work RehabMan, bpedman, and many others.

Thanks to usr-sse2 for sierra fixes.

 

The aim of this project is to provide a stable, full-featured ALPS touchpad driver for the Mac OS.

The core of the driver has been updated to Linux 4.7 which made significant improvements to the usability of ALPS touchpads (even on Linux!!).

 

Driver Features:

- Supports ALPS hardware versions V1-V5

- Supports Mac OS X 10.6 to macOS 10.15

- 1-finger tapping.

- Side (edge) scrolling (Vertical with inertia, and Horizontal).

- 2-finger tap for right click.

- 2-finger scrolling (vertical and horizontal with inertia).

- 3 and 4-finger gestures (V3+, check the log to find out your hw version).

- Pointer acceleration and smoothing.

- Trackstick (movement and scrolling).

==========================================

 

Changes:

- Touchpad initialization, packet decoding and processing updated Linux 4.7

- Bitmap processing overhauled. Can now provide coordinates for 2 fingers simultaneously.

- Added new device ids for better compatibility.

- Remove hardcoded variables allowing userspace (plist) settings to apply.

- Painstakingly optimized default settings to provide the best possible experience.

- Improve pointer motion calculation, mode switching,… etc.

- Lots of code cleanups, refactoring.

- Clean up the IOLog.

 

FAQs:

1- On Sierra, TouchPad settings (clicking, 2 finger scroll,..)  are not saved across reboots?

Use the attached "Touchpad Settings" app as a startup app and it'll load the settings on startup.

Apple changed something in Sierra that broke compatibility with the base PS2 driver. Apple has yet to document the cha ges, and thus RehabMan (PS2 driver dev) hasn't fixed it yet.

 

2- Keyboard function keys are not working or are messed up?

Again, Apple changed something in Sierra without documenting it. No fix yet. 10.12.1 helps!!

 

3- The touchpad doesn't work as well as on Windows?

Unfortunately, the Linux driver for ALPS touchpads is not too good. Can't do anything about that. 

 

4- How to enable/disable edge scrolling?

set vscrolldivisor and/or hscrolldivisor to 13 (enable) or 0 (disable) in the info.plist

 

5- How to customize 3/4-finger gestures?

In system preferences, go to keyboard > shortcuts > double click an action to change its shortcut, perform a swipe and it'll be saved.

 

Source:

https://github.com/DrHurt/OS-X-ALPS-Driver

 

Release 4.zip Release 5.zip Touchpad Settings.zip

 

 

Edit (Hervé, Nov 2017):

- For Alps V7 & V8, the following Release 6 versions can be tested (unfinished dev). Previous versions V3-V5 still fully supported.

- Beta versions post R6B6 are understood to cause issues on wake. This is not experienced with latest R6 compiled by Bronxteck.

- Those versions have tracksticks disabled.

- R6 versions supports the vanilla TrackPad PrefPane (no empty gray screen) on Sierra and above, i.e. no need to replace it with older 10.11.6's version (237MB).

 

* R6 Beta:

* R6 Release Candidate:

* Latest R6 version (compiled by Bronxteck) - recommended version:

 

NB: to check if the driver identifies your Alps TrackPad, user the following Terminal command

log show | grep ALPS
  • Like 9
Link to comment
Share on other sites

  • Moderators

Hi Ahmad,

 

First off, thanks for the contribution. All or most of the systems I have are Dell Latitudes and uses Alps touchpad, so this will be great solution if it could supports them.

I have tested your version on V3 (Rushmore Variant).

ID E7=0x73 0x03 0x0a, EC=0x88 0x08 0x22

 

The keyboard works, but not the touchpad or trackstick (not detected). Tested on El Capitan Beta by the way.

The previously version I've been using works, it's the version by rehabman/bpedman/sontrg/npjohnson/yeahoon.

Hopefully you can fix this, let me know what you need to help continue this effort.

 

Also I have an Alps V7, would you be adding this in the future?

 

Update:

Also not detecting Touchpad for V3 (Rushmore Variant)

ID = 0x73 0x03 0x0a, EC = 0x88 0x08 0x1d

  • Like 1
Link to comment
Share on other sites

I disabled the TrackStick code intentionally because I didn't like the way it was coded and didn't think anyone actually had it. I guess I'll re-enable it as-is for now and refactor later. 
 
As for adding V7, I'll try if there are enough people with the hw. It's a massive job of filtering out linux-specific code, refactoring for xcode, debugging and working around mac/xcode quirks.

 

Update:

 

Is the Trackstick on the same system with the Rushmore Touchpad?

 

Anyway, here's an updated version with the trackstick code reenabled. If that works I'll push the fix to github.

VoodooPS2Controller.kext.zip

Link to comment
Share on other sites

  • Moderators

I use the trackstick more than I do the touchpad, I especially like the middle button scrolling. Re-enabling that would be great.

Newer models of the Latitude perhaps even Inspiron with Broadwell chipset, I believe will have the version 7 Alps.

Link to comment
Share on other sites

  • Moderators

- Both versions KP on system with V7, ID E7=0x73 0x03 0x0a, EC=0x88 0xba 0x2a

 

- Keyboard/Trackstick works with new version, but still no touchpad for ID E7=0x73 0x03 0x0a, EC=0x88 0x08 0x22 (Rushmore) - Same system by the way

The speed is crazy fast, had to set to 0 in System preferences. But still have some minor issue where the cursor won't stop at the target. You have to slowly move to get to the target. The middle scroll works pretty well. Double click have to be slow down as well.

 

- Touchpad and Keyboard not working - V3 ID= E7=0x73 0x03 0x0a, EC=0x88 0x08 0x1d (no trackstick for this system)

 

- Keyboard/Touchpad/trackstick work with V3 ID = E7=0x73 0x02 0x64, EC=0x88 0x07 0x9d

Trackstick is again going too fast. If track speed set to 0, the touchpad speed is very slow

Link to comment
Share on other sites

It's getting late here, so I can't think straight. Sorry about the KP!!
 
Here's another test:
Driver should now report V7 then correctly quit. (to avoid KP).
Driver will now divide trackstick speed by 8 (might need to change that if it becomes too slow)
 
Did all of those systems work with the old driver?
Does the driver say "Found ALPS Touchpad" in the log on the non working systems?
 
I'll be back tomorrow.

VoodooPS2Controller.kext.zip

Link to comment
Share on other sites

  • Moderators

Thank you for the update

 

- Still KP on the V7 system, could be because it's on El Capitan.

- Trackstick speed is better, but now touchpad stopped working. I guess due to the speed. 

- New issue, when lift finger from the trackstick, the cursor jumped about an inch to the right diagonally upward

 

Yes, the old kext from Yeahoon/Sontrg/bpedman works on all the models, the trackstick scrolling doesn't work for V7.

Works quite well except double clicking is a bit annoying. When you click on a file/folder, instead of selecting it, it double clicks it. I guess it's a bit sensitive or tapping speed is too fast. Never got the sorted out and Sontrg left the project.

Link to comment
Share on other sites

This is really strange because I haven't done much change to the way V1-V5 are detected/initialised. 

 

I think I have an idea why trackstick scrolling is not working with bpedman's (or my) version. We'll get to that later.

 

For this update: 

Reverted the detection/initialisation code back to latest bpedman code. Removed all the V6,7,8 code for now till I find a better way.

Fixed a typo I made while enabling the Trackstick, maybe it was the cause of the pointer jump.

Changed the way we divide speed by 8 (hope that doesn't backfire).

 

Thanks for helping with the debugging.

VoodooPS2Controller.kext.zip

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...