eGalax TouchScreen

From: Christian Loitsch
Date: Thu Oct 08 2009 - 16:50:43 EST


Hello

(please CC me directly)

i don't need this touchscreen any longer, and would like to donate it to
anybody willing to work on improved support.

10" (currently used with an MSI Wind)
0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
(you can find this touchscreen on ebay)

I once was able to make the touchscreen work, but it wasn't as easy as
pluging the touchscreen in.

First come first served, except for Daniel Ritz (the developer of the
touchscreen module), who has highest priority.

Please just email me your address. I will try to update:
<http://christian.delta64.com/touchscreen/stillAvailable.html>
as fast as possible.

Please give me ~1week to prepare the package (and also give Daniel some
time to respond).

a+
christian

here are some details i found out:

There are currently 3 ways an eGalax touchscreen 0eef:0001 can be
handled by the kernel.

1) tkusb: a module (GPL) provided by the manufacturer, which is not in
the kernel and (AFAIK) requires a binary-only xorg module. [1]

2) usbhid: which recognized my touchscreen, but I was not able to make
it work in xorg.

3) the usbtouchscreen module. This module only "accepts" the
touchscreen if usbhid did not (so I currently unload usbhid before
activating the touchscreen).
This module however only works if the touchscreen is set to use a
different mode. (loading the tkusb module before the usbtouchscreen
module works, as tkusb sends this mode-change command to the touchscreen
[2])

The touchscreen works perfectly with usbtouchscreen and evdev. I was
not able to make it work in any other way.

If I understood the usbtouchscreen code correctly you would just need to
add a device specific init for eGalax touchscreens and send the command
([2]) to the device. (AFAIK eeti does the same in their tkusb module
for every eGalax touchscreen).

[1] <http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm>
[2] code from eeti-driver tkusb.c:
---
#ifndef _REMOVE_CHANGE_FORMAT^M
scr->output[0] = 0x0A;^M
scr->output[1] = 1;^M
scr->output[2] = 'A';^M
if( !DoSendData( scr, 3 ) )^M
---

Attachment: signature.asc
Description: This is a digitally signed message part.