Re: [SLUG] Microtouch USB touch screen X/Y axis swapped

2006-10-24 Thread Glen Turner

Grant Parnell - EverythingLinux wrote:
For the serial version I used the xorg 'microtouch' driver, this USB one 
works without modifying the xorg.conf file. I would be happy to modify 
the xorg.conf file if the USB version could be coaxed into looking like 
a serial port.


At a guess the USB panel is being picked up by the kernel
input layer and mixed in with all the other mice-like pointers
to appear at /dev/input/mice.  Since /dev/input/mice is already
mentioned in your /etc/X11/xorg.conf you're seeing it just work.

Based on the USB IDs you should have a mtouchusb kernel module
loaded.


cat /proc/bus/input/devices gives
I: Bus=0003 Vendor=0596 Product=0001 Version=0400
N: Name=3M 3M USB Touchscreen - EX II
P: Phys=/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse1 event3
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3


Yep, that Handlers=mouse1 event3 mean that it's being
mixed into /dev/input/mice.

That swapped axis shouldn't be happening.  Pull the kernel source
for drivers/usb/input/mtouchusb.c and make sure the exact model
is listed, as there's a note in there about the Y axis handling
that makes me wonder if you don't have hardware with a feature
corrected.

If that still sucks you'll need to swap the axises in X11 as
the input layer doesn't allow such niceness.

Hope this is somewhat helpful,
Glen
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html


Re: [SLUG] Microtouch USB touch screen X/Y axis swapped

2006-10-24 Thread Ian Wienand
On Tue, Oct 24, 2006 at 03:33:33PM +0930, Glen Turner wrote:
 If that still sucks you'll need to swap the axises in X11 as
 the input layer doesn't allow such niceness.

I've found the evtest program (download latest from)

http://linuxconsole.cvs.sourceforge.net/linuxconsole/ruby/utils/evtest.c?view=log

very useful in tracking down X/Y problems with input drivers.

-i
-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html


Re: [SLUG] Microtouch USB touch screen X/Y axis swapped

2006-10-24 Thread Grant Parnell
Just following up with more info. It seems there's been a fair bit of
consolidating  work in this area in the kernel modules between 2.6.15 and
2.6.18. In 2.6.15 the module was mtouchusb and this and others have been
merged into a more generic one called usbtouchscreen
kernel/drivers/usb/input/ is where they are.

The good news is there is in fact a swap_xy parameter in the stock 2.6.18
kernel module and it works. The bad news is that my x and y direction is
opposite to what it should be. IE move your finger left, the pointer goes
right. So I added 2 more module parameters invert_x and invert_y and
recompiled the module but for some reason the module isn't behaving...
it's my day off so I've yet to discover whether it's my module build
process or the modification I've done (ie can't test remotely). The module
does load but when Xorg tries to talk to /dev/input/mouse1 it gets an open
error.

There seems to be some heated debate about where the calibration should
happen as well. In the RS232 version it was in the xorg.conf file. Any
tips on inverting X and Y and scaling them in the xorg.conf file
appreciated.

On Tue, October 24, 2006 2:51 pm, Grant Parnell - EverythingLinux wrote:
 I just got some LCD touch screens in for a customer and unfortunately I
 didn't get the serial ones I was expecting, instead I have the USB ones.

 It's pretty cool how it works, just plug it in and start moving your
 finger round the display and it just works - Fedora Core 5. Only thing is
 the Axis are swapped around and it needs some sort of calibration.

 What I want to know is where to start looking to fix it. It appears that
 somehow the mtouchusb kernel module loads and this creates some stuff
 under /dev/input which ends up working in parrallel with the PS/2 mouse I
 already have plugged in. If somebody could explain how this multiple input
 stuff works, and can be configured, that would be useful too. The answer
 may possibly be in configuration of these bits.

 Kernels 2.6.15-1.2054_FC5 (standard) and 2.6.18-1.2200.fc5 (most recent
 update) make no difference. xorg-x11-server-Xorg-1.0.1-8,
 xorg-x11-drv-microtouch-1.0.0.5-1.2, xorg-x11-drv-mouse-1.0.4-1 are
 installed. The man page for the xorg microtouch driver is next to empty,
 says it needs to be written. If somebody has their Xorg source unpacked
 maybe see if there's anything more useful there but I doubt it.

 For the serial version I used the xorg
 'microtouch' driver, this USB one works without modifying the xorg.conf
 file. I would be happy to modify the xorg.conf file if the USB version
 could be coaxed into looking like a serial port.

 cat /proc/bus/input/devices gives
 I: Bus=0003 Vendor=0596 Product=0001 Version=0400
 N: Name=3M 3M USB Touchscreen - EX II
 P: Phys=/input0
 S: Sysfs=/class/input/input3
 H: Handlers=mouse1 event3
 B: EV=b
 B: KEY=400 0 0 0 0 0 0 0 0 0 0
 B: ABS=3

 lsusb -v gives
 Bus 001 Device 002: ID 0596:0001 MicroTouch Systems, Inc. Touchscreen
 Device Descriptor:
bLength18
bDescriptorType 1
bcdUSB   1.10
bDeviceClass0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize064
idVendor   0x0596 MicroTouch Systems, Inc.
idProduct  0x0001 Touchscreen
bcdDevice4.00
iManufacturer   1 3M
iProduct2 3M USB Touchscreen - EX II
iSerial 0
bNumConfigurations  1
Configuration Descriptor:
  bLength 9
  bDescriptorType 2
  wTotalLength   25
  bNumInterfaces  1
  bConfigurationValue 1
  iConfiguration  0
  bmAttributes 0xe0
Self Powered
Remote Wakeup
  MaxPower  100mA
  Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber0
bAlternateSetting   0
bNumEndpoints   1
bInterfaceClass   255 Vendor Specific Class
bInterfaceSubClass  0
bInterfaceProtocol  0
iInterface  0
Endpoint Descriptor:
  bLength 7
  bDescriptorType 5
  bEndpointAddress 0x81  EP 1 IN
  bmAttributes3
Transfer TypeInterrupt
Synch Type   None
Usage Type   Data
  wMaxPacketSize 0x0020  1x 32 bytes
  bInterval   2


 --
 ---GRiP---
 Grant Parnell - senior LPIC-1 certified consultant
 Linux User #281066 at http://counter.li.org (Linux Counter)
 EverythingLinux services - the consultant's backup  tech support.
 Web: http://www.everythinglinux.com.au/support.php
 We're also busybits.com.au and linuxhelp.com.au and elx.com.au.
 Phone 02 8756 3522 to book service or discuss your needs.

 ELX or its employees participate 

[SLUG] Microtouch USB touch screen X/Y axis swapped

2006-10-23 Thread Grant Parnell - EverythingLinux
I just got some LCD touch screens in for a customer and unfortunately I 
didn't get the serial ones I was expecting, instead I have the USB ones.


It's pretty cool how it works, just plug it in and start moving your 
finger round the display and it just works - Fedora Core 5. Only thing is 
the Axis are swapped around and it needs some sort of calibration.


What I want to know is where to start looking to fix it. It appears that 
somehow the mtouchusb kernel module loads and this creates some stuff 
under /dev/input which ends up working in parrallel with the PS/2 mouse I 
already have plugged in. If somebody could explain how this multiple input 
stuff works, and can be configured, that would be useful too. The answer 
may possibly be in configuration of these bits.


Kernels 2.6.15-1.2054_FC5 (standard) and 2.6.18-1.2200.fc5 (most recent 
update) make no difference. xorg-x11-server-Xorg-1.0.1-8, 
xorg-x11-drv-microtouch-1.0.0.5-1.2, xorg-x11-drv-mouse-1.0.4-1 are 
installed. The man page for the xorg microtouch driver is next to empty, 
says it needs to be written. If somebody has their Xorg source unpacked 
maybe see if there's anything more useful there but I doubt it.


For the serial version I used the xorg 
'microtouch' driver, this USB one works without modifying the xorg.conf 
file. I would be happy to modify the xorg.conf file if the USB version 
could be coaxed into looking like a serial port.


cat /proc/bus/input/devices gives
I: Bus=0003 Vendor=0596 Product=0001 Version=0400
N: Name=3M 3M USB Touchscreen - EX II
P: Phys=/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse1 event3
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

lsusb -v gives
Bus 001 Device 002: ID 0596:0001 MicroTouch Systems, Inc. Touchscreen
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   1.10
  bDeviceClass0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize064
  idVendor   0x0596 MicroTouch Systems, Inc.
  idProduct  0x0001 Touchscreen
  bcdDevice4.00
  iManufacturer   1 3M
  iProduct2 3M USB Touchscreen - EX II
  iSerial 0
  bNumConfigurations  1
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength   25
bNumInterfaces  1
bConfigurationValue 1
iConfiguration  0
bmAttributes 0xe0
  Self Powered
  Remote Wakeup
MaxPower  100mA
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   1
  bInterfaceClass   255 Vendor Specific Class
  bInterfaceSubClass  0
  bInterfaceProtocol  0
  iInterface  0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81  EP 1 IN
bmAttributes3
  Transfer TypeInterrupt
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0020  1x 32 bytes
bInterval   2


--
---GRiP---
Grant Parnell - senior LPIC-1 certified consultant
Linux User #281066 at http://counter.li.org (Linux Counter)
EverythingLinux services - the consultant's backup  tech support.
Web: http://www.everythinglinux.com.au/support.php
We're also busybits.com.au and linuxhelp.com.au and elx.com.au.
Phone 02 8756 3522 to book service or discuss your needs.

ELX or its employees participate in the following:-
OSIA (Open Source Industry Australia) - http://www.osia.net.au
AUUG (Australian Unix Users Group) - http://www.auug.org.au
SLUG (Sydney Linux Users Group) - http://www.slug.org.au
LA (Linux Australia) - http://www.linux.org.au
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html