none
Touch calibration always fails. RRS feed

  • Question

  • Hello,

    trying to calibrate a touch screen always fails.

    Ie the touch calibration sequence of TouchCalibrate() ("carefully press and briefly hold...") always starts again after touching the 5 calibration points.

    (1) Where is TouchCalibrate() implemented, so I can take a look why it doesn't accept the touch data?

    I looked at the data the touch driver returns, it seems reasonable. It is a new hardware platform though, and the values returned from the

    touch controller are about 25 times bigger than on an old device.

    (2) But this shouldn't be a problem?!

    (3) Also, could this be a x/y commutation issue of the touch foils connectors?

    Here, the data the touch driver's ADC returns for the appropriate calibration points (x/y coordinates):

    Upper left                                         Upper right

    39800/40300                                    57600/40200

                              48700/48900

                                    Middle

    39700/57800                                    57800/58200

    Lower left                                          Lower right

    Thanks in advance for any help.

    Best regards.

    Wednesday, June 13, 2012 10:05 AM

All replies

  • TouchCalibrate() is implemented in GWES, which isn't included in Platform Builder.  But, it uses your touch driver for most of the decision making.

    The rejection is most likely coming from the MDD.  There is a registry setting named MaxCalError which probably is the reason the calibration is rejected.


    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG http://geekswithblogs.net/bruceeitman

    Eurotech Inc.
    www.Eurotech.com

    Wednesday, June 13, 2012 12:09 PM
    Moderator
  •  Yes , you can refer to the registry Bruce Etiman mentioned which is located at : HARDWARE\\DEVICEMAP\\TOUCH and the key is "MaxCalError". Generally the value is 5 for most of the platform. 

    You can also refer to the source code located at 

    \public\COMMON\oak\drivers\calibrui

    \public\COMMON\oak\drivers\touch

    Thanks/Regards,

    Rakesh.

    Wednesday, June 13, 2012 12:58 PM
  • Hello and thanks,

    I already changed 'MaxCalError' to 100 and 1024, but it didn't help.

    Also, TouchPanelReadCalibrationPoint() in tchmain.c (which I assume is called by TouchCalibrate())

    returns touch coordinates and results in TRUE.

    Wednesday, June 13, 2012 2:26 PM
  • Ok, can you please post the debug message logs here ?  Also give some detail about your platform ( ARM, Touch controller etc..)

    Rakesh.


    Thursday, June 14, 2012 1:40 AM