Get Touchscreen eGalaxy Touch working

Hello Guys,

ive a Dashboard running on resinOS (2.9.6+rev01) the Raspberry Pi 2 which executes this Application ist connected to this Touchscreen (http://goo.gl/TB1mGL).
This Screen worked well on my old raspbian installation.
Now on resinOS I cannot figure out how to get it working.

So far I know its build on the eGalaxy Touch Driver.

The only thing forom google I found was adding a overlay (device_tree_overlay=rpi-ft5406-overlay.dtb) which I added via Fleet variables (RESIN_HOST_CONFIG_device_tree_overlay) but didn’t make any difference.

Here details from ‘dmesg’:

dmesg output
[   36.333353] Bridge firewalling registered
[   52.226167] systemd-udevd[31]: starting version 215
[   59.966700] Error: Driver 'rtl8192cu' is already registered, aborting...
[ 9483.841494] usb 1-1.2: USB disconnect, device number 4
[ 9484.364968] usb 1-1.2: new low-speed USB device number 6 using dwc_otg
[ 9484.501081] usb 1-1.2: New USB device found, idVendor=0eef, idProduct=0001
[ 9484.501114] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 9484.501130] usb 1-1.2: Product: Touch
[ 9484.501146] usb 1-1.2: Manufacturer: eGalax Inc.
[ 9484.517480] input: eGalax Inc. Touch as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:0001.0002/input/input3
[ 9484.519589] input: eGalax Inc. Touch as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:0001.0002/input/input4
[ 9484.520607] hid-generic 0003:0EEF:0001.0002: input,hidraw0: USB HID v1.12 Pointer [eGalax Inc. Touch] on usb-3f980000.usb-1.2/input0
[160094.785924] usb 1-1.2: USB disconnect, device number 6
[160095.386464] usb 1-1.2: new low-speed USB device number 7 using dwc_otg
[160095.524382] usb 1-1.2: New USB device found, idVendor=0eef, idProduct=0001
[160095.524411] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[160095.524427] usb 1-1.2: Product: Touch
[160095.524442] usb 1-1.2: Manufacturer: eGalax Inc.
[160095.548441] input: eGalax Inc. Touch as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:0001.0003/input/input5
[160095.551950] input: eGalax Inc. Touch as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:0001.0003/input/input6
[160095.555187] hid-generic 0003:0EEF:0001.0003: input,hidraw0: USB HID v1.12 Pointer [eGalax Inc. Touch] on usb-3f980000.usb-1.2/input0

Cann anyone explain me how I can get the touch working ?

Thanks

Greetings Peter

Hi Peter,

Does dmesg on the device reveal any interesting logs? Also, can you please try setting

RESIN_HOST_CONFIG_dtoverlay to rpi-ft5406 instead

and let us know if it works for you?

Best, Kostas

Tried your settings but didnt make any difference.
Updated my Post with dmesg output.

could it be that I overlay the wrong driver ? If yes, how to find the right one ?

From the dmesg it looks like the input device is available. How do you test that it is working or not? Do you have input configuration for X if you are running apps on top of xserver?

As well. Can you sent as a private message your device URL? I’d like, with you permission, to check the board too.

I’m looking into this now. I might need things to be done and tested on the board is you are around.

sitting next to feel free :wink:

The screen is providing two input devices. So the first thing is to find which one is which. I suspect you have buttons as well. Can you try to use the touchscreen now? I’m trying to see if I get events on event0.

Ok ive tapped around, you should see some events now

So it’s not event0. I got many events on event1. So that is it. You can stop now. I’ll come back.

Managed to calibrate it now.

What do you mean?

I saw that the xinput_calibration starts. So I tapped at the crosses appearing. Thought you started it ?
Could tap the crosses and he recognised it

Uh right. Good. I thought it ran an automated calibration. Great. So first:

Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"eGalax Inc. Touch"
	Option	"Calibration"	"42 1992 95 1956"
	Option	"SwapAxes"	"0"
EndSection

This is the correct calibration so please update your app and repush it. As well you will need server-xorg-input-evdev as X server driver. You were missing that too so there was no driver for x to connect to your input devices.

Tell me when you managed to push these changes so I can check everything is Ok.

And one more thing. I removed the app variable related to ft5406. Your device is not using a ft5406 chip so no need to have that probed. Your touchscreen device works on USB using the egalax driver.

Work like a charm :wink:

Thank you. Great work.

The whole thing was updating the calibration and install “xserver-xorg-input-evdev” ?

Let’s summarize:

  1. Remove the ft5406 overlay as the device is supported by default.
  2. You need an X driver which connects the input devices to the X server - the opensource one works just fine for your device (xserver-xorg-input-evdev). You can use xinput (you can install it as well) to see if X can detect your input device. As soon as the X driver was install (and after X restart) you can see that X can detect the input device:
root@raspberry-pi2-cfcd83d:/# DISPLAY=:0 xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ eGalax Inc. Touch                       	id=6	[slave  pointer  (2)]
⎜   ↳ eGalax Inc. Touch                       	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
  1. Using the calibration tool (xinput_calibrator) we generated the correct parameters for the device and used it statically in the app to be persistent for the fleet.

Hope this clarifies.

1 Like

Ok Everything clear.

Wow Great Work :wink:

Thank you very much for the great help !

Sure, anytime. Enjoy!

Hi I am having problem with egalaxy touch screen on Jetson TX2.

Here is my docker,

RUN apt-get update && apt-get install -y --no-install-recommends \
    xserver-xorg-core \
    xserver-xorg-input-all \
    xserver-xorg-video-fbdev \
    xserver-xorg-input-evdev \
    xorg \
    xinput \
    x11-apps \
    matchbox-window-manager \
    xinit \
    && rm -rf /var/lib/apt/lists/*

The output of lsusb,

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0eef:c000 D-WAV Scientific Co., Ltd
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I can read the data stream on /dev/input/event4.

I think it has correct driver and installation. but the touch screen doesn’t work and xinput cannot find the touch screen,

DISPLAY=:0 xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]

I appreciate if someone can help me.

Thanks!