I am facing issue in touch. there is offset in finger touch and pointer selection on the GUI.
the pointer also moves on the display when I move the finger but with variable offset. also to open a folder I need to click the location with some offset.
Focaltech capacitive touch display
X11 based Linux kernel 5.4 on imx6 dual core
Display resolution : 800X480.
To debug this issue, I have enabled debug message in focaltech driver. and I can see coordinates values are correctly printing of the touched area.
below is Xorg.0.log for the ref.
[ 11.446] (II) config/udev: Adding input device fts_ts (/dev/input/event0)
[ 11.446] (**) fts_ts: Applying InputClass "evdev touchscreen catchall"
[ 11.446] (**) fts_ts: Applying InputClass "libinput touchscreen catchall"
[ 11.446] (II) Using input driver 'libinput' for 'fts_ts'
[ 11.446] (**) fts_ts: always reports core events
[ 11.446] (**) Option "Device" "/dev/input/event0"
[ 11.446] (**) Option "_source" "server/udev"
[ 11.464] (II) event0 - fts_ts: is tagged by udev as: Touchscreen
[ 11.467] (II) event0 - fts_ts: device is a touch device
[ 11.468] (II) event0 - fts_ts: device removed
[ 11.540] (**) Option "config_info" "udev:/sys/devices/soc0/soc/2100000.aips-bus/21a8000.i2c/i2c-2/2-0038/input/input0/event0"
[ 11.540] (II) XINPUT: Adding extended input device "fts_ts" (type: TOUCHSCREEN, id 10)
[ 11.540] (**) Option "AccelerationScheme" "none"
[ 11.540] (**) fts_ts: (accel) selected scheme none/0
[ 11.540] (**) fts_ts: (accel) acceleration factor: 2.000
[ 11.540] (**) fts_ts: (accel) acceleration threshold: 4
[ 11.548] (II) event0 - fts_ts: is tagged by udev as: Touchscreen
[ 11.561] (II) event0 - fts_ts: device is a touch device
[ 23.323] (II) Axis 0x35 value 509 is outside expected range [-24, 504]
See https://wayland.freedesktop.org/libinput/doc/1.14.1/absolute_coordinate_ranges.html for details
please help in resolve this issue.
Thanks for your reply.
focaltech 5446 driver is fine. as in driver debug info i can see correct coordinates are printing.
i feel some problem in X11 or Libinput side.
i have run xinput_calibrator -v and I touch one point on the screen. following is the output
root@cgtqmx6:~# xinput_calibrator -v
DEBUG: XInputExtension version is 2.3
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Skipping device 'Virtual core XTEST pointer' id=4, does not report Absolute events.
DEBUG: Skipping device 'Logitech USB Optical Mouse' id=7, does not report Absolute events.
DEBUG: Selected device: fts_ts
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
DEBUG: Not evdev calibrator: Evdev: invalid "Evdev Axis Calibration" property format
Calibrating standard Xorg driver "fts_ts"
current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535
If these values are estimated wrong, either supply it manually with the --precalib option, or run the 'get_precalib.sh' script to automatically get it (through HAL).
DEBUG: Found that 'fts_ts' is a sysfs name.
INFO: width=800, height=480
[ 2749.630475] [FTS]point number: 1, touch point: 1
[ 2749.635206] [FTS][B]P0(712, 419)[p:63,tm:6] DOWN!
[ 2749.649056] [FTS]point number: 1, touch point: 1
[ 2749.653718] [FTS][B]P0(712, 419)[p:63,tm:6] DOWN!
[ 2749.666625] [FTS]point number: 1, touch point: 1
[ 2749.671250] [FTS][B]P0(712, 419)[p:63,tm:6] DOWN!
DEBUG: Adding click 0 (X=799, Y=251)
[ 2749.684023] [FTS]point number: 0, touch point: 1
[ 2749.688661] [FTS][B]P0 UP!
[ 2749.691370] [FTS]Points All Up!
here i can see difference in coordinates [FTS][B]P0(712, 419) and click 0 (X=799, Y=251) for same point of touch.
please provide your comments to fix this.
My problem of offset in touch has been resolved.
earlier device tree settings for focaltech
focaltech,display-coords = <0 0 480 800>;
focaltech,display-coords = <0 0 800 480>;
it solved the touch offset problem.
now touch works fine, except X11 menus, touch does not work.
one can look at focaltech touch configuration in boundary devices boards: