This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3358: touchscreen is inaccurate and drifting

Genius 13655 points
Part Number: AM3358

Hello Champs,

Customer used his own board and connected 4-wire AIN0~3 directly. 

SDK version is ti-processor-sdk-linux-am335x-evm-05.00.00.15

There is drifting for the touchscreen. AIN0-3 voltage is within 1.8v and ts_calibrate is no use. There is xyz coordinate when running ts_test. Changing another touchscreen didn't work, either.

Below is the dts:


&tscadc {

status = "okay";
tsc {
ti,wires = <4>;
ti,x-plate-resistance = <200>;
ti,coordinate-readouts = <5>;
ti,wire-config = <0x00 0x11 0x22 0x33>;
ti,charge-delay = <0x400>;
};

adc {
ti,adc-channels = <4 5 6 7>;
};
};

Thanks.
Rgds
Shine

  • Hello Shine,

    To confirm: The user is using a non-Weston based graphics system as per How to Recalibrate the Touchscreen?

    Could you describe the drift behavior in more detail?

    Regards,

    Nick

  • Hello Nick,

    Thanks for your support.

    1. Customer didn't use SD card, he used nand flash to do the calibration. The ts_calibrate is from tslib. 

    2. The drift behavior is that the arrow deviates from the click area which caused the button in QT not to be hit. Sometimes the arrow will move to the bottom of the touchscreen. The TSC board size is 800*480.

    Thanks.
    Rgds
    Shine

  • Hello Shine,

    To double check: Are the coordinates that the touchscreen registers just offset from the actual touch location? (in other words, if they touch in the same place are the registered coordinates about the same?) Or do the coordinates actually move around significantly relative to the actual touch location? (that is what I would call drift). The customer can use evtest to check coordinates from the command line. We also suggest using a stylus instead of a finger for increased accuracy.

    If the customer is just seeing a constant offset when touching the exact same point, then I would suspect that they need to recalibrate the touchscreen as per How to Recalibrate the Touchscreen

    Could the user take a picture of their touchscreen so we can see how it is attached?

    Regards,

    Nick

  • Hi Nick,

    Thank you very much for your support.

    Below is the picture from customer, he used ts_test to write "hello", the red high lighted is the shifting.

    Thanks.

    Rgds
    Shine

  • Hello Shine,

    Ok, I see. So most of the time the touch events are where the customer is touching, but once in a while a touch will register somewhere else.

    I would first test to see if the customer is seeing false pen-up events. Have the customer modify the device tree file > &tscadc > tsc node, property "ti,charge-delay". Experiment with different values and see if they can get the touchscreen to start behaving. Reference Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt.

    Regards,

    Nick

  • Some other things to check:

    Hardware design: Are the digital lines of the LCD and analog lines of the touchscreen separated from each other? i.e., on separate strips?

    Coordinate reports: I would also be curious to see a ts_test log of touch coordinates. (note that printing ts_test log to console will add to system load, so we suggest redirecting the capture to a log file). If the false values all have relatively small pressure values, they can be filtered out using tslib's filters.

    Regards,

    Nick