Does the Evtouch driver support the usb Elo 2216 resistive touch screen?

David Sharp whereami at
Sun Oct 28 13:47:47 PDT 2007

On 10/28/07, Nate Moseman <natemoseman at> wrote:
> On 10/27/07, Nate Moseman <natemoseman at> wrote:
> > I've been banging my head against this one for a while now, but I can't
> figure out what I am suppose to be doing.
> >
> > I am using Debian Lenny/Sid with their Xorg packages. I've tried the
> Elographics driver, but my thing is not serial; it's usb so I figured that
> it's not suppose to be used with my device. I've tried hacking a 'elousb'
> driver and was able to get it to compile and sorta get loaded in this
> release... but I have absolutely know clue what I am doing. I can get the
> module to load but in it still complains that the driver is non-existant.
> >
> > I got it from:
> >
> > So I figured the evtouch seems to be the right driver.. but people only
> talk about Elo Intellitouch devices work which are accuostic devices, mine
> is a accutouch and is resistive so I figure it's different and I don't know
> if it's supported. I can get it to respond to key presses and I can
> sometimes get the cursor to wiggle back and forth at the bottom of the
> screen or the top of the screen and once sort a middle of the screen.
> > But I can't get it to move up and down any.
> >
> > When trying to run the calibration tool it'll respond to clicks, but it
> doesn't seem to know that the cursor is moving around any. The minimal stays
> at '0' and the maximum stays at '2000' always for both X and Y no matter how
> much I move things around.
> >
> >
> Ok.  PROBLEM SOLVED... Almost.
> I am still curious about the evtouch stuff. But in fact I got it to work
> passably well through the JOYSTICK DRIVER INTERFACE?! Who in the hell would
> think that would work. The only clue I had was the screwy *-event-joystick
> symbolic link that was created. Otherwise I would of never guessed to try
> the joystick driver.

This makes sense if you think about how events are reported to the
Linux input subsystem. Mice report relative motion events, while
joysticks and touchpads report absolute position events. in addition
to the available buttons, this is all the input subsystem knows about
the device drivers that report events to it. Then it creates various
event handlers (evdev, keybdev, mousedev, joydev) based partially on
the type of axes the device drivers report. relative axes? mousedev.
absolute axes? joydev. Everything gets an evdev handler as well.

You can read all about this in the kernel documentation. see

> Seriously. This was a big wtf to me.  I was getting desperate and
> frustrated.. I was lookup up HID specifications and trying to wrap my head
> around a combination of code from X's evtouch driver, that out-of-date
> elousb thing, and kernel's HID stuff.
> SOOOO...
> If any body would happen to have the Accutouch USB Elo touch screen then you
> can use the joystick driver to get it to work. Hopefully this will end up in
> the top ten results for anybody searching for 'Elo usb touchscreen linux' or
> whatever they would search for.
> Note that is is the Accutouch touch screen. This is a resistive-based touch
> screen and it's usb. There are many different types of Elo touch screens and
> it seems that the most common are either going to be serial-based resistive
> or usb-based acoustic-based.
> For the resistive serial I expect you'd want to use the elographics driver.
> The acoustic-based Elo touch screens are the Intellitouch things and I guess
> are usb-based. For those it seems (according to Ubuntu user's wiki) that the
> evtouch driver is what you'd want.
> But for the Accutouch Elo stuff that's usb-based give the joystick driver a
> shot.
> I got it to work by switching to virtual console (ctrl-alt-f2) and run the
> jscal program. This program is designed for calibrating joystick devices and
> works 'ok' well for calibrating my touchscreen.
> You'd want to be carefull though.. it's tricky and pay close attention to
> the instructions. You don't want to save a bum calibration.
> > jscal -c /dev/input/js0
> What I did is: Axis 0 --- touch the very left of the screen,, right pressing
> on the bezel. Then the middle of the screen. Then the far far right.
> Then for Axis 1 -- touch the very bottom of the screen, then the middle,
> then the top.
> Axis 2 is the 'tap' mechanism. I hit 'enter' for for the 'minimal' without
> touching the screen so it gets set to 0. Then again for the middle. For the
> maximum I pressed down on the screen and hit enter. I don't know if it's
> correct, but it seems to be working ok for now.
> The realy tricky part is finding the center. I literally had to tape string
> in a big X across my screen to get a accurate center position. (linux
> usability kicks-ass, woot!) I'll play around and try to whip up a little gui
> for doing calibraiton, but I suck at programming so don't bet on me
> finishing it.
> Once you get the calibration done (it'll probably take a half dozen tries)
> then save it to a file, which you can execute at boot-up to restore the
> calibration.
> jscal -p /dev/input/js0  > /etc/
> After that is done then you have to configure X. This is the configuration I
> choose:
> Section "InputDevice"
>     Identifier "touchscreen"
>     Driver "joystick"
>     Option "Device" "/dev/input/js0"
>     Option "MapAxis1" "mode=absolute deadzone=0 axis=x"
>     Option "MapAxis2" "mode=absolute deadzone=0 axis=-1y"
> EndSection
> Don't forget to adjust the 'ServerLayout' section accordingly. (add the
> 'touchscreen' name identifier)
> Now I tried the jscalibrator program in X, but apparently having X
> configured to use the joystick realy screws things up when you try to run
> the calibration program. So I recommend running jscal with X turned off.
> Please, please, please will somebody add this information to some document
> somewere for this AND correct any misinformation I spread in this email list
> and in potential documentation.
> I couldn't find any information on this anywere and I am happy that it
> works. BTW the drivers for Debian Lenny/Sid are a bit broken right now. I
> had to compile them from the git repo to get it to work right. The problem
> was with the Axis 2 configured in 'absolute' mode it wouldn't work at all...
> either with the x or y axis.  It would work fine in the default joystick
> configuration, but that's not usefull for a touch screen.
> Don't get me wrong. IT works nice now and I know that X developers are busy
> and very smart (and probably very good looking) and my touch screen isn't
> common, so I am not bitching at you guys so much as just a little venting.
> IT works, I am happy. Thanks.
> _______________________________________________
> xorg mailing list
> xorg at

More information about the xorg mailing list