Friday, March 18, 2011

Xenarc 702tsv on Lucid with evtouch driver

I got a Xenarc touchscreen working pretty well, except that intermittently (and usually after a reboot), the mouse pointer would behave erratically, while other times the touch behavior would work just fine.

The trick was to create an /etc/modprobe.d/xenarc.conf with:
# Stop messing with my Xenarc touch screen
blacklist usbtouchscreen

(I found that suggestion on Samiux's blog.

Now it seems to work consistently across reboots. The rest of the process was to set up a /usr/lib/X11/xorg.conf.d/11-touchkit.conf with:
Section "InputClass"
       Identifier "Touchkit Touch"
       MatchIsTablet   "on"
       MatchDevicePath "/dev/input/event*"
       Driver  "evtouch"
       Option  "ReportingMode" "Raw"
       Option  "Emulate3Buttons"
       Option  "Emultate3Timeout"      "50"
       Option  "SendCoreEvents"        "On"
       Option  "TapTimer"              "200"
       Option  "LongTouchTimer"        "400"
       Option  "MinX"                  "140"
       Option  "MinY"                  "193"
       Option  "MaxX"                  "1550"
       Option  "MaxY"                  "1750"
EndSection

Note that I've tried ~6 different 702TSV units, and they all seem to more or less work with these calibration parameters.

And then this is my /etc/X11/xorg.conf:
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Xenarc700"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Xenarc700"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        # The native resolution of a Xenarc 702TSV is 800x480, but
        # I couldn't find any modes that'd work.
        Modes       "800x600"
    EndSubSection
EndSection

Section "ServerFlags"
    Option         "BlankTime" "0"
    Option         "StandbyTime" "0"
    Option         "SuspendTime" "0"
    Option         "OffTime" "0"
EndSection

2 comments:

Unknown said...

I have a xenarc 1020tsv and am trying to go the route of the eGalaxTouch driver that came with the unit... why did you choose to go with evtouch instead?

Also, once you're using evtouch, what utility do you use to calibrate it?

Thanks,
Dave
P.S. I'm also on 10.04LTS

Anonymous said...

I went with evtouch because it was packaged by ubuntu. Proprietary packages lead to heartache in the long run.

I calibrated the first one "by hand", nudging the values and trying them, and then I've found the other units to work with those values.