eGalax TouchScreen




Very old capacitive touch for EeePC 701

usb

dpavlin@brokeee:~$ lsusb -t -v
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 5: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        ID 0cf2:6225 ENE Technology, Inc. SD card reader (UB6225)
    |__ Port 8: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 05e3:0608 Genesys Logic, Inc. Hub
        |__ Port 3: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
            ID eb1a:2761 eMPIA Technology, Inc. EeePC 701 integrated Webcam
        |__ Port 3: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
            ID eb1a:2761 eMPIA Technology, Inc. EeePC 701 integrated Webcam
        |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
            ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen



https://forum.odroid.com/viewtopic.php?t=15239#p127773

xorg error

[    39.523] (II) event14 - eGalax Inc. Touch Touchscreen: is tagged by udev as: Tablet
[    39.719] (EE) event14 - eGalax Inc. Touch Touchscreen: libinput bug: missing tablet capabilities: btn-stylus resolution. Ignoring this device.
[    39.719] (II) event14 - eGalax Inc. Touch Touchscreen: device is a tablet
[    39.720] (II) event14 - failed to create input device '/dev/input/event14'.
[    39.720] (EE) libinput: eGalax Inc. Touch Touchscreen: Failed to create a device for /dev/input/event14
[    39.720] (EE) PreInit returned 2 for "eGalax Inc. Touch Touchscreen"



fix from https://www.embedded-engineer.de/dokuwiki/doku.php?id=start:egalax_touchscreen

apt install xserver-xorg-input-evdev


dpavlin@brokeee:~$ cat /usr/lib/udev/hwdb.d/61-evdev-local.hwdb 
evdev:name:eGalax Inc. Touch Touchscreen*
 EVDEV_ABS_00=::300
 EVDEV_ABS_01=::300

systemd-hwdb update
udevadm trigger /dev/input/eventXX 

root@brokeee:/etc/X11/xorg.conf.d# apt install xserver-xorg-input-evdev

root@brokeee:/etc/X11/xorg.conf.d# cat evdev-touch.conf 
Section "InputClass"
        Identifier "eGalax Inc. Touch Touchscreen"
        MatchUSBID "0eef:0001"
        Driver "evdev"
        # https://www.x.org/releases/X11R7.5/doc/man/man4/evdev.4.html
	Option "InvertX" "true"
EndSection

On my touchscreen with touch flex exiting on bottom left, I have to swap X axis

calibration

dpavlin@brokeee:~$ xinput_calibrator --output-type xorg.conf.d
Warning: multiple calibratable devices found, calibrating last one (eGalax Inc. Touch Touchscreen)
	use --device to select another one.
Calibrating EVDEV driver for "eGalax Inc. Touch Touchscreen" id=11
	current calibration values (from XInput): min_x=0, max_x=2047 and min_y=0, max_y=2047

Doing dynamic recalibration:
	Inverting X and/or Y axis...
	Setting calibration data: 1997, 73, 120, 1835
	--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"eGalax Inc. Touch Touchscreen"
	Option	"Calibration"	"1997 73 120 1835"
	Option	"SwapAxes"	"0"
EndSection

userspace driver for newer chip

https://github.com/twoerner/hdmi-usb-touch

dpavlin@brokeee:~/hdmi-usb-touch$ git remote -v
origin  https://github.com/twoerner/hdmi-usb-touch (fetch)
origin  https://github.com/twoerner/hdmi-usb-touch (push)

dpavlin@brokeee:~/hdmi-usb-touch$ autoreconf -i

dpavlin@brokeee:~/hdmi-usb-touch$ sudo apt install libudev-dev

dpavlin@brokeee:~/hdmi-usb-touch$ ./configure