NI Linux Real-Time Discussions

Showing results for 
Search instead for 
Did you mean: 

Touch Screen Calibration Issues

I am attempting to us an AC Nodes APA9070 Touchscreen attached to a cRIO-9040. CompactRIO software version 19.1, LabVIEW 19.0.0.

The touchscreen calibration is consistently not working. 

From a fresh format (no calibration), the touch locations are inconsistent with finger placement. Additionally, side to side motions of my finger are treated as up down motions and vice versa.

Running the calibration utility (either via command line, control panel, or via the RT Calibrate shows the utility and it recognizes the touches at the calibration points. However, it horribly miscalculates the calibration and after calibration, only recognizes touches in the upper left corner of the screen. Re-running the calibration utility, it doesn't even recognize the location of touches other than upper left. It still recognizes that I am touching the panel (timer to exit resets) but it does not think I am anywhere near the other 3 calibration points, it takes a reformat to fix.


At one point I ran across a forum post where someone had the side to side vs up/down movement but that was before I noticed that problem and I can no longer locate the post.

Anyone have similar experiences or can point me towards something other than "How to Calibrate Your Touchscreen" KB since it is not working for me.


0 Kudos
Message 1 of 8

Hi Aaron,


Could elaborate on the "inconsistent" touch locations, or is the primary issue from a fresh format that vertical and horizontal movements are swapped?


I assume you have already tried the tutorial and possibly seen this KB. Could you attach your 99-calibration.conf after following steps 2 or 3 in the tutorial, or the steps in the KB? There are a couple of entries that I am interested in:


  • "Calibration"
  • "SwapAxes"

In a previous case, I have seen the need to include additional options for "InvertX" and InvertY". 


Can you confirm that your Display options in XFCE have Rotation and Reflection set to "None"?




NI Product Owner
0 Kudos
Message 2 of 8

Hi Brian,


I have seen and tried most of the options in the tutorial (tried both options 1 and 3 multiple times).

By inconsistent touch locations, I mean with a freshly formatted controller, if I touch a location on the screen, the mouse pointer appears at an entirely different location from what I touched. If I move my finger and touch a position to the left of the first point (in same vertical plane), the apparent touch position moves down. If I touch above the first position the apparent touch position moves left (in same horizontal plane).


Once I run the calibration, any touch on the touchscreen results in the mouse being in the upper left hand corner or off the screen entirely.

I had bypassed the KB since I am not using a TSM-101x. I will try it.

Rotation and Reflection are set to none.


No 99-calibration.conf is created. I have an 05-penmount.conf, 10-evdev.conf, 10-quirks.conf, and 50-vmouse.conf. In the Mouse and Touchpad control panel, I am seeing the optical mouse I have connected, the keyboard, and "Dialogue Inc Penmount USB". 

The 05-penmount.conf has the following information:
"Section "InputClass"
        Identifier "penmount touchscreen"
        Driver "evdev"
        MatchProduct "DIALOGUE INC PenMount USB"
        Option "EmulateThirdButton" "1"
        Option "EmulateThirdButtonTimeout" "750"
        Option "EmulateThirdButtonMoveThreshold" "30"


Should I manually create the 99-calibration.conf file per the TSM-101x KB?



0 Kudos
Message 3 of 8

Options 2 and 3 of the tutorial actually should result in 99-calibration.conf being created. I would recommend starting with that at first to create the file, instead of manually creating it. From there, we can look at the entries for "Calibration" and "SwapAxes".



NI Product Owner
0 Kudos
Message 4 of 8

The file does not appear to be created when I use Option 1. Using option 3 I got:

"sh: /usr/share/x11/xorg.conf.d/99-calibration.conf: No such file or directory

Info: width=800, height= 480"

I realize that this may be because I typed x11 instead of X11, so I am reformatting again. It will take some time to reformat and reinstall all of the software.

0 Kudos
Message 5 of 8

Okay, missed the su admin command. Oops.


99-calibration.conf was created:


Section "InputClass"

<tab> Identifier "calibration"

<tab> MatchProduct "Dialogue INC PenMount USB"

<tab> Option "Calibration" <tab> "313 317 900 883"

<tab> Option "SwapAxes" <tab> "1"

0 Kudos
Message 6 of 8

I'm not positive on your "Calibration" scaling, but "SwapAxes" being set to "1" swaps the x/y axes.


In general, the calibration scaling refers to min-x, max-x, min-y, max-y. I would expect your values to be more similar to "313 900 317 883". The manual for Devdev has some more details:


You may need to experiment with the calibration values. In addition, if after editing the file and rebooting, the controller fails to boot the Embedded UI and displays "Unable to open x display", you will need to format the controller.

NI Product Owner
0 Kudos
Message 7 of 8

We are removing the touchscreen, so I am not going to continue investigating why the swap axis get's set by the calibration or attempt to create my own. Thanks for your assistance

0 Kudos
Message 8 of 8