Stylus touchscreen calibration is not working properly on WINCE

Hey guys.

I’m trying to calibrate the touchscreen with the stylus calibration Menu, but the calibration poins are showing in many strange positions and it never ends.

What can I do?

Also, I developed my own application to calibrate the touchscreen just changing the registry to the correct ones.
But it just starts working when I reboot the Toradex.

What can i do so the system “rebuild” and compile the edited registry?

If you can’t help me in the first one, maybe in the second hehehe

Thanks

Dear @rafagcf

During touch calibration, each point is measured multiple times. If the individual measurements differ too much, the calibration is not accepted. This is usually a sign that the analog filtering of the touch signals is not as good as it should be, or the measurement is happening too fast, so there’s not enough time for the signals to settle.
Large touch screens with long cables are more critical in this regard compared to small screens.

I recommend you connect an oscilloscope to the touch signals to get an idea about the signal quality when the touch is pressed. You don’t need to understand the exact waveform you will see. Just press the screen and look out for

  • Noise
  • Vertical jitter even if you keep the touch position and pressure unchanged
  • Capacitor charging curves which are not settled before the next signal edge starts

It is worth checking the signals because it does not only affect the calibration, but also the precision of your touch screen during regular operation.

Regarding your own application:
It should be sufficient to execute the following code in order to make the touch driver re-read the calibration settings:

 {
    hEvent=CreateEvent(NULL, FALSE, FALSE, L"TouchSettingsChanged");
    SetEvent(hEvent);
    CloseHandle(hEvent);
}

Please refer to our developer article for more details:

Regards,
Andy

{
hEvent=CreateEvent(NULL, FALSE, FALSE, L"TouchSettingsChanged");
SetEvent(hEvent);
CloseHandle(hEvent);
}
Can you write this code in c#?
Thanks