Announcement

Collapse
No announcement yet.

Lilliput Touchscreen calibration

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Lilliput Touchscreen calibration

    Building a mini ITX system using a Lilliput 669 GL Touchscreen. The Video seems to be working fine other than it won't stay on 800x600 mode. Kubuntu seems to like to switch to the highest resolution at every startup. The primary problem is getting the actual touch controller to work properly. The controller has a base from EETI I believe ie the driver is an eGalax Touch driver. I have tried multiple different install scenarios to try and get the touchscreen to work. With a fresh install of Kubuntu 10.10 the default drivers will do a single click (left) on the upper left corner of the screen. I played with the evtouch driver and it did a little more but still didn't seem to work right. I came across a forum that said something able voiding or disabling the mouse pointer. I haven't tried that and don't know how to do that.

    A few questions that may bring understanding to my limited knowledge
    *Does Maverick use X window? I type X -version and I don't get anywhere where it might say the release ie
    X Protocol Version11, Revision 0, Release 6.8.2
    instead this is my output

    command $: X -version

    X.Org X Server 1.9.0
    Release Date: 2010-08-20
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.24-27-server i686 Ubuntu
    Current Operating System: Linux Studio1555 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 10:18:49 UTC 2010 i686
    Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.35-23-generic root=UUID=02f012bf-9474-49e9-a521-02640ad29fdf ro quiet splash
    Build Date: 16 September 2010 05:39:22PM
    xorg-server 2:1.9.0-0ubuntu7 (For technical support please see http://www.ubuntu.com/support)
    Current version of pixman: 0.18.4
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.

    *I used another blog to create and xorg.conf file so that I would be able to edit that
    Question if Maverick doesn't have the xorg.conf file by default am I supposed to use the /usr/share/X11/xorg.conf.d/*** files to create the xorg.conf file??

    If anyone wants to help a newb out that is slowly getting an understanding how linux works with files it would be great to be able to ask questions in a chat or text to someone.


    I can also post a bunch more stuff on the configuration of my system like the /proc/bus/input/devices file

    #2
    Re: Lilliput Touchscreen calibration

    Found this maybe it will help I will reply later.

    https://bugs.launchpad.net/ubuntu/+s...ux/+bug/549447

    Comment


      #3
      Re: Lilliput Touchscreen calibration

      So more research I think I maybe have a better understanding what is going on here are parts of lshal and and xinput -list

      lshal part
      udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial'
      info.linux.driver = 'usb' (string)
      info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_1_0000_00_1d_0' (string)
      info.product = 'eGalax TouchScreen' (string)
      info.subsystem = 'usb_device' (string)
      info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial' (string)
      info.vendor = 'D-WAV Scientific Co., Ltd' (string)
      linux.device_file = '/dev/bus/usb/002/003' (string)
      linux.hotplug_type = 2 (0x2) (int)
      linux.subsystem = 'usb' (string)
      linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2' (string)
      usb_device.bus_number = 2 (0x2) (int)
      usb_device.can_wake_up = true (bool)
      usb_device.configuration = 'HID-USB Touchscreen' (string)
      usb_device.configuration_value = 1 (0x1) (int)
      usb_device.device_class = 0 (0x0) (int)
      usb_device.device_protocol = 0 (0x0) (int)
      usb_device.device_revision_bcd = 256 (0x100) (int)
      usb_device.device_subclass = 0 (0x0) (int)
      usb_device.is_self_powered = false (bool)
      usb_device.linux.device_number = 3 (0x3) (int)
      usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2' (string)
      usb_device.max_power = 44 (0x2c) (int)
      usb_device.num_configurations = 1 (0x1) (int)
      usb_device.num_interfaces = 1 (0x1) (int)
      usb_device.num_ports = 0 (0x0) (int)
      usb_device.product = 'eGalax TouchScreen' (string)
      usb_device.product_id = 1 (0x1) (int)
      usb_device.speed = 1.5 (1.5) (double)
      usb_device.vendor = 'D-WAV Scientific Co., Ltd' (string)
      usb_device.vendor_id = 3823 (0xeef) (int)
      usb_device.version = 1.1 (1.1) (double)

      udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input'
      button.has_state = false (bool)
      info.addons.singleton = {'hald-addon-input'} (string list)
      info.capabilities = {'input', 'button'} (string list)
      info.category = 'input' (string)
      info.parent = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0' (string)
      info.product = 'eGalax Inc. Touch' (string)
      info.subsystem = 'input' (string)
      info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input' (string)
      input.device = '/dev/input/event2' (string)
      input.originating_device = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0' (string)
      input.product = 'eGalax Inc. Touch' (string)
      linux.device_file = '/dev/input/event2' (string)
      linux.hotplug_type = 2 (0x2) (int)
      linux.subsystem = 'input' (string)
      linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input5/event2' (string)

      xinput -list output
      ⎡ Virtual core pointer id=2 [master pointer (3)]
      ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
      ⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
      ⎜ ↳ eGalax Inc. Touch id=8 [slave pointer (2)]
      ⎣ Virtual core keyboard id=3 [master keyboard (2)]
      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
      ↳ Power Button id=6 [slave keyboard (3)]
      ↳ Sleep Button id=7 [slave keyboard (3)]
      ↳ Logitech USB Receiver id=9 [slave keyboard (3)]


      So what I see is the first lshal entry is the "eGalax TouchScreen", the second entry is "eGalax Inc. Touch." Notice that xinput -list only has the second entry from lshal. So what I think is happening is the driver module in Ubuntu 10.10 Maverick and the current version of X is only reading the "click" part of the eGalax controller. That is why the pointer goes to the top left of the screen and than sometimes gets stuck on left click until you touch the screen again. The first entry in lshal is "eGalax TouchScreen" this part of the controller is the x,y portion and would tell the cursor where to point on the screen.

      Some people get both entries for the device in xinput -list, they get the touch controller to work by disabling (using commands in xinput) to disable the "eGalax Inc. Touch" entry from the xinput -list. Therefore they only get a mapping position of where the cursor is, (without a left click). To add the click they edit the xorg.conf file and put an option in the section that says something about click on release or something similar.

      I went ahead and plugged the touchscreen to my laptop booted into windows 7 installed the drivers that it came with (TouchKit) and it works fine in Windows 7. I did that just to make sure the raw data was there and everything on the touchscreen was working.

      I really don't know how to do much in linux except by following someones step by step command entries and sometimes I try my own thing which 50% of the times ends up back at reinstall with live cd or going into the file I messed up from live cd and changing everything back to how it was.

      What I am wondering is to get the eGalax calibration program or the TouchKit program to work and be able to properly make a parameters file that will configure/calibrate the touchscreen is this. After downloading the tar ball from eGalax and making some script changes to the setup.sh file is it possible that adding the correct MatchProduct or Products to the InputDevice Section of xorg.conf can that somehow make it so that the eGalax calibration program will see the touch controller? It would also be useful to find out what the eGalax program is specifically looking for.

      So I will try some more and probably break X server and xorg.conf again to try and figure this thing out.

      Comment

      Working...
      X