You are not logged in.

#1 2018-12-24 10:02:31

pagdot
Member
Registered: 2018-12-24
Posts: 7

[SOLVED] Goodix Touchscreen and Stylus share device

I have a Teclast F6 Pro Laptop with touchscreen and active stylus/pen support.

Touchscreen and stylus work out of the box, but they share the same device and input event.

Touchscreen works without problems, but because the stylus sends the same events it acts like a  touchscreen. Hovering with the stylus counts as clicking/touching instead of only moving the mouse pointer. I haven't tested it yet, but I'm pretty sure that also pressure levels are missing.

xsetwacom detects no device.

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Goodix Capacitive TouchScreen           	id=15	[slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver Mouse             	id=13	[slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver Consumer Control  	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ USB 2.0 PC Camera: PC Camera            	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=16	[slave  keyboard (3)]
    ↳ Goodix Capacitive TouchScreen           	id=18	[slave  keyboard (3)]
    ↳ Logitech USB Receiver                   	id=11	[slave  keyboard (3)]
    ↳ Logitech USB Receiver System Control    	id=12	[slave  keyboard (3)]
    ↳ Logitech USB Receiver Consumer Control  	id=17	[slave  keyboard (3)]
$ xinput list-props 15
Device 'Goodix Capacitive TouchScreen':
	Device Enabled (151):	1
	Coordinate Transformation Matrix (153):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix (306):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix Default (307):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Send Events Modes Available (271):	1, 0
	libinput Send Events Mode Enabled (272):	0, 0
	libinput Send Events Mode Enabled Default (273):	0, 0
	Device Node (274):	"/dev/input/event9"
	Device Product ID (275):	1046, 9111

Last edited by pagdot (2019-09-14 11:16:42)

Offline

#2 2018-12-28 19:44:27

gregkwaste
Member
Registered: 2014-07-01
Posts: 8

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I am sorry for being offtopic, but you're the most recent post that I have found regarding the same machine. I got my F6 pro today and I just installed Arch hoping that the latest kernels would support all devices, but I have issues with the touchpad.

[    3.092455] i2c_hid i2c-SYNA3602:00: i2c-SYNA3602:00 supply vdd not found, using dummy regulator
[    3.092475] i2c_hid i2c-SYNA3602:00: Linked as a consumer to regulator.0
[    3.092477] i2c_hid i2c-SYNA3602:00: i2c-SYNA3602:00 supply vddl not found, using dummy regulator
[    3.095744] i2c_hid i2c-SYNA3602:00: unexpected HID descriptor bcdVersion (0x00ff)

Besides the issue with the touchscreen, does that touchpad work fine for you?

Last edited by gregkwaste (2018-12-28 19:45:15)

Offline

#3 2018-12-28 20:20:40

pagdot
Member
Registered: 2018-12-24
Posts: 7

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Which Kernel exactly?
4.19 from Core or 4.20 from Testing?

I've only installed Arch recently and planned to wait until 4.20 is released in Core because this Kernel version should fix the touchpad issue. I haven't fixed it myself.

Else I would recommand creating a new Thread or take a look at this forum: https://techtablets.com/forum/forums/te … st-f6-pro/

Last edited by pagdot (2018-12-28 20:21:18)

Offline

#4 2019-01-05 19:34:24

gregkwaste
Member
Registered: 2014-07-01
Posts: 8

Re: [SOLVED] Goodix Touchscreen and Stylus share device

@pagdot, I resolved the issue with the touchpad (I'm Greg from the techtablets forum XD). And right now I'm exactly stuck at our problem. I'm trying to identify the stylus but it is just passive.

have you made any progress? I'm trying to figure out if it is the touchscreen driver's fault or if we should be able to support the stylus pen using libwacom.

Offline

#5 2019-01-05 19:42:00

pagdot
Member
Registered: 2018-12-24
Posts: 7

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I've got the touchpad fixed with the kernel update and tried to dig a bit deeper into the touchpad + stylus issue. They seem to share the same input device. I think we would have to debug and patch the i2c_hid driver and also extend the input-wacom driver to support the stylus.


I've learnt a little bit about linux driver development, but haven't much time atm because univercity and other projects of mine. So I won't dig deeper now.

Offline

#6 2019-01-05 21:50:51

gregkwaste
Member
Registered: 2014-07-01
Posts: 8

Re: [SOLVED] Goodix Touchscreen and Stylus share device

pagdot wrote:

I've got the touchpad fixed with the kernel update and tried to dig a bit deeper into the touchpad + stylus issue. They seem to share the same input device. I think we would have to debug and patch the i2c_hid driver and also extend the input-wacom driver to support the stylus.


I've learnt a little bit about linux driver development, but haven't much time atm because univercity and other projects of mine. So I won't dig deeper now.

I am still not sure if its the wacom driver or the i2c_hid_driver or the goodix-ts driver. But either way, at least I can't patch them without any help lol. I filed a bug report on the kernel bugzilla page, if I have any responses I'll post here.

Offline

#7 2019-01-28 22:40:01

ugo21
Member
Registered: 2019-01-28
Posts: 2

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Is there any kernel bug report link that I can follow up on too?
I got the Teclast F6 Pro too, bought the stylus, and confirm that pressure levels are not recognized and approaching the screen with the stylus generates a continuous touch.
But unfortunately I am not a kernel dev at all.

Offline

#8 2019-09-04 17:51:13

Adya
Member
Registered: 2019-09-04
Posts: 5

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Hello,

I personally have a Chuwi Surbook which also features a Goodix Capacitive Touchscreen product ID 9111 just like your Teclast F6 does.

After some research, I found the official Goodix GitHub which hosts repositories of Android drivers for their touchscreen controllers.
The one that we both have should be supported by the gt9xx driver.
However, even with the help of the porting guide in the repo, I didn't manage to port the driver to my x86_64-architecture tablet.

I decided to analyse the content of the source files to try and merge the relevant code into the mainline Linux driver for the Goodix touchscreen controllers.
By doing so, I managed to have a working driver that creates a new logical input device for the pen, in addition to the one for the touchscreen which works perfectly as it is.
Long story short, the pen is working as it is expected to be on my machine.

You can get the modified driver by cloning my repo at: https://gitlab.com/AdyaAdya/goodix-touc … nux-driver
The steps to follow are thoroughly described in the README.md.
I hope this will work for you as well, or at least help you understand how to make it work for your machine.
If it does work, I'd gladly appreciate if you let me know so I can indicate that it supports your machine in addition to mine.

Offline

#9 2019-09-05 17:21:26

pagdot
Member
Registered: 2018-12-24
Posts: 7

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I'm looking forward to testing it, but the battery in my pen seems to have died and I need to get a new one

Offline

#10 2019-09-06 13:36:18

Adya
Member
Registered: 2019-09-04
Posts: 5

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I just understood why I couldn't get the stylus buttons to work. It was just of a stupid mistake in my code, I was checking a nibble away from the bits that I wanted to evaluate...
Anyway, now it's fixed and works on my machine at least. I pushed the update to the repo.

Note: the stylus buttons' state is only reported by the controller when the tip of the pen is in contact with the touchscreen frame. At first, I found it weird but then, I went to try on Windows, where the pen works out of the box, and it does seem to work that way. So I guess if we want to use the buttons on the stylus, we have to touch the screen with the tip of the pen in addition to pressing the button(s).

Offline

#11 2019-09-06 13:39:24

pagdot
Member
Registered: 2018-12-24
Posts: 7

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Adya wrote:

Note: the stylus buttons' state is only reported by the controller when the tip of the pen is in contact with the touchscreen frame. At first, I found it weird but then, I went to try on Windows, where the pen works out of the box, and it does seem to work that way. So I guess if we want to use the buttons on the stylus, we have to touch the screen with the tip of the pen in addition to pressing the button(s).

I've had troubles in Windows when using the buttons. Now I know why...

Offline

#12 2019-09-12 21:37:28

pagdot
Member
Registered: 2018-12-24
Posts: 7

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Took me some time, but I finally was able to test it. I've had to apply the troubleshooting step, but the it worked flawless!

Thanks for fixing it smile Do you plan to create a merge request for the Linux Kernel?

Offline

#13 2019-09-13 14:46:04

Adya
Member
Registered: 2019-09-04
Posts: 5

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Very glad to hear that it works smile

I don't really know for now. I might do it in the future, but at the moment the code is a bit messy and could use a bit of cleaning up and optimization.
So yeah, until it's merged in mainline Linux, every time you update your kernel or kernel headers, you need to recompile and reinstall the driver, as it will be overridden by the official one.
Btw, I had some issues when doing so, caused by the "Module.symvers" file apparently, I'm adding an entry in the "Troubleshooting" section of the README.md, if the same issue occurs for somebody else.

If I ever create a merge request, I'll post a link to it on this forum thread.

If you consider the initial issue for this topic as solved, you could prepend the title by a "[Solved]" tag to inform new readers that a solution has been found.

Offline

#14 2019-09-27 12:13:40

Adya
Member
Registered: 2019-09-04
Posts: 5

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Here's the up-to-date list of reportedly-tested supported devices (edited every time a new one comes to my knowledge):

- Chuwi Surbook
- Jumper EZPad Go
- Teclast T6 Pro Laptop
- One Netbook One Mix 1S and One Mix S2

Last edited by Adya (2019-10-08 10:49:39)

Offline

#15 2019-10-05 13:36:36

pataphysician
Member
Registered: 2010-09-04
Posts: 46

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I have installed Adya's module on One Netbook's One Mix 1S and One Mix 2s which have the Goodix touchscreen and pen, and it works well. Also my pen can use the buttons when not touching, if I'm hovering. Also the stock kernel module often caused erroneous double touch events with pure finger touch, but Adya's module got rid of this problem significantly, I only very rarely get erroneous double touch now. so excellent work, I really appreciate it.

Last edited by pataphysician (2019-10-05 13:37:54)

Offline

#16 2019-10-08 11:03:10

Adya
Member
Registered: 2019-09-04
Posts: 5

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I'm glad to hear that it works on your devices as well smile

Just a heads-up about recent Linux graphical environment updates. I don't know what exactly made it stop working properly but, since I updated yesterday, the stylus keeps on being reported on the screen somewhere else than it actually is. No matter the tweaks I tried at the module level or udev level, I can't get it fixed. I suspect the problem to come from the latest versions of libinput, or GNOME (on Wayland), or maybe a graphical tool kit.
If you encounter the same issue, try switching desktop environment (even GNOME on Xorg is working while GNOME on Wayland is not), it did the trick for me.

Last edited by Adya (2019-10-08 11:04:11)

Offline

#17 2019-10-12 00:37:29

pataphysician
Member
Registered: 2010-09-04
Posts: 46

Re: [SOLVED] Goodix Touchscreen and Stylus share device

I'm actually using opensuse tumbleweed on this devices right now, and Plasma 5 on x11, which all work fine, but decided to try Plasma 5 on Wayland to see if I could reproduce the problem you had, on Plasma Wayland the pen doesn't work at all. This is with kernel 5.3.4, but if I boot with kernel 5.3.1, the pen works fine in Plasma Wayland. So the problem with Wayland seems to be related to kernel changes.

Offline

#18 2019-10-14 21:07:33

gustl64
Member
Registered: 2019-10-14
Posts: 1

Re: [SOLVED] Goodix Touchscreen and Stylus share device

Using Mint 19.2: Kernel 4.15 and 5.0, cinnamon and xfce: pen doesn't work (Chuwi surbook)

Last edited by gustl64 (2019-10-14 21:08:32)

Offline

#19 2019-10-20 12:00:20

ugo21
Member
Registered: 2019-01-28
Posts: 2

Re: [SOLVED] Goodix Touchscreen and Stylus share device

TEsted on a Teclast F6 Pro running Linux Mint 19.2 (Cinnamon / Xorg) with following kernels:
- original 5.0.0-32
- a custom build 5.3.7.
The stylus is not working on these kernels. (works in buggy mode if the original goodix kernel module is used).
In fact althrough the pen is registered correctly in the libinput outputs, no events are produced by it:

-event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
-event5   DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
-event0   DEVICE_ADDED     Lid Switch                        seat0 default group3  cap:S
-event2   DEVICE_ADDED     Power Button                      seat0 default group4  cap:k
-event1   DEVICE_ADDED     Sleep Button                      seat0 default group5  cap:k
-event7   DEVICE_ADDED     2.4G Mouse                        seat0 default group6  cap:p left scroll-nat scroll-button
-event10  DEVICE_ADDED     USB 2.0 PC Camera: PC Camera      seat0 default group7  cap:k
-event8   DEVICE_ADDED     SYNA3602:00 0911:5288 Touchpad    seat0 default group8  cap:pg  size 105x70mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on
-event9   DEVICE_ADDED     Goodix Capacitive TouchScreen     seat0 default group9  cap:kt  size 1x1mm calib
-event11  DEVICE_ADDED     Goodix Active Stylus Pen          seat0 default group10 cap:T  size 1x1mm calib
-event12  DEVICE_ADDED     HDA Intel PCH Mic                 seat0 default group11 cap:
-event13  DEVICE_ADDED     HDA Intel PCH Headphone           seat0 default group11 cap:
-event14  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=3       seat0 default group11 cap:
-event15  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=7       seat0 default group11 cap:
-event16  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=8       seat0 default group11 cap:
-event17  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=9       seat0 default group11 cap:
-event18  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=10      seat0 default group11 cap:
-event4   DEVICE_ADDED     AT Translated Set 2 keyboard      seat0 default group12 cap:k

Offline

Board footer

Powered by FluxBB