Touch screen calibration

Is there a program to calibrate a touch screen that does not need terminal command input, that a person that does not understand the command language, can use ?

Hi @Gege,

this might help you:

https://wiki.ubuntu.com/Touchscreen :smiley:

Thanks wolfman, but that is still all command work, and it’s all alian to me and i’m too old to start learning a new language

Hi Gege,

I will draw the attention of @Wimpy and @lah7 to this thread as I cannot find any simple app that will help you!. :smiley:

Any help appreciated chaps, I cannot find a simple touchscreen Ubuntu based app to help @Gege at all anywhere!. :frowning:

If it’s for a resistive single touch display, you can use a tool called xinput-calibrator to do a 4 point calibration and save it’s configuration.

sudo apt install xinput-calibrator

I think it has a launcher in the Applications menu but it’s best to run from the terminal:

xinput_calibrator

Afterwards, it’ll prompt to save the configuration to a file, copy where it says “the snippet below” from the terminal and then type:

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Paste the configuration data and save using CTRL + X (pressing y to save) so it’s persistent across reboots.

Hi Luke,

thanks for the answer but the OP is looking for a simple solution as he doesn’t want anything to do with the terminal, I was hoping for a GUI app if there is such a thing?. :smiley:

1 Like

Ubuntu Touch problem
Mate 16.04 touch report for Toshiba Ultrabook Z20
In normal landscape mode the touch system works correctly, no problems.
I need to run the screen in PORTRATE mode and this is when the touch goes haywire.
When I run the calabrition tool in portrate mode, the first point starts in the top left corner, the next one top right corner, then the third one is in the lower left corner.
When I touch that one the notice in the middle of the screen reports an incorrect function and aborts the process.
The terminal then appears with this report that I can’t understand

Warning: multiple calibratable devices found, calibrating last one (Atmel)
        use --device to select another one.
Calibrating EVDEV driver for "Atmel" id=16
        current calibration values (from XInput): min_x=0, max_x=4095 and min_y0, max_y=4095

Doing dynamic recalibration:
        Swapping X and Y axis...
        Setting calibration data: 3516, 3584, 1168, 1174
        --> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/hare/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Atmel"
        Option  "Calibration"   "3516 3584 1168 1174"
        Option  "SwapAxes"      "1"
EndSection

For @lah7, thanks for your input, unforttunatly and with respect, I can’t under stand command instructions . Example 
. copy it from the terminal and then: ??
I understand the sudo etc type in to the teminal but it’s the part in between the two sentencess that is taken for granted. I’m afraid this happens all the time and I understand that members can’t give detailed instructions all the time Which is why I don’t look for advise entailing terminal commands.
Please don’t get me wrong, Ubuntu Mate is a wonderfull system and you all do a great gob of helping every body but i’m totally lost in the terminal and at my age I just want to enjoy my pc.
Thanks to all.

Thanks for providing further info, it seems your Toshiba Ultrabook Z20 is a capacitive multi-touch screen, whereas I have had experience with a resistive (single touch) type of touch screens. I'm not 100% sure if the following will help but let's see if we can this working on a portrait screen.

I did happen to discover a graphical application that might make configuration of the touch screen easier, however I don't know if this utility will work for your particular touch screen. Let's try it anyway:

  1. Download eGTouch_v2.5.5814.L-x from http://www.eeti.com/drivers_Linux.html

  2. Extract this tar.gz file to somewhere like your desktop.

  3. Open the newly extracted folder, right click and Open in Terminal (unfortunately, the next steps need the terminal)

  4. Then type this command:

     sudo ./setup.sh
    

    Followed by typing your password (which doesn't show feedback like ****'s while typing)

     [sudo] password for gege: 
    
  5. Follow the prompts:

    • Press Y, then ENTER to agree to the terms.

    • Type 2, then ENTER for USB.

    • Press ENTER to confirm the device is plugged in.

    • Press ENTER to accept the default choice of 1 controller.

  6. Reboot your system.

  7. A new entry appears in the Accessories menu.

This is a utility that may better assist in re-calibrating your touch screen (and saving the configuration for you, I'd assume). I've used this tool many years ago.

I'd recommend using a compatible capacitive touch screen stylus if possible when tapping the points.

Good luck!


If in the unfortunate event the screen isn't detected or calibration still causes a problem, I'm out of ideas. If so, please could you open the Terminal and copy & paste the output of this commands to inform us of what's connected to your machine:

lsusb

This will reveal the touch screen controller and hopefully be useful to someone who has dealt with capacitive touch screens. I'm aware capacitive touch screens aren't designed to be calibrated as their technology to resistive touch screens is different. There just needs to be a way to tell the input device to operate at 90Âș.

2 Likes

Typo or command change in 18.04? See below :slight_smile:

steven@UM-beta1:~$ xinput-calibrator

Command 'xinput-calibrator' not found, did you mean:

  command 'xinput_calibrator' from deb xinput-calibrator

Try: sudo apt install <deb name>

steven@UM-beta1:~$

Typo, xinput_calibrator would be the command. I’ll update my previous post.

1 Like

Wow! Some body has been very busy, thanks lah7,
I am aware of the work that goes into a tutorial like this and am very grateful, i will get to work on this and get back to
Cheers to all

OK. I installed eGTouch, followed your instructions and came to the selecting USB / 2 and 1 etc as per instructions., and thought at the time “this is not USB conected” there were 2 options 
 RS232 and/or USB, I used the usb.
When the window appeared it was blank
I can’t seem to find an entry any where to uninstall it and try the terminal input again


Here is the lsusb report, I see there are 2 touch screen systems shown

gra@gra20t-B:~$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 004: ID 0781:5590 SanDisk Corp.
Bus 003 Device 003: ID 0424:5534 Standard Microsystems Corp. Hub
Bus 003 Device 002: ID 04f2:b50b Chicony Electronics Co., Ltd
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 010: ID 8087:0a2a Intel Corp.
Bus 002 Device 009: ID 056a:012c Wacom Co., Ltd
Bus 002 Device 008: ID 03eb:8a55 Atmel Corp.
Bus 002 Device 006: ID 0483:91d1 STMicroelectronics Sensor Hub
Bus 002 Device 004: ID 1199:9063 Sierra Wireless, Inc.
Bus 002 Device 005: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 003: ID 0424:2134 Standard Microsystems Corp. Hub
Bus 002 Device 002: ID 04f2:b470 Chicony Electronics Co., Ltd
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
gra@gra20t-B:~$

In that case, I don't believe that particular utility will work as we've discovered it's actually a Wacom tablet. As I suspected, capacitive touch screens don't generally get "calibrated" in the same way. It may be useful for someone else though.

So we've narrowed it down to these devices:

Bus 002 Device 009: ID 056a:012c Wacom Co., Ltd
Bus 002 Device 008: ID 03eb:8a55 Atmel Corp.

The latter being the digitizer pen (I had no idea).


Uninstall eGTouch

Since it's not a traditional package, its files need removing manually.

:warning: Make sure you run these commands exactly as shown, as they are considered a little risky.

This will find any files containing egalax and egtouch and delete them. I also tested them in a virtual machine to be sure. :thumbsup:

sudo find . -iname "*egalax*" -delete
sudo find . -iname "*egtouch*" -delete
rm -r /usr/local/eGTouch64withX/

It's normal to see Operation not permitted and Permission denied as some areas of the system may be not be accessible, even as root. It won't output the list unless you run without -delete.

File listing (reference)
./usr/share/X11/xorg.conf.d/52-egalax-virtual.conf
./usr/src/linux-headers-4.4.0-77-generic/include/config/touchscreen/usb/egalax.h
./usr/src/linux-headers-4.4.0-31-generic/include/config/touchscreen/usb/egalax.h
./run/systemd/generator.late/sysinit.target.wants/eGTouch.service
./run/systemd/generator.late/eGTouch.service
./tmp/eGTouch_2018.3.25_12.log
./usr/local/eGTouch64withX
./usr/local/eGTouch64withX/eGTouchL.ini
./usr/local/eGTouch64withX/eGTouchD
./usr/local/eGTouch64withX/eGTouchU
./usr/local/eGTouch64withX/eGTouchU.png
./usr/share/pixmaps/eGTouchU.png
./usr/share/icons/gnome/48x48/apps/eGTouchU.png
./usr/share/applications/eGTouchU.desktop
./usr/bin/eGTouchD
./usr/bin/eGTouchU
./etc/rcS.d/S99eGTouch
./etc/eGTouchL.ini
./etc/init.d/eGTouch.sh
./sys/fs/cgroup/devices/system.slice/eGTouch.service
./sys/fs/cgroup/systemd/system.slice/eGTouch.service
./usr/share/X11/xorg.conf.d/52-egalax-virtual.conf
./usr/src/linux-headers-4.4.0-77-generic/include/config/touchscreen/usb/egalax.h
./usr/src/linux-headers-4.4.0-31-generic/include/config/touchscreen/usb/egalax.h

There is no registry (unlike Windows) so once the files are gone, it will be completely vanished on next reboot. :tada:

Uninstall xinput-calibrator

I don't think we'll be needing this, so we can go ahead and remove that too from here.

sudo apt remove xinput-calibrator

The Solution?

Unfortunately, fixing this will require the terminal in some way since MATE Desktop doesn't have a graphical configuration tool for Walcom tablets right now. Other desktop environments like GNOME/Unity (as used in vanilla Ubuntu) definitely do in their Settings screen.

There is a xsetwacom command, but as I don't have any Walcom tablet, I won't be able to advise what command specifically will rotate the tablet's input by 90Âș. :frowning:

Typing this will load a manual:

man xsetwacom

The command might be something like this:

xsetwacom --list devices
xsetwacom set "<Name of tablet here>" rotate half

The manual reads this:

   Rotate none|half|cw|ccw
          Set the tablet to the given rotation:
            none: the tablet is not rotated and uses its natural rotation
            half: the tablet is rotated by 180 degrees (upside-down)
            cw: the tablet is rotated 90 degrees clockwise
            ccw: the tablet is rotated 90 degrees counter-clockwise

          Rotation is a tablet-wide option: rotation of one  tool  affects
          all other tools associated with the same tablet. When the tablet
          is physically rotated, rotate any tool to the corresponding ori‐
          entation.  Default:  none

Hopefully the solution is as straight forward as a command instead of our journey trying to "recalibrate". :slight_smile:

1 Like

Many thanks lah7 for your time and input. I’ve deleated etouch and had a look at the wacom manual but i would have to start and learn the terminal language used there to understand any of it.
I will have shelve this project and just by a wifi mouse. I did find that the surface pro has the same problem.
Thanks and Cheers

Now that ubunto 18 is out 
 there install script crashes out badly 


eGalax Inc. USB TouchController

kc7noa1@kc7noa1-Latitude-E5510:~$ xinput_calibrator -v --device 11
DEBUG: XInputExtension version is 2.3
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Selected device: eGalax Inc. USB TouchController
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
DEBUG: Not evdev calibrator: Evdev: invalid “Evdev Axis Calibration”
property format
Calibrating standard Xorg driver “eGalax Inc. USB TouchController”
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 ‘eGalax Inc. USB TouchController’ is a sysfs name.
kc7noa1@kc7noa1-Latitude-E5510:~$

kc7noa1@kc7noa1-Latitude-E5510:~$ lsusb
Bus 002 Device 006: ID 413c:8187 Dell Computer Corp. DW375 Bluetooth Module
Bus 002 Device 005: ID 0bda:a811 Realtek Semiconductor Corp.
Bus 002 Device 008: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax
TouchScreen
Bus 002 Device 007: ID 17e9:036e DisplayLink
Bus 002 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 002 Device 003: ID 046d:c51b Logitech, Inc. V220 Cordless Optical
Mouse for Notebooks
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kc7noa1@kc7noa1-Latitude-E5510:~$ uname -a
Linux kc7noa1-Latitude-E5510 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27
15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
kc7noa1@kc7noa1-Latitude-E5510:~$