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.

Touch calibration not working properly using Windows Compact 7 OS and SBC8530

Hi,

I am having a problem in Touch screen calibration. Using Windows compact 7 BSP version BSP_WINCE_ARM_A8 2.00.00.02 and Hardware SBC8530 (from embest) with 7inch LCD. I modified the lcd_vga.c file to suite the 7 inch LCD (800x 480). Width is set to 800 and height is set to 480 for default LCD parameter.

After board boot up it requires touchscreen calibration where black marker is in the middle of the screen. I am using my finger and touching any area in 640 x 480 recognize my touch and moves the black marker not to full area of the LCD. Please refer the picture.

I believe the black marker should move only if I touch the center of the black marker.

Black marker moves to 4 different position in the LCD and final reaches the  middle of the screen when I touch the middle again it start calibrating  marker move to left, so finally calibration screen stays always.

Problem:

  1. Marker is not moving 800x480 area of the LCD
  2. During calibration touch sense for only 640x480 area
  3. Black marker moves if I touch any area of the LCD (640x480).
  4. Calibration screen is not exiting even after 5 calibration points is taken or complete.

I can able to see desktop in LCD screen when I press the esc button using keyboard connected to the USB port.

  • Dear,

    Please give me some suggestion to solve this issue. I am eagerly waiting for a reply

    Thanks for your support

     

  • Sounds to me it is working just like it is suppose to work. The black X's are presented just where they are suppose to be.They are not presented at the extreme corners like you may assume.

    If the target moves when you press somewhere else on the screen other than the mark it is because you are not following the directions. It is trying to calibrate so it assumes where you press is the coordinate you want for that point, if you lie to it how is it to know?

  • David,

    Thanks for your reply.

    I
    believe the cross mark as to move to four corner of the LCD (800 * 600. When I use the WINCE 6.0 Image come with the EVM it just works fine. Marker moves four corner of the LCD (800 x600) when I press on the target and finally it calibrates and exit the calibration screen.

    But when I use WINCE7 BSP version "BSP_WINCE_ARM_A8 2.00.00.02” above mentioned problem exist. I did some changes to the BSP to support 7 inch LCD and touch hardware for SBC8530 EVM. LCD work fine and even touch recognize my press but it fails during calibration.

    Thanks

    Ashwin

     

     

  • Then look at the calibration code. Most likely the delta between the associated X or Y points are too great so the calibration fails.

    If you dump the actual points while calibrating you may get a clue.

  • Hi,

    How the touch calibration software knows about the width and height of my LCD and where it is picks these value for calibrating the LCD touch area?

    Problem here is cross mark is not moving to entire area of 800 x480 7inch LCD. I believe the calibration software detects that I have connected 5 inch LCD and moves cross mark to a smaller area. You can see the picture I have attached in above post. I am trying to find a solution for my problem.

     Touch screen driver doesn’t support for 7 inch LCD?

    Thanks

    Ashwin

     

  • As David explained the calibration points  have changed in WEC7 compared to WinCE6. If you have the TI EVM you would have seen that in WinCE6 the crossmarks used to be almost at the corner of the LCD screen. But in WEC7 on the same platform/same LCD the cross marks moved in. That does not indicate an issue. After calibration it works perfectly fine. 

    From what I can see of your image it looks fine. My question to you is,

    1. Did you try using a soft tipped device (either the stylus that comes with EVM) or with a soft tipped pencil instead of a finger.

    2. Did you touch exactly at the displayed cross marks  (and not the extreme corners like you seem to be used to in WinCE6).

    I have seen that it will keep recalibrating if you touch a little too far from the shown calibration points and that is what seems to be happening in your case.

    Again to reiterate: "Problem here is cross mark is not moving to entire area of 800 x480 7inch LCD" ==> That was true in WinCE6 but no longer in WEC7.

  • In addition to David's and Jatin's comments:

    The LCD width/Height information should be configured inside display driver. GWES uses this information to set the calibration points. These points are NOT corners of the LCD screen.

    WinCE7 has different calibration points compared with CE6. This is determined inside Microsoft calibration code.

    If the 5 points are precisely pressed using a stylus, and the calibration is still finished properly, the system will repeat the calibration - you will see the cross mark is set to the middle of the screen again. 

    you can also check the return value of function TouchCalibrate() (inside PDDCalibrationThread() of TouchScreenPdd.cpp) to see if the calibration succeed or not.

    To further debug calibration data issue, you can add RETAILMSGs inside PDDTouchIST() to see if the calibration data makes sense or not.

    Thanks,

    Tao

  • One other note, TouchCalibrate() only returns false if you hit "escape" key. It does not return if calibration fails ...it just continues to loop. 

  • Thanks Jain, Zhang, David

    Ok Now I understood the concept. When I use wince 6 image come with the EVM the calibration software moves cross marker moves to every corner of the LCD and I believed same should happen for WINCE 7.  I am using finger for calibration today I will use soft tipped pencil and touch exactly at the displayed cross marks. I will try when I go home and let you know the result. Also I planning to use the RETAILMSGs to see the calibrated data.

    Thanks

    Ashwin