Touchscreen tab to click still requires double tap

Hi,

we have a densitron display together with a goodix-911 touchscreen.
When I run chromium under weston a single tab on the touchscreen does not lead to a ‘click’. To attain a single click (not only on the web page but also in chrome menus) a double tab is required.
I already set enable-tap=true in weston.ini in the libinput section. But this does not have any effect.

Multitouch (interactive zooming with two fingers) works, but a single click does not work. I would prefer to disable multitouch completely and all other fancy stuff like 2 fingers might be interpreted as right click.

The settings of the gooidx can also be configured via firmware but I am not quite sure if configuring the firmware works correctly under BSP 5.6 whereas it did under 2.7 (although reporting the following error as well: Direct firmware load for goodix_911_cfg.bin failed with error -2)

 dmesg |grep Good
[    0.615761] Goodix-TS 2-0014: 2-0014 supply AVDD28 not found, using dummy regulator
[    0.615860] Goodix-TS 2-0014: 2-0014 supply VDDIO not found, using dummy regulator
[    0.735152] Goodix-TS 2-0014: ID 911, version: 1060
[    0.735244] Goodix-TS 2-0014: Direct firmware load for goodix_911_cfg.bin failed with error -2
[    0.760381] input: Goodix Capacitive TouchScreen as /devices/soc0/soc/2100000.aips-bus/21a8000.i2c/i2c-2/2-0014/input/input0

content of /etc/xdg/weston/weston.ini:

[core]
#gbm-format=RGB332
#gbm-format=argb8888
idle-time=600
require-input=false
#use-g2d=1
xwayland=true
shell=kiosk-shell.so

[libinput]
touchscreen_calibrator=true
calibration_helper=/usr/bin/save-calibration.sh
enable-tap=true
#tap-and-drag=false
#tap-and-drag-lock=false
#middle-button-emulation=true

Best,
Matthias

Apalis iMX6DL 1GB V1.1A
Custom Board
Linux BSP 5.6

Hi @mkock !

In your message, I read “tab” and “tap”, but seems like something is not making sense.

Could you please double-check your initial message and maybe correct the tab x tap?

Thanks a lot.

Hi henrique,

thanks for your reply!

I can not edit the text or delete the post so I answered again. Is there an other possibility?

Best,

Matthias

Hi henrique,
thanks for you replay. There seems no way to edit the existing post so let me post the corrected text here:

we have a densitron display together with a goodix-911 touchscreen.
When I run chromium under weston a single tap on the touchscreen does not lead to a ‘click’. To attain a single click (not only on the web page but also in chrome menus) a double tap is required.
I already set enable-tap=true in weston.ini in the libinput section. But this does not have any effect.

Multitouch (interactive zooming with two fingers) works, but a single click does not work. I would prefer to disable multitouch completely and all other fancy stuff like 2 fingers might be interpreted as right click.

The settings of the gooidx can also be configured via firmware but I am not quite sure if configuring the firmware works correctly under BSP 5.6 whereas it did under 2.7 (although reporting the following error as well: Direct firmware load for goodix_911_cfg.bin failed with error -2)

Best,
Matthias

Hello @mkock ,
Could you run the following command, make some single and double taps and share with us the output?

evtest /dev/input event0

Best regards,
Josep

Hi Joseph,

here is the result for a single tap:


root@apalis-imx6-10928236:~# evtest /dev/input/event1
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x416 product 0x38f version 0x1060
Input device name: "Goodix Capacitive TouchScreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 125 (KEY_LEFTMETA)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max      479
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max      479
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      479
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      479
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 304
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 374
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 24
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 24
Event: time 1667567997.1667567997, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 0 (ABS_X), value 304
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 1 (ABS_Y), value 374
Event: time 1667567997.1667567997, -------------- SYN_REPORT ------------
Event: time 1667567997.1667567997, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1667567997.1667567997, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1667567997.1667567997, -------------- SYN_REPORT ------------


here is the result for a double tap:

 evtest /dev/input/event1
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x416 product 0x38f version 0x1060
Input device name: "Goodix Capacitive TouchScreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 125 (KEY_LEFTMETA)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value    319
      Min        0
      Max      479
    Event code 1 (ABS_Y)
      Value    266
      Min        0
      Max      479
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      479
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      479
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 14
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 297
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 283
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 19
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 19
Event: time 1667568599.1667568599, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 0 (ABS_X), value 297
Event: time 1667568599.1667568599, type 3 (EV_ABS), code 1 (ABS_Y), value 283
Event: time 1667568599.1667568599, -------------- SYN_REPORT ------------
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1667568600.1667568600, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1667568600.1667568600, -------------- SYN_REPORT ------------
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 15
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 328
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 281
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 20
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 20
Event: time 1667568600.1667568600, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 0 (ABS_X), value 328
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 1 (ABS_Y), value 281
Event: time 1667568600.1667568600, -------------- SYN_REPORT ------------
Event: time 1667568600.1667568600, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1667568600.1667568600, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1667568600.1667568600, -------------- SYN_REPORT ------------

Hi @mkock !

Thanks for the information.

Could you please recommend a publicly accessible website where you tried to single/double tap and it didn’t work?

With this information, we can try to reproduce the issue.

Also, do you have a Toradex Capacitive Touch Display around? Either the LVDS 10" or the Parallel RGB 7"?

If yes, could you please also try on them?

Best regards,

Hi,
it the problem exists with any webpage containing an ordinary link. I tested that with http://www.w3schools.com
Unfortunately I do not have any Toradex displays.

Here is the evtest-ouput from the same touchscreen under BSP2.7. Under 2.7. in connection with X-Server only a single tap is required.

evtest /dev/input/event4
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x416 product 0x38f version 0x1060
Input device name: "Goodix Capacitive TouchScreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value    137
      Min        0
      Max      480
    Event code 1 (ABS_Y)
      Value    289
      Min        0
      Max      480
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      480
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      480
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1667573085.498427, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 4
Event: time 1667573085.498427, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 271
Event: time 1667573085.498427, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 192
Event: time 1667573085.498427, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1667573085.498427, type 3 (EV_ABS), code 0 (ABS_X), value 271
Event: time 1667573085.498427, type 3 (EV_ABS), code 1 (ABS_Y), value 192
Event: time 1667573085.498427, -------------- SYN_REPORT ------------
Event: time 1667573085.605680, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1667573085.605680, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1667573085.605680, -------------- SYN_REPORT ------------

In the meantime I found out that the problem does not exist when running cog / webkit.
So I guess that it must be something related to chomium. Do you know if there is any setting that could affect this behaviour?

Best,
Matthias

Good morning @mkock ,
Which Chromium version are you using?

Best regards,
Josep

Hi,

I am using 105.0.5195.102

Best,
Matthias

Hello @mkock ,
I made a test using Chromium (100.0.4896.127) and Torizon, and I modified the docker-compose.yml file in /var/sota/storage/docker-compose so that Cromium opens the same site as yours ( http://www.w3schools.com).

It works correctly (a single tap behaves like a click).

Here is my docker-compose.yml file.

services:
  kiosk:
    command: --disable-gpu http://www.w3schools.com
    depends_on:
      portainer:
        condition: service_started
      weston:
        condition: service_started
    device_cgroup_rules:
    - c 226:* rmw
    environment:
      MACHINE: null
    image: torizon/chromium@sha256:1736564d905555887426a983bc8dc3328a91105cbc48fdc54b87309e730ca84f
    platform: linux/arm
    security_opt:
    - seccomp:unconfined
    shm_size: 256mb
    volumes:
    - source: /tmp
      target: /tmp
      type: bind
    - source: /var/run/dbus
      target: /var/run/dbus
      type: bind
    - source: /dev/dri
      target: /dev/dri
      type: bind
  portainer:
    command: --templates https://feeds.toradex.com/portainer/5/$MACHINE/templates.json
      --logo https://docs.toradex.com/109812-torizon-logo-portainer.svg -H unix:///var/run/docker.sock
    image: portainer/portainer-ce@sha256:52f9fdee1e4acfb1b5c4ddd15c88905287efb6e8f8058d2c5a2543ddc72e9dc0
    ports:
    - 8840:9000/tcp
    restart: always
    volumes:
    - source: portainer_data
      target: /data
      type: volume
    - source: /var/run/docker.sock
      target: /var/run/docker.sock
      type: bind
  weston:
    cap_add:
    - CAP_SYS_TTY_CONFIG
    device_cgroup_rules:
    - c 4:0 rmw
    - c 4:7 rmw
    - c 13:* rmw
    - c 226:* rmw
    image: torizon/weston@sha256:9dfd442829b44d03a7c0def3eff9f03fc8660e319d478ed779475323f7528396
    network_mode: host
    volumes:
    - source: /tmp
      target: /tmp
      type: bind
    - source: /dev
      target: /dev
      type: bind
    - source: /run/udev
      target: /run/udev
      type: bind
version: '2.4'
volumes:
  portainer_data: {}

Would it be possible for you to load Torizon on your module, use the modified docker-compose.yml file and check if it works with your touchscreen?

Best regards,
Josep

Hello @mkock ,
Do you have any news on this topic?

Best regards
Josep