armstonea9q touchscreen

  • Hi support,
    For days now I have been trying to figure how to get the supplied touchscreen (with the armstone A9 SKIT) working with QT5.
    The issue is always that the touchscreen is unresponsive or very slow to respond. Further, the screen size is not picked up by QT5 (the examples which
    come with the QT5 core package). For example, buttons are slow to respond and need to be "touched" (clicked) are few times to respond.
    In addition, the extreme edges of the screen are generally not responsive at all. Finally, if I have a web page displayed on the touchscreen (or lots
    of widgets), the gesture in most cases always is read by QT5 as selecting text which makes it impossible to click the widgets. This issue has been with me
    since September, but now it is getting critical. Any suggestions or advice on how to proceed is welcomed.

  • Which kind of touch are you using? Analog-resistive or capacitive?
    In case of resistive, have you calibrated your touch?
    Which kind of touch input are you using under Qt? evdev or tslib?


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hi,
    Unfortunately, I can not determine what type the screen is, whether capacitive or resistive. My guess is that it is resistive since the touch screen part feels like plastic. The model is ET070080DH6 and the manufacturer no longer has details on this particular screen on their website (http://www.edtc.com) - at least I could not locate that specific model. As I mentioned in the original post, it is the same screen which comes with the armstone kit.


    Yes I have calibrated the screen (even tough the calibration results differ every time I do the calibration). I have used both evdev and tslib as the interface for QT5. The results are the same.


    Any help appreciated

  • Some additional information regarding the previous post.
    There may be some relation to the errors I get when running the application:


    [galcore]: GPU[0] hang, automatic recovery.
    [galcore]: recovery done
    [ 1] Fence Wait TimeOut!
    [ 2] Reset Fence!

  • tslib has the problem, that it does not support multitouch right out of the box. This is why we use evdev by default now. However when using a resistive touch, there is no multitouch, so tslib would work, too.


    So how do you calibrate the touch if it is set up for evdev?
    How do you switch to tslib?
    How do you calibrate the touch if it is set up for tslib?


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • When using QT evdev, there is no calibration performed.
    When using TSLIB I use the executable ts_calibrate


    To force QT to use tslib, I set the following envirnoment variables:
    export QT_QPA_FB_TSLIB='1'
    export QT_QPA_GENERIC_PLUGINS='tslib:/dev/input/event0'


    instead of:
    export QT_QPA_GENERIC_PLUGINS='evdevtouch,evdevmouse,evdevkeyboard'

  • OK, first of all, I forgot to mention that the touch of the ET070080 is in fact analog-resistive. So you must calibrate it. Otherwise exactly such things can happen where you can not reach the edges or corners of the screen and buttons do not react because the recognized coordinates are slightly off the icon even if you press exactly on the icon.


    So using ts_calibrate for tslib is OK, but then you have to allow ts_calibrate to store the calibration data in /etc, which means you have to set the rootfs to read-write mode while calibrating.


    In X11, there is the xinput-calibrator tool to calibrate the touch. But of course you can not use this tool when you do not use X11. So when using evdev under Qt5, you'll also need a calibration tool for Qt5. I'm no Qt5 application programmer, so I do not know what Qt5 tool can be used for that. Maybe there is some library function in Qt that you can call for calibration and that allows to embed the calibration in your own application.


    Finally with our touch driver for the analog resistive touch controller SX8655 that we use, you also have some parameters (touchrate, filt) that you can use to influence the sensitivity of the touch. You can modify these settings at runtime in sysfs (as far as I remember somewhere in /sys/devices/i2c/...) to tune the parameters and then you can set them into the device tree as your permanent defaults.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.