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.
- Lenovo ELAN 33370A TouchPad (Rev.A S8974A, traditional mechanical design)
- XiaoMi book 2022 14/16 pro Goodix GT7863 TouchPad (Haptic Engine design)
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 complete pressure-sensing recognition (there is no pressure-sensing feedback adjustment).
Recommand to use XiaoMi Goodix TouchPad.
Demonstration.mp4
Demonstration_Mouse_Mode.mp4
Demonstration_Android.mp4
- TouchPad Main PCB:
- 2.4G Reciever:
- Appearance Design (modeling by SOLIDWORKS):
- System Application:
- 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)
- Recognized as a Microsoft Precision TouchPad
- ELAN TouchPad Support
- Goodix TouchPad Support
- 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 support
- Bluetooth wireleess mode support
Two fingers tap (equal to right click) can only trigger on laptop.
The triggering issue was caused by the missing of physical XY dimensions, and it has now been fixed.
To ensure the best compatibility among different touchpad devices, the receiver will not report the PHYSICAL coordinates in default. Some functions maybe unavailable.
If you ONLY use specific model touchpad, you can choose the model insdkconfigfrom2.4Gproject. For more details, please refer to "Setup & Configuration" section of the 2.4G receiver.Multi-Port HID compatibility design may not support on some old system, like Windows XP.
This was caused by a bug in the HID Descriptor I programmed, and it has now been fixed.
Cannot perform rapid and consecutive clicks.This was caused by missing of confidence & Tip in the HID message, and it has now been fixed.
- Due to processor limitation, Original PTP Mode can only support wire connect/2.4G wireless mode.
Bluetooth mode needs to use ESP32-S3.The new project ESP32 Haptic Precision TouchPad supports Bluetooth, 2.4G and wired connections. Still in development currently.
- Windows XP (Mouse Mode);
- 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)
Please go to wiki page for further detail.
- ESP32 Haptic Precision TouchPad - basing on TouchPad module for Surface Laptop Studio 1964 with feedback adjustment.
- R-SODIUM Precision TouchPad Configurator - GUI Manager for R-SODIUM Precision TouchPad Product series.