Skip to content

A touchpad peripheral device based on ESP32 + specific laptop TouchPad. Compatible with Microsoft Precision TouchPad (PTP) standard. Supported Windows Touch Gesture. Supported Taptic Engine.

License

Notifications You must be signed in to change notification settings

barryblueice/ESP32-Precision-TouchPad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

199 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | Simplified Chinese

image

What's This?

A touchpad peripheral device based on ESP32-S2 + specific laptop TouchPad.

  • Compatible with Microsoft Precision TouchPad (PTP) standard.
  • Supported Windows Touch Gesture.
  • Supported Taptic Engine.

    Taptic Engine still in development.

Also include a HP fingerprint module, in order to support fingerprint for Windows Hello.

Currently Touchpad Support (already tested):

  • Lenovo ELAN 33370A TouchPad (Rev.A S8974A, traditional mechanical design)
  • XiaoMi book 2022 14/16 pro Goodix GT7863 TouchPad (Partly support)

Hardware OpenSource Link:ESP32-Precision-TouchPad

Caution

Hardware & software only support the models of the touchpad mentioned above, untested touchpad models may be incompatible.
Use of such models can lead to driver failure or permanent hardware damage caused by short circuits!

Important

The pressure-sensitive touchpad promoted by Xiaomi merely replaced the traditional mechanical structure with a pressure-sensitive motor trigger. It is not a genuine pressure-sensing recognition (there is no pressure-sensing data).
Due to the lack of relevant data, the reverse engineering of Goodix is currently underway.
The reverse engineering of the HID Descriptor has been completed, as well as the optimization of the translation of touch HID messages and the report has been submitted, but the touch algorithm needs to be optimized.

PTP Mode Demonstration:

Demonstration.mp4

Mouse Mode Demonstration:

Demonstration_Mouse_Mode.mp4

Android Demonstration:

Demonstration_Android.mp4

Application:

  • TouchPad Main PCB:
image image
  • 2.4G Reciever:
image image
  • Appearance Design (modeling by SOLIDWORKS):
image image image
  • System Application:
image image

TODO List:

Hardware:

  • PCB Design
  • Material Selection
  • Appearance Design (Modeling by SOLIDWORKS)
  • Adding battery to support 2.4G wireless (Fingerprint module is unavailable during 2.4G wireless state)
  • Adding battery to support wireless Bluetooth (Fingerprint module is unavailable during bluetooth wireless state)
  • Adding ThinkPad TrackPoint Mouse Pointer (There are no current plans for this function update)
  • Adding specific function button (There are no current plans for this function update)

Software:

  • Recognized as a Microsoft Precision TouchPad
  • Driving ELAN TouchPad
  • Switching From Mouse Mode (Only One Finger) to Absolute Mode (Supported Multi Finger), thanks to @ApprehensiveAnt9858
  • Single Touch Support
  • Multi Touch Support
    • Scroll Gesture Support
    • Single Tap Support
    • Multi Tap Support (It might fail to trigger occasionally)
  • Physical Buttons Support (left click & right click)
  • Changing from freertos polling to GPIO interrupt
  • Add a new HID port to support Mouse Mode compatibility.
    (available for some old systems/BIOS that doesn't support PTP, like Windows 7)
  • 2.4G wireless mode development
  • Bluetooth wireleess mode development

Current Issues:

  • Two fingers tap (equal to right click) can only trigger on laptop.

    Regarding the solution for triggering double-finger touch on a Desktop PC, please refer to System Tuning Guidelines.

  • Multi-Port HID compatibility design may not support on some old system, like Windows XP.
  • Cannot perform rapid and consecutive clicks.
  • Due to processor limitation, Original PTP Mode can only support wire connect/2.4G wireless mode.
    Bluetooth mode needs to use ESP32-S3.
  • XiaoMi book 2022 14/16 pro Goodix GT7863 TouchPad requires more algorithm support and optimization.
    The current operation is rather sluggish, not as smooth as the ELAN touchpad.

Current Support System (already tested):

  • Windows 7 (Mouse Mode), Windows 10/11 (PTP Mode);
  • Ubuntu 22.04 or newer (PTP Mode);
  • Oxygen OS 17 (based on Android 16) on PHK110 (PTP Mode);
  • HP / MSI BIOS (Mouse Mode)

About Solution Implementation

Please go to wiki page for further detail.


Related derivative projects:

  • Still in development progress

About

A touchpad peripheral device based on ESP32 + specific laptop TouchPad. Compatible with Microsoft Precision TouchPad (PTP) standard. Supported Windows Touch Gesture. Supported Taptic Engine.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published