onitake / gsl-firmware

Firmware repository for Silead touchscreen controllers
323 stars 201 forks source link

Help--no multitouch #68

Open maximumsomething opened 6 years ago

maximumsomething commented 6 years ago

On my Teclast x3 plus tablet, I've installed the firmware and the gslx680 driver, and touch with a single finger works, but multitouch gestures don't. xinput test with multiple fingers never shows more than one "button press" at a time. I was wondering if this is an issue with known workarounds.

G-Michel commented 6 years ago

have you tried the multitouch into chromium browser because all the software don't support multitouch into linux the only desktop enviroment that supports correctly touchscreeen is gnome 3

maximumsomething commented 6 years ago

I can assure you it's not an application issue. I have tried it in Chromium. Even in android-x86, the same problem exists.

maximumsomething commented 6 years ago

I have solved the issue by using Linux's silead driver instead of the gslx680 driver, (the firmware must be named /lib/firmware/silead/mssl1680.fw) and calibrating it with the calibration matrix: 2.087 0 0 0 2.7 0 0 0 1

e.g. xinput set-prop "silead_ts" --type=float "Coordinate Transformation Matrix" 2.087 0 0 0 2.7 0 0 0 1

However, a problem still exists. There seems to be "gaps" in the touchscreen. As you move your finger down the screen, the cursor moves slowly, then jumps forward. Also, the capacitive start button doesn't work.

onitake commented 6 years ago

I'm almost 100% sure that this is a firmware issue, not a driver one. The driver pretty much takes whatever it gets from the hardware, scales it and passes it to the input subsystem. If you see "holes" in finger movement, this means that the calibration data in the firmware blob does not match your panel precisely.

maximumsomething commented 6 years ago

The multitouch problem was solved by switching drivers, so even if it is a firmware issue, it's a driver issue as well. I will try and extract the firmware from my device and see if it works differently from the firmware in this repository.

maximumsomething commented 6 years ago

The firmware that I extracted from the SileadTouch.sys from my machine is exactly the same as the firmware in this repository. Maybe there is some special calibration done in the Windows driver software? Or, maybe the wrong firmware was extracted? (I used the command linked from the Readme.)