Technologies:

Electronics Boardview Plist


[TODO]

- figure out how to put the device in sleep while the laptop sleeps
- figure out the 5v and 3.3V points on the ASUS MB
- figure out how to integrate the sleep of the device with the sleep laptop


Hackintoshing a laptop and then hitting the big bump in the road that is the touchpad that is PS2 and then no gestures and hacky drivers I decided to take the hardware approach:

The touchpad till 2015 uses SPI or USB. The toggle is done via an ACPI call. The CY8C24794 does the convertion from SPI to USB [datasheet]. You need to connect TPAD_VBUS_EN on the CY8C24794 (pin 4) to HIGH to enable the USB communication.
You will also need to LOW the buttons via BUTTONS_DISABLE so that you can actually click.

I used a LM1117 to power the CY8C24794 and the touchpad at 3.3v , and the 5v straight from USB to power the touchpad electronics and the boost circuit for the actual touch.
The Motherboard part is recycled from a dead MB pro 2012.

The main downside at this point is that the device is not connected to the SMC and will not show up in Preferences.
To configure the device as a workaround you can use MagicPrefs or BetterTouchTool.

Another workaround is to work with the user's defaults. You can find all the setting under
defaults read com.apple.AppleMultitouchTrackpad:
{
ActuateDetents = 1;
Clicking = 1;
DragLock = 1;
Dragging = 1;
FirstClickThreshold = 1;
ForceSuppressed = 0;
HIDScrollZoomModifierMask = 1048576;
SecondClickThreshold = 1;
TrackpadCornerSecondaryClick = 0;
TrackpadFiveFingerPinchGesture = 2;
TrackpadFourFingerHorizSwipeGesture = 2;
TrackpadFourFingerPinchGesture = 2;
TrackpadFourFingerVertSwipeGesture = 2;
TrackpadHandResting = 1;
TrackpadHorizScroll = 1;
TrackpadMomentumScroll = 1;
TrackpadPinch = 1;
TrackpadRightClick = 1;
TrackpadRotate = 1;
TrackpadScroll = 1;
TrackpadThreeFingerDrag = 0;
TrackpadThreeFingerHorizSwipeGesture = 2;
TrackpadThreeFingerTapGesture = 0;
TrackpadThreeFingerVertSwipeGesture = 2;
TrackpadTwoFingerDoubleTapGesture = 1;
TrackpadTwoFingerFromRightEdgeSwipeGesture = 3;
USBMouseStopsTrackpad = 0;
UserPreferences = 1;
version = 12;
}


The final step will be to integrate and replace my touchpad with the macbook pro and develop a prefpanel for it.

UPDATE 03/03 - reduced the size even more

Next step would be to sniff the I2C between the SMC and the touchpad on a working model (maybe try to inject into FakeSMC so enable the original prefpane)
It might not be a good approach to sniff the I2C...the device functions OK, the access to the config part is the problem, either inject into FakeSMC somehow and see if that triggers the panel OR just do a PrefPane that will access defaults read com.apple.AppleMultitouchTrackpad directly. The only downside of using defaults is that you need to reboot for the settings to take effect.