Capacitive touch is miscalibrated

  • I'm using the kit from…ts/tft-kapazitiver-touch/
    consisting of the TFT-LCD G070Y2-L01 and the Atmel capacitive touch.

    When touching the screen I can prompt the mouse pointer to move, i.e. X11 does see touch events.
    However, there is an offset of more than 50mm. Frequently also the movement direction deviates to the one of my finger,
    i.e. finger moves to the right -> mouse pointer moves down.

    During boot the serial log contains the following Atmel related lines:
    atmel_mxt_ts 2-004a: Family ID: 128 Variant ID: 1 Major.Minor.Build: 2.0.AA
    atmel_mxt_ts 2-004a: Matrix X Size: 16 Matrix Y Size: 14 Object Num: 17
    input: Atmel maXTouch Touchscreen as /devices/platform/imx-i2c.2/i2c-2/2-004a/input/input1

    For a capacitive touch a calibration should not be necessary. Thus how to get this issue resolved?

  • Hello Mr Dohmhardt,

    i try to reproduce your issue and i get nearly the same problem. With our version of the display with mxt224 pcaptouch, i move the finger up -> mouse moves down. This problem is caused that the manufacturer of the display changed the configuration over the time and our settings are tested for an older configuration. You have to make some changes in the code to get it work. The file path is "KERNEL"/arch/arm/mach-mx6/board-mx6_armstonea9.c

    In this file theres a struct called "mxt_platform_data". For our version of the display i have to change the ".orient" variable from "MXT_ROTATED_90" to "MXT_ROTATED_90_COUNTER". In your case you have to set the ".orient" "MXT_NORMAL" or "MXT_ROTATED_180" and maybe another value. The values for the .orient variable are in the file "KERNEL"/include/linux/i2c/atmel_mxt_ts.h

    Perhaps through the modification of the ".orient" variable it will work, if not you must change the ".x_size" and ".y_size". If ".x_size" were 480 and ".y_size" were 800, just change ".x_size" to 800 and ".y_size" to 480.

    We havent the same display version here, thats why i cant tell you the correct configuration. Try to change this parameters above and normally it has to work. Tell me about the progress of this issue.

    best Regards,

    Patrick Jakob

    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.

    Edited once, last by fs-support_PJ ().

  • As said above I could fix the orientation issue by changing .orient in the file board-mx6_armstonea9.c
    from MXT_ROTATED_90 to MXT_VERTICAL_FLIP, i.e.

    1. .orient = MXT_VERTICAL_FLIP

    Now, the mouse pointer (MP) follows my fingers movement. Still, I have a large offset of

    1. X: 50(of 154)mm and
    2. Y: 30(of 90)mm

    I.e. in both axes the MP position is 1/3rd (related to screen size) too high and 1/3rd too much left.
    I "played" with .x_size and .y_size. Exchanging them did not make a noticeable difference.
    Any other ideas?