ryce358
Posts: 81
Joined: Wed Jun 17, 2020 11:06 am

EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Wed Nov 11, 2020 7:04 pm

I have a custom DTS, as kindly assisted by PhilE here: viewtopic.php?f=107&t=284882

I have a gui which uses Kivy which touch input has worked with on both this and on a previous screen

It works very well e.g. with the Desktop, however there are a few issues which surface when running the Kivy app, however I believe they are related to the OS for two reasons:

1. On an older (different) touchscreen I had, these issues were not present
2. On the May release of Raspberry Pi OS, the issues were not present but they were on both the release before that, and on the current one

When the Kivy app is running:
1. Touch response is poor with touches being completely missed. Also some touches are held, even though they are not being held. When using the app via VNC, all mouse clicks are instant and responsive.
2. On every touch, there is a spam error in the command line which says the following:

Code: Select all

INFO: The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL forums/mailing list <https://discourse.libsdl.org/> EVDEV KeyCode 330
I have reported this as it says and I was told to update SDL2. I did in the May release and it didn't fix it and took hours to compile and I then stopped looking into it as a) it was only really a spam error, there were no other issues and b) the later OS stopped it anyway.

3. The mouse cursor is visible. There is an option in Kivy to turn off the cursor, however this stops touch from working. On my previous touch screen, this didn't happen and I think that the overlay is registering the device as the wrong type of device, perhaps?

I also tried installing libinput and removing evdev but I don't think I did that right as all the issues above were still there (including the EVDEV error.

Is there something I can tweak to fix these issues please? Any ideas where I can dig for more info?

This is dmesg in case it helps where there are a few red items that I don't understand but I don't think are related:

Code: Select all

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.72+ (dom@buildbot) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #1356 Thu Oct 22 13:56:00 BST 2020
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi Zero W Rev 1.1
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Reserved memory: created CMA memory pool at 0x17c00000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] On node 0 totalpages: 114688
[    0.000000]   Normal zone: 1008 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 114688 pages, LIFO batch:31
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 113680
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=720 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:A1:D4:65 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  console=ttyS0,115200 console=tty1 root=PARTUUID=b5234518-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet splash plymouth.ignore-serial-consoles
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 376112K/458752K available (7858K kernel code, 718K rwdata, 2488K rodata, 512K init, 802K bss, 17104K reserved, 65536K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] ftrace: allocating 27717 entries in 55 pages
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x2ac/0x4f0 with crng_init=0
[    0.000025] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[    0.000074] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000186] bcm2835: system timer (irq = 27)
[    0.000824] Console: colour dummy device 80x30
[    0.000865] printk: console [tty1] enabled
[    0.000939] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
[    0.050344] pid_max: default: 32768 minimum: 301
[    0.050670] LSM: Security Framework initializing
[    0.051005] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.051034] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.053095] Disabling memory control group subsystem
[    0.053366] CPU: Testing write buffer coherency: ok
[    0.055132] Setting up static identity map for 0x8200 - 0x8238
[    0.056339] devtmpfs: initialized
[    0.070445] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    0.070890] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.070935] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.079923] pinctrl core: initialized pinctrl subsystem
[    0.082072] NET: Registered protocol family 16
[    0.087032] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.093488] audit: initializing netlink subsys (disabled)
[    0.095936] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.095959] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.096163] Serial: AMBA PL011 UART driver
[    0.100510] bcm2835-mbox 2000b880.mailbox: mailbox enabled
[    0.100728] audit: type=2000 audit(0.090:1): state=initialized audit_enabled=0 res=1
[    0.120823] raspberrypi-firmware soc:firmware: Attached to firmware from 2020-10-22 14:06, variant start
[    0.130841] raspberrypi-firmware soc:firmware: Firmware hash is 74e754ff8947c58d2773253f77f6f68a303188f8
[    0.196553] bcm2835-dma 20007000.dma: DMA legacy API manager, dmachans=0x1
[    0.199783] SCSI subsystem initialized
[    0.200082] usbcore: registered new interface driver usbfs
[    0.200196] usbcore: registered new interface driver hub
[    0.200474] usbcore: registered new device driver usb
[    0.203639] clocksource: Switched to clocksource timer
[    1.481000] VFS: Disk quotas dquot_6.6.0
[    1.481163] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.481542] FS-Cache: Loaded
[    1.481972] CacheFiles: Loaded
[    1.503226] thermal_sys: Registered thermal governor 'step_wise'
[    1.504075] NET: Registered protocol family 2
[    1.505553] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    1.505621] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    1.505701] TCP bind hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    1.505779] TCP: Hash tables configured (established 4096 bind 4096)
[    1.505978] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.506021] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.506534] NET: Registered protocol family 1
[    1.507927] RPC: Registered named UNIX socket transport module.
[    1.507946] RPC: Registered udp transport module.
[    1.507958] RPC: Registered tcp transport module.
[    1.507969] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.509819] hw perfevents: no irqs for PMU, sampling events not supported
[    1.509895] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available
[    1.515136] Initialise system trusted keyrings
[    1.515686] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    1.533553] FS-Cache: Netfs 'nfs' registered for caching
[    1.535392] NFS: Registering the id_resolver key type
[    1.535464] Key type id_resolver registered
[    1.535479] Key type id_legacy registered
[    1.535512] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.537922] Key type asymmetric registered
[    1.537947] Asymmetric key parser 'x509' registered
[    1.538046] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    1.538066] io scheduler mq-deadline registered
[    1.538079] io scheduler kyber registered
[    1.541790] bcm2708_fb soc:fb: FB found 1 display(s)
[    1.551532] Console: switching to colour frame buffer device 90x45
[    1.561349] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 720x720
[    1.569741] bcm2835-rng 20104000.rng: hwrng registered
[    1.570419] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    1.571809] vc-sm: Videocore shared memory driver
[    1.572655] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    1.596693] brd: module loaded
[    1.613277] loop: module loaded
[    1.615709] Loading iSCSI transport class v2.0-870.
[    1.616913] usbcore: registered new interface driver smsc95xx
[    1.616954] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.617252] dwc_otg: FIQ enabled
[    1.617267] dwc_otg: NAK holdoff enabled
[    1.617280] dwc_otg: FIQ split-transaction FSM enabled
[    1.617302] Module dwc_common_port init
[    1.617916] usbcore: registered new interface driver usb-storage
[    1.618423] mousedev: PS/2 mouse device common for all mice
[    1.620267] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.624247] sdhci: Secure Digital Host Controller Interface driver
[    1.624267] sdhci: Copyright(c) Pierre Ossman
[    1.625162] mmc-bcm2835 20300000.mmcnr: could not get clk, deferring probe
[    1.626208] sdhost-bcm2835 20202000.mmc: could not get clk, deferring probe
[    1.626552] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.628004] ledtrig-cpu: registered to indicate activity on CPUs
[    1.628560] hidraw: raw HID events driver (C) Jiri Kosina
[    1.628875] usbcore: registered new interface driver usbhid
[    1.628891] usbhid: USB HID core driver
[    1.630522] vchiq: vchiq_init_state: slot_zero = (ptrval)
[    1.632856] [vc_sm_connected_init]: start
[    1.642610] [vc_sm_connected_init]: end - returning 0
[    1.645762] Initializing XFRM netlink socket
[    1.645828] NET: Registered protocol family 17
[    1.646071] Key type dns_resolver registered
[    1.647699] registered taskstats version 1
[    1.647737] Loading compiled-in X.509 certificates
[    1.664346] uart-pl011 20201000.serial: cts_event_workaround enabled
[    1.664539] 20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    1.667599] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.669918] mmc-bcm2835 20300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    1.669944] mmc-bcm2835 20300000.mmcnr: DMA channel allocated
[    1.698837] sdhost: log_buf @ (ptrval) (97d10000)
[    1.731599] random: fast init done
[    1.737778] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.739595] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.741405] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.744633] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    1.749781] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    1.753482] of_cfs_init
[    1.774318] of_cfs_init: OK
[    1.776570] Waiting for root device PARTUUID=b5234518-02...
[    1.845321] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.849504] mmc0: new high speed SDHC card at address aaaa
[    1.851093] mmcblk0: mmc0:aaaa SC32G 29.7 GiB
[    1.855769]  mmcblk0: p1 p2
[    1.882441] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.882584] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.884127] devtmpfs: mounted
[    1.892814] Freeing unused kernel memory: 512K
[    1.892834] This architecture does not have kernel memory protection.
[    1.892848] Run /sbin/init as init process
[    1.895119] mmc1: new high speed SDIO card at address 0001
[    2.638469] systemd[1]: System time before build time, advancing clock.
[    2.806657] NET: Registered protocol family 10
[    2.809040] Segment Routing with IPv6
[    2.868915] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    2.870724] systemd[1]: Detected architecture arm.
[    2.884387] systemd[1]: Set hostname to <raspberrypi4>.
[    5.511398] systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
[    5.632797] systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/nmbd.pid → /run/samba/nmbd.pid; please update the unit file accordingly.
[    5.902236] random: systemd: uninitialized urandom read (16 bytes read)
[    5.943478] random: systemd: uninitialized urandom read (16 bytes read)
[    5.944929] systemd[1]: Listening on Journal Audit Socket.
[    5.945795] random: systemd: uninitialized urandom read (16 bytes read)
[    5.947449] systemd[1]: Listening on Journal Socket (/dev/log).
[    5.952584] systemd[1]: Created slice User and Session Slice.
[    5.964752] systemd[1]: Listening on Syslog Socket.
[    5.965242] systemd[1]: Reached target Slices.
[    7.386847] dwc2 20980000.usb: 20980000.usb supply vusb_d not found, using dummy regulator
[    7.387066] dwc2 20980000.usb: 20980000.usb supply vusb_a not found, using dummy regulator
[    7.603963] dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
[    7.605013] dwc2 20980000.usb: DWC OTG Controller
[    7.605090] dwc2 20980000.usb: new USB bus registered, assigned bus number 1
[    7.605196] dwc2 20980000.usb: irq 33, io mem 0x20980000
[    7.605867] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    7.605895] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    7.605915] usb usb1: Product: DWC OTG Controller
[    7.605935] usb usb1: Manufacturer: Linux 5.4.72+ dwc2_hsotg
[    7.605952] usb usb1: SerialNumber: 20980000.usb
[    7.607449] hub 1-0:1.0: USB hub found
[    7.607600] hub 1-0:1.0: 1 port detected
[    7.946656] using random self ethernet address
[    7.946686] using random host ethernet address
[    7.948177] usb0: HOST MAC 8a:4b:e6:92:3c:70
[    7.948547] usb0: MAC fa:cd:75:7f:9f:d6
[    7.948633] using random self ethernet address
[    7.948654] using random host ethernet address
[    7.948796] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[    7.948818] g_ether gadget: g_ether ready
[    7.948847] dwc2 20980000.usb: bound driver g_ether
[    7.981643] i2c /dev entries driver
[    9.996495] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   10.817292] systemd-journald[68]: Received request to flush runtime journal from PID 1
[   14.002541] i2c-gpio ffffffff.i2c: using lines 19 (SDA) and 26 (SCL)
[   15.967768] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[   15.970837] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[   15.970869] [vc_sm_connected_init]: start
[   16.037510] mc: Linux media interface: v0.10
[   16.090000] [vc_sm_connected_init]: installed successfully
[   16.421797] videodev: Linux video capture interface: v2.00
[   16.637550] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   16.645147] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   16.647142] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   16.688001] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[   16.690303] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[   16.776161] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[   16.777156] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[   16.778039] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[   16.778780] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[   16.778835] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[   16.778875] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[   16.778905] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[   16.778934] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[   16.791714] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[   16.800076] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[   16.817685] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[   16.890048] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[   16.890133] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[   16.901063] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[   16.901142] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[   16.921879] bcm2835_audio bcm2835_audio: card created with 8 channels
[   16.948092] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[   16.948172] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[   19.494961] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   19.965085] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   20.534446] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[   20.554212] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[   20.554704] usbcore: registered new interface driver brcmfmac
[   20.580901] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt failed with error -2
[   20.879341] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[   20.882629] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   20.886619] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Oct 22 2019 01:59:28 version 7.45.98.94 (r723000 CY) FWID 01-3b33decd
[   30.736980] uart-pl011 20201000.serial: no DMA platform data
[   31.490837] random: crng init done
[   31.490868] random: 7 urandom warning(s) missed due to ratelimiting
[   31.837265] Goodix-TS 11-005d: 11-005d supply AVDD28 not found, using dummy regulator
[   31.837516] Goodix-TS 11-005d: 11-005d supply VDDIO not found, using dummy regulator
[   31.868851] Goodix-TS 11-005d: ID 911, version: 1060
[   32.253068] input: Goodix Capacitive TouchScreen as /devices/platform/ffffffff.i2c/i2c-11/11-005d/input/input0
[   34.250194] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   34.287160] 8021q: 802.1Q VLAN Support v1.8
[   35.731052] Bluetooth: Core ver 2.22
[   35.731249] NET: Registered protocol family 31
[   35.731268] Bluetooth: HCI device and connection manager initialized
[   35.731311] Bluetooth: HCI socket layer initialized
[   35.731337] Bluetooth: L2CAP socket layer initialized
[   35.731403] Bluetooth: SCO socket layer initialized
[   35.802919] Bluetooth: HCI UART driver ver 2.3
[   35.802948] Bluetooth: HCI UART protocol H4 registered
[   35.803126] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   35.803577] Bluetooth: HCI UART protocol Broadcom registered
[   38.256949] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   40.406162] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   40.406180] Bluetooth: BNEP filters: protocol multicast
[   40.406211] Bluetooth: BNEP socket layer initialized
[   41.224081] input: vnc-keyboard as /devices/virtual/input/input1
[   41.228384] input: vnc-abspointer as /devices/virtual/input/input2
[   41.247301] input: vnc-relpointer as /devices/virtual/input/input3
[   41.403834] Bluetooth: RFCOMM TTY layer initialized
[   41.403875] Bluetooth: RFCOMM socket layer initialized
[   41.403929] Bluetooth: RFCOMM ver 1.11
[   41.793327] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   42.913542] debugfs: File 'le_min_key_size' in directory 'hci0' already present!
[   42.913568] debugfs: File 'le_max_key_size' in directory 'hci0' already present!
Thanks in advance

ryce358
Posts: 81
Joined: Wed Jun 17, 2020 11:06 am

Re: EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Thu Nov 12, 2020 11:46 am

I have run the following test code and down/up fires when just holding the screen. There is no "move" output. So something strange is happening with the driver that is not registering the device properly perhaps? Or does anyone know how to move over to libinput instead? Or something else? I don't really understand the difference between the two and it's hard to find much online.

Code: Select all

>>> from evdev import InputDevice, categorize, ecodes
>>> dev = InputDevice('/dev/input/event0')
>>> print(dev)
device /dev/input/event0, name "Goodix Capacitive TouchScreen", phys "input/ts"
>>> for event in dev.read_loop():
...     if event.type == ecodes.EV_KEY:
...             print(categorize(event))
... 
key event at 1605179959.335783, 330 (BTN_TOUCH), down
key event at 1605179959.432770, 330 (BTN_TOUCH), up
key event at 1605179960.892738, 330 (BTN_TOUCH), down
key event at 1605179961.249391, 330 (BTN_TOUCH), up
key event at 1605179961.877767, 330 (BTN_TOUCH), down
key event at 1605179962.701807, 330 (BTN_TOUCH), up

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 4612
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Thu Nov 12, 2020 11:57 am

[ Moved to Interfacing, where you're more likely to get some eyes on it ]

ryce358
Posts: 81
Joined: Wed Jun 17, 2020 11:06 am

Re: EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Thu Nov 12, 2020 7:06 pm

Thanks Phil - I guess there’s not anything in the DTS that might affect how this function?

ryce358
Posts: 81
Joined: Wed Jun 17, 2020 11:06 am

Re: EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Sat Nov 21, 2020 12:15 pm

Bump. Does anyone have an idea of where to troubleshoot? Who to speak to? What to try?

I just need a couple of leads to explore!

Cheers!

grant72
Posts: 2
Joined: Sat Dec 05, 2020 8:38 am

Re: EVDEV Keycode error for goodix911 DTS and possibly wrong input type

Sat Dec 05, 2020 9:36 am

If if event.type == ecodes.EV_KEY in the above test code is replaced with if event.type == ecodes.EV_KEY or event.type == ecodes.EV_ABS then move outputs are reported as well as down/up, so the driver does appear to be working correctly.

However, I'm working on this with ryce358 and we are still blocked on the issue described in his OP, i.e.
When the Kivy app is running:
1. Touch response is poor with touches being completely missed. Also some touches are held, even though they are not being held. When using the app via VNC, all mouse clicks are instant and responsive.
Some further follow-up information:

When running evtest alone (or at the same time as another GUI app such as the calculator) then touch events are instantly output to the console.
However, when evtest is run at the same time as a very basic Kivy app then its touch event output follows the poor behaviour in the app, i.e. if a touch reaction is delayed by a few seconds then the output from evtest is also delayed by a few seconds.

The following is an example output from evtest when there was just a short 'tap' on the screen:

Code: Select all

Event: time 1607155807.606990, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1607155810.496377, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Note the timestamp of the 'up' event - approx. 3 seconds after the 'down' event. This leads to a few questions:
  • How, possibly, could a Kivy app (or any high-level GUI app) delay low-level touch events being output from evtest?
  • Where/when is the event timestamp set? - is it set by the evdev driver? If so, then is the app somehow delaying the kernel driver from reading the event from hardware?
We'd be very grateful for any ideas or suggestions to help us progress with this issue!

Many thanks,
Grant

Return to “Interfacing (DSI, CSI, I2C, etc.)”