Hi Guys,
I have a custom ARM9 board and trying to use EETI eGalax touchscreen with it.
Single touch is good enough for me. (Controller: PCAP7200_DUAL_42X54_B_IC -
EXC205442CBG)
I am using tslib (1.0-106-gf6c499a) and Qt 4.8.0. My kernel version is 2.6.27.
I made it work with patching the usbtouchscreen driver.c in the below way. But
the points are very much jittered.
This what I got when I draw a circle.
http://img163.imageshack.us/img163/2003/imag0976u.jpg
Second option would be using it as HID Device but the result is even worse.
HID Device Descriptor of the touch controller defines 3 times and (I guess)
evdev connects wrong parameters to X and Y. evtest reports Rx and Z when I
touch it. Please see evtest output and usbhid debug output.
So did anyone came across a similar problem or have an idea how I can use this
touchscreen?
Best Regards
Gokhan
Index: drivers/input/touchscreen/usbtouchscreen.c
===================================================================
--- drivers/input/touchscreen/usbtouchscreen.c (revision 87)
+++ drivers/input/touchscreen/usbtouchscreen.c (working copy)
@@ -162,6 +162,7 @@
{USB_DEVICE(0x0eef, 0x0002), .driver_info = DEVTYPE_EGALAX},
{USB_DEVICE(0x1234, 0x0001), .driver_info = DEVTYPE_EGALAX},
{USB_DEVICE(0x1234, 0x0002), .driver_info = DEVTYPE_EGALAX},
+ {USB_DEVICE(0x0eef, 0x7237), .driver_info = DEVTYPE_EGALAX},
#endif
#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT
@@ -291,8 +292,8 @@
if ((pkt[0] & EGALAX_PKT_TYPE_MASK) != EGALAX_PKT_TYPE_REPT)
return 0;
- dev->x = ((pkt[3] & 0x0F) << 7) | (pkt[4] & 0x7F);
- dev->y = ((pkt[1] & 0x0F) << 7) | (pkt[2] & 0x7F);
+ dev->x = ((pkt[2] & 0x0F) << 7) | (pkt[1] & 0xFF);
+ dev->y = ((pkt[4] & 0x0F) << 7) | (pkt[3] & 0xFF);
dev->touch = pkt[0] & 0x01;
return 1;
@@ -939,9 +940,9 @@
#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
[DEVTYPE_EGALAX] = {
.min_xc = 0x0,
- .max_xc = 0x07ff,
+ .max_xc = 0x0fff,
.min_yc = 0x0,
- .max_yc = 0x07ff,
+ .max_yc = 0x0fff,
.rept_size = 16,
.process_pkt = usbtouch_process_multi,
.get_pkt_len = egalax_get_pkt_len,
tslib.conf
======
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
evtest reports Rx and Z when I touch it:
Event: time 946686119.106410, -------------- Report Sync ------------
Event: time 946686119.220222, type 4 (Misc), code 4 (ScanCode), value 90001
Event: time 946686119.220251, type 1 (Key), code 272 (LeftBtn), value 0
Event: time 946686119.220299, -------------- Report Sync ------------
Event: time 946686129.466289, type 3 (Absolute), code 2 (Z), value 3278
Event: time 946686129.466324, type 3 (Absolute), code 3 (Rx), value 2698
Event: time 946686129.466340, -------------- Report Sync ------------
Event: time 946686129.468252, type 4 (Misc), code 4 (ScanCode), value 90001
Event: time 946686129.468274, type 1 (Key), code 272 (LeftBtn), value 1
Event: time 946686129.468330, -------------- Report Sync ------------
Event: time 946686129.662244, type 3 (Absolute), code 2 (Z), value 3274
Event: time 946686129.662288, -------------- Report Sync ------------
Event: time 946686129.673252, type 3 (Absolute), code 2 (Z), value 3270
Event: time 946686129.673295, -------------- Report Sync ------------
Event: time 946686129.683251, type 3 (Absolute), code 2 (Z), value 3266
Event: time 946686129.683291, -------------- Report Sync ------------
Event: time 946686129.694250, type 3 (Absolute), code 2 (Z), value 3262
Event: time 946686129.694289, -------------- Report Sync ------------
Event: time 946686129.705249, type 3 (Absolute), code 2 (Z), value 3258
usbhid debug outputs:
drivers/hid/hid-input.c: Mapping: Digitizers.TipSwitch ---> Key.Touch
drivers/hid/hid-input.c: Mapping: Digitizers.InRange ---> Key.ToolPen
drivers/hid/hid-input.c: Mapping: GenericDesktop.X ---> Absolute.X
drivers/hid/hid-input.c: Mapping: GenericDesktop.Y ---> Absolute.Y
drivers/hid/hid-input.c: Mapping: Button.0001 ---> Key.LeftBtn
drivers/hid/hid-input.c: Mapping: Button.0002 ---> Key.RightBtn
drivers/hid/hid-input.c: Mapping: GenericDesktop.X ---> Absolute.Z
drivers/hid/hid-input.c: Mapping: GenericDesktop.Y ---> Absolute.Rx
drivers/hid/hid-input.c: Mapping: Digitizers.TipSwitch ---> Key.Touch
drivers/hid/hid-input.c: Mapping: Digitizers.InRange ---> Key.ToolFinger
drivers/hid/hid-input.c: Mapping: Digitizers.0051 ---> Absolute.Misc
drivers/hid/hid-input.c: Mapping: Digitizers.0047 ---> Key.Btn0
drivers/hid/hid-input.c: Mapping: GenericDesktop.X ---> Absolute.Ry
drivers/hid/hid-input.c: Mapping: GenericDesktop.Y ---> Absolute.Rz
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel