EloTouch 2639L touchscreen (input device) possibly not properly recognized, XY axis inverted, calibration off

Bug #362308 reported by Fabián Rodríguez on 2009-04-16
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
xf86-input-evtouch (Ubuntu)
Medium
Bryce Harrington

Bug Description

Binary package hint: xserver-xorg-input-elographics

This 26" touchscreen input device part is handled via USB, and it seems not to be recognized properly, as such the elographics input driver doesn't seem to know how to handle it properly. It registers touch input and click out of the box (with or without the elographics driver), but XY axis are inverted. Bug #218671 describes similar behavior on other models and a workaround, but this particular model is not working following those.

The (copyrighted) manual is available here:
http://media.elotouch.com/pdfs/manuals/e983412_d.pdf

PPA for xorg-xserver-xinput-elographics driver with fixes/patches described in Bug#218671:
https://edge.launchpad.net/~ubuntu-x-swat/+archive/ppa

(II) evaluating device (TOUCHSCREEN)
(II) XINPUT: Adding extended input device "TOUCHSCREEN" (type: Elographics TouchScreen)
(--) Configured Mouse: PnP-detected protocol: "ExplorerPS/2"
(II) Configured Mouse: ps2EnableDataReporting: succeeded
(**) Option "Device" "/dev/hidraw0"
Not at the specified rate or model 2310, will continue
Unable to ask Elographics touchscreen identification
couldn't enable device 4
SetClientVersion: 0 9

"TOUCHSCREEN" id=4 [XExtensionPointer]
 Num_buttons is 1
 Num_axes is 2
 Mode is Absolute
 Motion_buffer is 256
 Axis 0 :
  Min_value is -1
  Max_value is -1
  Resolution is 9500
 Axis 1 :
  Min_value is -1
  Max_value is -1
  Resolution is 10500

In Jaunty, hal detects it (but same problem of the XY switch):
(II) config/hal: Adding input device Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: always reports core events
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: Device: "/dev/input/event3"
(II) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: Found 1 mouse buttons
(II) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: Found x and y absolute axes
(II) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: Configuring as mouse
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: YAxisMapping: buttons 4 and 5
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" (type: MOUSE)
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: (accel) keeping acceleration scheme 1
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: (accel) filter chain progression: 2.00
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: (accel) filter stage 0: 20.00 ms
(**) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface: (accel) set acceleration profile 0

Fabián Rodríguez (magicfab) wrote :
Fabián Rodríguez (magicfab) wrote :
Fabián Rodríguez (magicfab) wrote :
Fabián Rodríguez (magicfab) wrote :

Relevant xorg.conf device section:
Section "InputDevice"
        Identifier "xeloserial"
        Driver "elographics"
        Option "Device" "/dev/hidraw0"

        Option "MinX" "0"
        Option "MaxX" "1366"
        Option "MinY" "0"
        Option "MaxY" "768"
        Option "ScreenNumber" "0"
        Option "ReportingMode" "Raw"
        Option "ButtonThreshold" "17"
        Option "ButtonNumber" "1"
        Option "SendCoreEvents"
 Option "SwapXY" "0"
EndSection

Fabián Rodríguez (magicfab) wrote :

I haven't tested them but Linux pre-built drivers for 2.6.24-19-generic appear to be available here:
http://www.elotouch.com/Support/Downloads/Linux/dnld_linux.asp

Fabián Rodríguez (magicfab) wrote :

This is the Xorg log when using SwicthXY option in the elographics driver, which doesn't have any effect.

Fabián Rodríguez (magicfab) wrote :

cat /proc/bus/input/devices:

I: Bus=0003 Vendor=04e7 Product=0020 Version=0100
N: Name="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface"
P: Phys=usb-0000:00:1d.1-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/input/input3
U: Uniq=20H84421
H: Handlers=mouse1 event3 js0
B: EV=1b
B: KEY=10000 0 0 0 0 0 0 0 0
B: ABS=100 3
B: MSC=10

Fabián Rodríguez (magicfab) wrote :

Ok, i have now tested this in Jaunty, same xorg.conf file, I am attaching the resulting xorg log.

It seems as if the elographics options in xorg.conf don't get applied.

Bryce Harrington (bryce) on 2009-04-16
description: updated
description: updated
description: updated
Bryce Harrington (bryce) wrote :

The error "Unable to ask Elographics touchscreen identification" indicates that during the DEVICE_ON event, it couldn't get the controller to report various info (the ELO_ID). When this happens, it deactivates the device and closes the fd. So this looks like your issue.

Thus the question becomes, why does the controller not provide the requested info?

On Thu, Apr 16, 2009 at 04:06:06PM -0000, Fabián Rodríguez wrote:
> Ok, i have now tested this in Jaunty, same xorg.conf file, I am

I assume the xorg.conf is the stock default, but could you attach it in
any case just for completeness' sake?

Bryce

Hey Fabian, try installing the evtouch driver, and see if that works better.

  sudo apt-get install xserver-xorg-input-evtouch

Then add to your xorg.conf something like this:

Section InputDevice
        Identifier "touchscreen"
        Driver "evtouch"
        Option "Device" "/dev/input/event3"
        Option "DeviceName" touchscreen"
        Option "ReportingMode" "Raw"
        Option "SendCoreEvents"
        Option "MinX" "316"
        Option "MinY" "36"
        Option "MaxX" "3791"
        Option "MaxY" "3934"
        Option "Rotate" "cw"
        Option "SwapX" "1"
        Option "SwapY" "1"
EndSection

Section "ServerLayout"
 Identifier "Default Layout"
 Screen "Default Screen"
        InputDevice "touchscreen"
EndSection

You may need to fiddle with some of the parameters. Rotate also accepts a "CCW" value for instance, and the X/Y values probably should be customized for the hardware.

You may have to change /dev/input/eventX; try "cat /dev/input/event0", "cat /dev/input/event1" etc. while touching the screen; and see which one produces output.

Some of these might be settable on the fly, particularly in jaunty. Look in this directory:

  /sys/module/usbtouchscreen/parameters/

If there are files there, you may be able to use them to control the device behavior. E.g.:

  echo Y > /sys/module/usbtouchscreen/parameters/swap_xy

Fabián Rodríguez (magicfab) wrote :

Thank you, Bryce!

The xorg.conf file is the same, I will attach it tomorrow when I get access to the hardware.

I've tried the binary drivers and the instructions to get them going in Hardy are not trivial and they require manipulation of several system files. It is not a package that can be easily added and removed. This essentially means it's not suitable for use in an LTS environment where possible updates will break it unless carefully applied. I also got similar results and the calibration tool included reported the driver couldn't be found.

SwapX and SwapY options in that driver seem like they would also help if the same issue comes up. I'll be able to try this tomorrow AM when I get access to the hardware again.

Fabián Rodríguez (magicfab) wrote :

Ahem. This now works :) Thanks again.

I now need the calibration tool in System > Administration > Calibrate touchscreen to work as my XY corrdinates are a bit off.

Your xorg.conf had two minor typos, here's what I used:

Section "InputDevice"
        Identifier "Touchscreen"
        Driver "evtouch"
        Option "Device" "/dev/input/event3"
        Option "DeviceName" "Touchscreen"
        Option "ReportingMode" "Raw"
        Option "SendCoreEvents"
        Option "MinX" "316"
        Option "MinY" "36"
        Option "MaxX" "3791"
        Option "MaxY" "3934"
# Option "Rotate" "cw"
        Option "SwapX" "1"
        Option "SwapY" "1"
EndSection

The calibration tool complains it doesn't recognize the screen. I've submitted the hal information in Bug #317094 - see:
https://bugs.edge.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/317094/comments/22

Fabián Rodríguez (magicfab) wrote :

Oliver Grawert advised to use an FDI file instead. Thanks Oli!

The calibration tool now works but I still don't get proper coordinates. Oliver, thanks for the hints you provided. Here is the /usr/share/hal/fdi/policy/20thirdparty/50-elotouch.fdi file I used:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" contains="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface">
      <match key="info.capabilities" contains="input">
        <merge key="input.x11_driver" type="string">evtouch</merge>
        <merge key="input.x11_options.minx" type="string">130</merge>
        <merge key="input.x11_options.miny" type="string">197</merge>
        <merge key="input.x11_options.maxx" type="string">3945</merge>
        <merge key="input.x11_options.maxy" type="string">3894</merge>
        <merge key="input.x11_options.swapx" type="string">1</merge>
        <merge key="input.x11_options.swapy" type="string">1</merge>
      </match>
    </match>
  </device>
</deviceinfo>

</deviceinfo>

After puting that file in place I also removed the input device information from xorg.conf, rebooted and now the calibration tool worked as expected. However, upon restarting the session, The cursor is still off. I'll research the driver options further.

Fabián Rodríguez (magicfab) wrote :

Upon closer inspection, the vertical axis (X) is Ok, but the horizontal axis is not.

If i touch the screen exactly in the middle, the coordinates are ok. But as soon as I move right or left, the movement is amplified until it is way off. I am attaching a video demonstrating this.

summary: EloTouch 2639L touchscreen (input device) possibly not properly
- recognized, XY axis inverted
+ recognized, XY axis inverted, calibration off
Bryce Harrington (bryce) wrote :

For the fdi file approach, did you try that on hardy or on intrepid/jaunty? I suggested the xorg.conf approach because I suspected the fdi approach wouldn't be usable on hardy. But I could easily be wrong.

Changed in xserver-xorg-input-elographics (Ubuntu):
assignee: nobody → Bryce Harrington (bryceharrington)
importance: Undecided → Medium
status: New → Triaged
affects: xserver-xorg-input-elographics (Ubuntu) → xf86-input-evtouch (Ubuntu)
Fabián Rodríguez (magicfab) wrote :

This bug is all about Jaunty. 8.04 has two other issues in the platform I target (NIC, graphics), with corresponding bugs.

Fabián Rodríguez (magicfab) wrote :

So, good news and bad news. The good news is I got a beta driver from Elo and this now works very nicely (including a proper calibration utility, and control panel for further options config).

Bad news is I can't share the driver just yet, I've asked what license it has and how it could become part of Ubuntu. This may require packaging from Elo, or else.

Meanwhile I'd suggest anyone with these issues contact their reseller or Elo directly, and ask about the drivers. The version I got is beta, so again, there may be further restrictions in getting access to that.

If you got beta drivers from Elo, please note you will need libusb-1.0-0 (in universe) and libmotif3 to run the cpl utility.

Hawk (rthawkcom) wrote :

I'm having the same issues with Planar PT1510MX. Touch screen support is just horrible. A shame since there are a lot of new laptops and monitors coming out on the market. Can anyone recommend anything?

Bryce Harrington (bryce) on 2009-09-02
tags: added: jaunty
Fabián Rodríguez (magicfab) wrote :

Hawk, open another bug, as Planar PT1510MX is different hardware.

Bryce Harrington (bryce) wrote :

Fabian, ok I'll go with the fdi you posted, at least it sounds like it's in the ballpark. Let us know if you (or anyone else) come up with better parameters for it.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xf86-input-evtouch - 0.8.8-0ubuntu5

---------------
xf86-input-evtouch (0.8.8-0ubuntu5) karmic; urgency=low

  * control: Add dependencies for ttf-freefont and x-ttcidfont-conf.
    These dependencies are required by one of the earlier patches.
    (LP: #299178)
  * Add debian/fdi/50-elo-2700.fdi to support EloTouch 2700 IntelliTouch
    Touchmonitor Interface.
    (LP: #362308)
  * Add debian/fdi/50-gunze.fdi to support GUNZE USB Touch Panel
    (LP: #368135)

 -- Bryce Harrington <email address hidden> Wed, 14 Oct 2009 02:10:14 -0700

Changed in xf86-input-evtouch (Ubuntu):
status: Triaged → Fix Released
Fabián Rodríguez (magicfab) wrote :

I'll ping Elo again about this, my last request was met with silence.

Unfortunately although this bug is marked Fix Released, our fix doesn't work unless you have the manufacturer's (non-free) drivers.

As I indicated before anyone with this hardware should be able to get such drivers from them directly. I'll see if I can share contact information too.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers