Important: Please read the Qt Code of Conduct -

Evdev touch with Qt 5.3 not working correctly

  • I cross-compile my Qt 5.3 applications and execute them on a raspberry pi (raspbian). This device is connected to an Elo-TouchSystem (ET1928) via usb. The touchscreen is working well till i start a Qt application (eglfs fullscreen).

    The calibration is totally messed up. Moving the finger across the screen is moving the cursor but the distance the cursor moves is much farer. Also tipping the screen does not position the cursor correctly. The positioning seems to be relative to the old position - but not constant.

    The problem is not related to well known problems concerning rotations.

    I used evtest to calibrate the screen but this does not help (data is lost after restart).
    I used xinput_calibrator to calibrate the screen but this does not help (data is lost after restart).

    It seems that the xinput_calibrator is not writing any data to file - even by using "xinput_calibrator --output-type xorg.conf.d --precalib <minX> <maxX> <minY> <maxY>".
    But xinput shows the caibration values after calibration till the next restart.

    lsmod shows that evdev is used by 6 modules.
    After i start the application lsmod shows that evdev is used by 9 modules (+3 is strange to me).
    Ok the +3 is is cause by the three devices keyboard, mouse and touchscreen. Not as strange as i thought.

    If i unplug the mouse while running the application the count is reduce to 6. So evdev is used by every device 3 times i guess.
    The names of the modules are not listed.

    xinput shows me that the touchscreen input is received at /dev/input/event1

    Some of the vars i played with (the vars i remember):
    export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1
    export QT_QPA_EGLFS_FB=/dev/fb0
    export QT_QPA_EGLFS_WIDTH=1280
    export QT_QPA_EGLFS_HEIGHT=1024

    First i used evdev 2.7.
    I also compiled and installed evdev 2.9 but this did not solve the problem.

    After all i tried tslib but the input has always received at the desktop behind the application (rly dangerous for the system :-)).

    So i prefer evdev but i rly dont know where to go from here.

    best regards

Log in to reply