1

I am trying to calibrate an older touchscreen for Ubuntu 20.04 (server w/ Xorg). The touchscreen in question is a General Touch RTL224. Out of the box I can plug the USB touchscreen in and it is recognized and tapping on the screen does something. The current touch inputs are only showing in the top left corner (no more than 100 pixels from the side and top edges) no matter where I tap on the physical screen - and the Y inputs (up/down) are inverted. I am fairly confident I can fix the Y inputs being inverted; I currently am just focused on getting the inputs to show across the entire screen.

Here are the following properties when running xinput list-props:

Device 'USB Touchscreen 0dfc:0001':
        Device Enabled (147):   1
        Coordinate Transformation Matrix (149): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Calibration Matrix (302):      1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Calibration Matrix Default (303):      1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Send Events Modes Available (267):     1, 0
        libinput Send Events Mode Enabled (268):        0, 0
        libinput Send Events Mode Enabled Default (269):        0, 0
        Device Node (270):      "/dev/input/event7"
        Device Product ID (271):        3580, 1

I have tried running xinput_calibrator -v and get the following output

DEBUG: XInputExtension version is 2.3
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Skipping device 'Virtual core XTEST pointer' id=4, does not report Absolute events.
DEBUG: Skipping device 'Logitech K400' id=9, does not report Absolute events.
DEBUG: Selected device: USB Touchscreen 0dfc:0001
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
DEBUG: Not evdev calibrator: Evdev: invalid "Evdev Axis Calibration" property format
Calibrating standard Xorg driver "USB Touchscreen 0dfc:0001"
        current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535
        If these values are estimated wrong, either supply it manually with the --precalib option, or run the 'get_precalib.sh' script to automatically get it (through HAL).
DEBUG: Found that 'USB Touchscreen 0dfc:0001' is a sysfs name.
DEBUG: Adding click 0 (X=27, Y=40)
DEBUG: Adding click 1 (X=72, Y=39)
DEBUG: Adding click 2 (X=26, Y=22)
DEBUG: Adding click 3 (X=72, Y=22)
        --> Making the calibration permanent <--
DEBUG: Found that 'USB Touchscreen 0dfc:0001' is a sysfs name.
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "USB Touchscreen 0dfc:0001"
        Option  "MinX"  "738"
        Option  "MaxX"  "3104"
        Option  "MinY"  "2647"
        Option  "MaxY"  "1191"
        Option  "SwapXY"        "0" # unless it was already set to 1
        Option  "InvertX"       "0"  # unless it was already set
        Option  "InvertY"       "0"  # unless it was already set
EndSection

If I copy the snippet and create the file /usr/share/X11/xorg.conf.d/99-calibration.conf nothing seems to change after reboot.

I have tried switching to evdev and had no luck getting it to switch - this does not seem to be recommended anyways.

I can run sudo evtest and I get X values ranging between ~400 and ~1550, and Y values ranging between ~610 and ~1325. This shows to me that I do not have an issue with the touchscreen itself - just an issue converting the input to pixel coordinates on screen.

Is there any other debugging steps I can take? Is there something else I missing to setup this touchscreen? I have setup similar touchscreens and they seem to work out of the box.

1 Answer 1

0

I was able to get it calibrated using reinderien's xcalibrate calibration tool. That tool can be found here on GitHub: https://github.com/reinderien/xcalibrate

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .