External Elo touchscreen attached to a non-touchscreen laptop

Having trouble getting this to work. Touchscreen works fine, but the scale is wrong – for instance, clicking in the lower left corner of the touchscreen places the cursor in the lower left corner of the laptop screen – laptop screen is left-of external touchscreen. (BTW, both screens are 1366x768) Clearly the touchscreen is being scaled to the full desktop instead of just the external monitor.

Found some forum posts on askubuntu re: getting this to work: link

followed advice found there, but ended up unable to get it working – the xrandr option given –on in step 4 doesn’t exist. I’ve tried various other ones, like –auto and no luck. The calibration goes correctly, but I cannot reactivate the primary laptop screen.

If I re-enable the primary LVDS screen in the laptop via the GUI from the Mate applications menu --instead of doing step 4 from the link above-- I get mirrored screens. If I disable mirroring, I’m back to where I started and have scaled touch.

Any ideas? I’m no Xpert. (See what I did there? :slight_smile: )

PS: I am doing this for a friend, and am sometimes remote via phone. I will be going over in person tomorrow.

Aloha!

It's been a long while since I played with a (resistive) touch screen, but never tried it with external monitors.

What I'd do is ensure the monitors are extended/positioned as desired in Monitors, then try installing the xinput-calibrator package and run that for the touch screen.

I'd assume calibrating that one touch screen should tell X to map co-ordinates to the dimensions of that area?

AFAIK, after doing the 4 point calibration, it advises copy and pasting a snippet to an Xorg file to retain settings after a reboot.

Failing that, maybe you could:

  • Tinker with the values outputted by the calibration tool.
  • "Fool" the calibration tool by touching further/closer to where the right-side + marks are.

Yep, I see what you did. :wink: I'd Xpect there will be a way.

So this was a bear. I’m reconstructing this from memory, so I don’t have the details perfectly.

We upgraded to 17.04, then back down to a fresh install of16.04.3. (But ultimately, we might not have had to.)

The workaround was to mirror the displays using the GUI, so this might not work for everyone.

Elo 32" touchscreen @ 1366x768, and a Lenovo Z565 @ 1366x768. This is older stuff, and these were their native resolutions (although the ELO can do greater) which seems to be the only good coincidence we experienced.

Once the displays were mirrored we could get an unscaled accurate touch during calibration (cursor was always down and right prior). I cannot describe all the weird effects we got, but they all clearly involved at least two modes (presumably X11 and the touchscreen driver) miscommunicating interactively about resolution.

After mirroring, ran xinput-calibration --output-format xinput but still ended up with the cursor being slightly down and right of the touch point.

Then ran xinput map-to-output id display-id

This caused the touch to be accurate!

Then added this script to autostart (based on xrandr and xinput-calibration’s output):

#!/bin/sh
#
# fix touch screen
xinput set-int-prop "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" "Evdev Axis Calibration" 32 132 4183 62 4169
xinput set-int-prop "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" "Evdev Axes Swap" 8 0
xinput map-to-output 10 VGA-0

Everything about this was hard – there is very little easily comprehensible information out there, and most of it is three to five years old. Some of the information involved matrix calculations as configuration methods.

I feel like I’ve been missing something obvious, and I’m wondering if Ubuntu (or Mate) will ever build a good GUI app to resolve this, because my brain still hurts.

PS: in the commands above xinput-calibrator should be xinput_calibrator but formatting messes it up.

1 Like