cancel
Showing results for 
Search instead for 
Did you mean: 

Has anyone else noticed an issue with calibration in TouchGFX v4.10?

ZFree
Associate II

We recently upgraded from TouchGFX v4.8 to v4.10. Our calibration was working perfectly with v4.8 but it suddenly began to fail consistently after we upgraded to v4.10. After spending two days researching this issue I think that I may have found an issue with the TouchCalibration::setCalibrationMatrix function provided by TouchGFX v4.10. Since I don't have access to the source of setCalbrationMatrix all I can give you is a simple explanation of our method and the results from v4.8 and v4.10 as comparison.

We use 3 points to do the initial calibration. They are: {160,240}, {300,384}, and {640,150). We capture the adc values each time the user hits each of those points and then we pass both the touch point values and the adc values to the TouchCalibration:setCalibrationMatrix function. Once this is done we ask the user to tap once more on another point to verify that the calibration is correct. The touch point for that verification point is {400,240}. This worked reliably on v4.8 but with v4.10 we typically get {460,240} for the verification point instead of {400,240}. I even went back and put the adc points that we got from touching {160,240},{300,384}, and {640,150} (i.e., our test points) from v4.10 into the version with v4.8 and it gave back {400,240} after the calibration.

Has anyone else seen this +60 pixel offset around the x-axis after calibration with v4.10?

11 REPLIES 11
DWann
Associate III

Hi Martin,

I don't think there is anything wrong with the TouchController code. The values I get when I transform the the raw touch coordinates appear to be correct. It's the ones coming back in the click event handler that seem to be wrong. It behaves like there is something else adjusting the coordinates before they hit the handler.

If I have time today, I'll see if I can poke around further. But I might just end up implementing my own version as the original poster did.

DWann
Associate III

After further investigation, it looks like the biggest issue was just due to screen orientation. I'm working in portrait mode. If I rotate the coordinates 90° prior to calling the calibration function, the precision is greatly improved.

That being said, if I try to calibrate to a scaled down touchscreen rotated about 20°, the precision still isn't there. I ended up implementing my own calibration routine and that gave me the precision I need, so I'm not planning to investigate further.