I cannot get the CRTOUCH to report a successful calibration with my 5-Wire resistive touch screen and I continue to get touches where the final X/Y points are 50+ pixels off of actual pressed location. When using evtest the presses will be in the correct location right-up until the last few X/Y reports that precede the BTN_TOUCH release. It creates an anomaly where the mouse jumps from where the screen was touched.
What does it take to get the CRTOUCH to properly calibrate? Does anyone have any suggestions on what to look at? I could hack up the driver to modify what the last reported event is before the BTN_TOUCH event sent reported, but some of this should be handled by the chip and the calibration.
Setup:
I checked that the calibration tool was properly getting the screen resolution. I have also tried calibrating with both a stylus and a finger multiple times. I would say about 70% of the time the jump is not that noticeable. I can replicate the the problem with both short taps and longer touch events.
EVTEST results from touch event stream where last X/Y was off:
BTN_TOUCH = 1
Pressure Event:
X/Y: 928/529
X/Y: 926/525
X/Y: 920/525
X/Y: 917/523
X/Y: 887/514
X/Y: 914/433
X/Y: 981/319
Pressure Event:
BTN_TOUCH = 0
Events were being reported ~ every 0.05 seconds
NOTE: When I calibrate a CRTOUCH the first time, the X axis is inverted while the Y axis operates as expected. I did not see a problem with my schematic on a quick check.
Solved! Go to Solution.
I was able to resolve the issue by removing the capacitors that are DNP'd on the evaluation board for the CRTOUCH. I understand why the diodes are there for ESD, but I am not sure what purpose the capacitors would have or basically I understand why removing resolved my problem and improved touch.
Just as a follow-up I should have said my Y axis is inverted and my X axis operates as expected. Referring back to the documentation for the CRTOUCH 0,0 is the Lower Lefthand (LL) corner, so that would make sense. That reporting somewhat odd as mouse events are reported as 0,0 being the Upper Lefthand UL corner, or I would expect that the calibration would account for the issue.
I will l assume the calibration is accounting for the issue and that is not the problem with calibration failing.
I guess in theory I could swap UL with LL and UR with LR to for reporting 0,0 out of UL corner of the screen as normally be expected X11/etc.
As a second follow-up:
I am still seeing the cursor jumping issue after I got the Linux Calibration example to successfully finish calibration (i.e. get HW feedback from the CRTOCUH).
I was able to perform the calibration by taking the Calibrations Tool points and inverting the Y axis. i.e. for the first point in the the Upper Left Corner (10% in from both borders) I clicked in the Lower Left corner. I repeated the inversion for of the other two calibration points.
Upon successful calibration I could see the mouse jump ~30% of the time as I pull my stylus/finger off the screen. I also paid closer attention to the light touches and noticed the mouse will jitter around a bunch (but less than the jump seen when finishing a touch) if the touch is very light.
The provided Freescale Linux example calibration does not work without messing with the orientation of the screen or re-assignment of UL/UR/LL/LR. The example puts the first calibration point in the Upper Left hand corner vs the Lower Left. Some combination of inverting the Y axis via the driver and the reworking the calibration could be implemented as well.
I was able to resolve the issue by removing the capacitors that are DNP'd on the evaluation board for the CRTOUCH. I understand why the diodes are there for ESD, but I am not sure what purpose the capacitors would have or basically I understand why removing resolved my problem and improved touch.