Forum

Full Version: eGalax touchscreen calibration
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
hey mark,

thanks a lot for your information here in this forum. i downloaded your image a few days ago but when xbian starts the touchscreen is not working. i modified the "touchscreen_axis_calib" to my needs:

calib_x_d=1280;calib_x_fact=-0.66945606694561;calib_y_d=720;calib_y_fact=-0.42402826855124;swap_axes=0;

my xinput_calibration output on my old wheezy distribution was:

Section "InputClass"
Identifier "calibration"
MatchProduct "eGalax Inc. USB TouchController"
Option "Calibration" "1977 65 1860 162"
EndSection

With raspbian wheezy, the touchscreen works great, but with xbian it does not recognize any touch. hope you can help me?!

Thanks,
Roland
Hi

@TobyM

You can install xbian1a5 and then update to the nightly version. It should work ok, if you add the calibration file.

https://github.com/xbianonpi/xbmc-nightly

You can build on the pi directly following the instructions here, if you follow this guide carefully, having already installed xbian, then it should work in xbian 1alpha5, this way you can edit the code directly before compilation.

https://github.com/xbianonpi/xbian/wiki/Compiling-XBMC-&-XBMC-dependencies

Not found a good cross-comp how-to yet, still learning, think the team uses QEMU.
http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/

Tried ubuntu (virtualbox) too. ATM, I just leave the compilation going overnight for first time, then minor changes take less time, using PUTTY SSH.

hope it helps
----------------------------------------------------

@robosphere

try sudo apt-get install evtest

type "evtest" for on-screen info

or "evtest-capture"

it should generate some info about your device in a file , "evtest-capture.xml"

you can check if your touchscreen is functioning on a kernel level

good luck
(23rd May, 2013 06:32 AM)Markamc Wrote: [ -> ]...
it should generate some info about your device in a file , "evtest-capture.xml"

you can check if your touchscreen is functioning on a kernel level

good luck

Can we use that info to generate a valid config file?
My axes are wrong.. no matter if i set swap_axes
Terminal
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x100
Input device name: "eGalax Inc. USB TouchController"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 562
Min 0
Max 2047
Event code 1 (ABS_Y)
Value 1510
Min 0
Max 2047
Properties:
Testing ... (interrupt to exit)
***********************************************
This device is grabbed by another process.
No events are available to evtest while the
other grab is active.
In most cases, this is caused by an X driver,
try VT-switching and re-run evtest again.
***********************************************
(23rd May, 2013 09:19 AM)brantje Wrote: [ -> ]
(23rd May, 2013 06:32 AM)Markamc Wrote: [ -> ]...
it should generate some info about your device in a file , "evtest-capture.xml"

you can check if your touchscreen is functioning on a kernel level

good luck

Can we use that info to generate a valid config file?
My axes are wrong.. no matter if i set swap_axes
Terminal
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x100
Input device name: "eGalax Inc. USB TouchController"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 562
Min 0
Max 2047
Event code 1 (ABS_Y)
Value 1510
Min 0
Max 2047
Properties:
Testing ... (interrupt to exit)
***********************************************
This device is grabbed by another process.
No events are available to evtest while the
other grab is active.
In most cases, this is caused by an X driver,
try VT-switching and re-run evtest again.
***********************************************

When you say wrong, how?

(NB. If you exit xbmc then you get finger press info feedback in evtest)

The new beta1 build swapped mine, I had to change to swap_axes=1, it didn't change the direction though, (i didn't need to reverse the sign (+/-) of the "fact" scale values)

Not sure yet, still looking into it. Needs a addon script to "tune" evdev values to screen coordinates to automatically calculate offset/scale values for calib file.

Been searching many places including..
http://tias.ulyssis.org/calibration/ and
http://www.embedded.com/design/configurable-systems/4023968/How-To-Calibrate-Touch-Screens

I keep trying, in my spare time.
evtest generates:

Terminal

xbian@xbian ~ $ sudo evtest
No device specified, trying to scan all of /dev/input/event*
USAGE:
Grab mode:
evtest /dev/input/eventX

Query mode: (check exit code)
evtest --query /dev/input/eventX <type> <value>

<type> is one of: EV_KEY, EV_SW, EV_LED, EV_SND
<value> can either be a numerical value, or the textual name of the
key/switch/LED/sound being queried (e.g. SW_DOCK).

this looks like there is no touch screen detected. but why does it work in raspbian? do i need another kernel? can i avtivate the touchscreen by installing drivers?

i got it working. thanks for the tip with evtest. i copied the kernel files from andrei istodorescu and it works. axis are reverted, but it works :-D.

here is the link to the files:
http://code.google.com/p/andrei-development/downloads/detail?name=kernel_3_6_11_eGalax_feb_2013.tar.gz

thanks again... a new happy customer of xbian :-)
Strange, xbian kernel files should have been ok, but , if it works for you then that's great.

To revert axis you can change the sign on the calib_x_fact, or calib_y_fact respectively, as andrei describes. If the scales and offsets seem odd, they are all influenced by the overscan, whether in config.txt and from overscan settings in xbmc (video calibration).

Something useful too, in the skin folder you can edit addon.xml file. Changing debugging="false" to "true" displays the pointer position on the screen. Using this you can see how the overscan effects the pointer max/min values, on mine it does anyway!

http://wiki.xbmc.org/index.php?title=Addon.xml

Have fun!
I installed the nightly version, I have the double pointer issue...how can i apply the patch that resolv it?
Thanks a lot at all!!!
Markamc
Member
Reputation: 1
19th May, 2013 08:11 AM Click to thank! Edit Delete Reply Report
ok, thanks will try
can confirm,

sudo apt-get install xbian-package-xbmc

gave dual pointers problem, then fixed with github: xbianonpi/xbian-package-xbmc frodo-nightly branch, content folder. (xbmc.bin)

cheers Koenkk

hope it works for everyone
Yes, i had read this! But I don't know how apply the patch Smile
How can we get xinput-calibrator on xbian?
We need it for the calibration.

Note to self:
Terminal


pi@raspberrypi ~ $ xinput_calibrator
Calibrating EVDEV driver for "eGalax Inc. USB TouchController" id=6
current calibration values (from XInput): min_x=77, max_x=1975 and min_y=97, max_y=1838

Doing dynamic recalibration:
Setting new calibration data: 1949, 68, 1914, 109


--> Making the calibration permanent <--
copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
Identifier "calibration"
MatchProduct "eGalax Inc. USB TouchController"
Option "Calibration" "1949 68 1914 109"
EndSection
pi@raspberrypi ~ $


Screen is running at 520p so 700x??? what should i do next?
try using ts_calibrate, I've had it running in the FB , should be in the libts-bin package, when I've found a solution I will post

sudo apt-get install libts-bin

think you need to set parameters too, paths etc

just looking at recompiling it to make it outout to another calibration file. It's doesn't need X, xinput does.

@raspuca

I updated 12.2 nightly build, got dual pointer problem, so then had to copy the xbmc.bin file found in the github location listed above over the old one....will try it now to see if it has been updated, this worked for me on the 19th May
Cheers everybody,

a sleepless night brought me some new results on xbian in combination with my Acer T230H Touch Screen:

1. The actual XBian Alpha 5 is working best, but the click_confines value is too small so you have to tap two times precisely on the same spot to make it work.

2. The actual xbmc-nightly gives me much trouble, the cursor is jumping wildly I think related to eGalaxpatch:
Code:
+ {
+ m_mouseX = g_graphicsContext.GetWidth() + 1;
+ m_mouseY = g_graphicsContext.GetHeight() + 1;
+ } */
which brings me to

3. The actual nightly does not, to any extend, use the /usr/share/eGalaxCalibration/touchscreen_axes_calib file when working with that touchscreen. The reason might be

4. The Acer T230H Screen is named: "Acer T230H" and, as far as I understand the code of the eGalaxPatch:
Code:
if(strstr(m_deviceName, "eGalax") || strstr(m_deviceName, "Touch"))
+ {
+   ...
+ }
is looking straight for the eGalax or a device named "touch".

So could someone add the Acer T230H to the nightly and to the eGalaxpatch, to be propper recognized? And perhaps, rename the patch - Touchscreen-patch? Wink

I'll attach some info (all gained from a running xbian Alpha 5), if you need something else please let me know.

Terminal
xbian@xbian ~ $ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c30a Version=0110
N: Name="Logitech Logitech USB Keyboard"
P: Phys=usb-bcm2708_usb-1.3/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=046d Product=c30a Version=0110
N: Name="Logitech Logitech USB Keyboard"
P: Phys=usb-bcm2708_usb-1.3/input1
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.1/input/input1
U: Uniq=
H: Handlers=kbd mouse0 event1 js0
B: PROP=0
B: EV=17
B: KEY=4000000 100 0 0 ffffffff f703fde2 f80 3340000 60d8fa fd01d008 1f0000 0 0 0
B: REL=103
B: MSC=10

I: Bus=0003 Vendor=0408 Product=3000 Version=0110
N: Name="Acer T230H"
P: Phys=usb-bcm2708_usb-1.2.1/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.1/1-1.2.1:1.0/input/i
U: Uniq=
H: Handlers=mouse1 event2
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=2608000 3

Terminal
xbian@xbian ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 005: ID 046d:c30a Logitech, Inc. iTouch Composite
Bus 001 Device 006: ID 0408:3000 Quanta Computer, Inc. Optical dual-touch panel
Bus 001 Device 007: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter

The evtest shows touchscreen working properly; the coordinates make sense, BTN_TOUCH code 330 is working too.


Thanks everyone
Greetings and good night
TobyM

PPS: Perhaps it might be better in terms of readability if we split off the Acer T230H discussion into a new thread. I didn't want to capture this thread, sorry if I did so. But if no one is offended by it - I'd like to stay Wink
Thanks TobyM,

I'm sure like the other keen "contributors" that everyone here would love your input, as, like you, they have spent too many "sleepless nights" meddling with things they don't fully understand, yet!

Just to confirm...

"1. The actual XBian Alpha 5 is working best, but the click_confines value is too small so you have to tap two times precisely on the same spot to make it work."

I have posted about this earlier in the thread and also provided information on how to fix this, if you are prepared to recompile. Have you found another solution?

2. The actual xbmc-nightly gives me much trouble, the cursor is jumping wildly I think related to eGalaxpatch:

Again, I remember posting about this too in THIS thread. Problems were caused with the nightly update, dual pointers, and if you checked the GIT , then you could see they PULLED the eGalax patch from the patch script. I re-complied 12.2 with my fixes again and it worked fine for me.
The code you have highlighted is from LinuxInputDevices.cpp, and should no longer be in Andrei's patch for xbian (check git, it's /*remarked */) .Koen kindly recompiled, and the xbmc.bin file was available in github, for those who didn't want to compile themselves.
Which brings me to...

3. The actual nightly does not, to any extend, use the /usr/share/eGalaxCalibration/touchscreen_axes_calib file when working with that touchscreen. The reason might be


Well it won't if the patch was pulled will it! derrr!

4. The Acer T230H Screen is named: "Acer T230H" and, as far as I understand the code of the eGalaxPatch
.............
is looking straight for the eGalax or a device named "touch".

So could someone add the Acer T230H to the nightly and to the eGalaxpatch, to be propper recognized? And perhaps, rename the patch - Touchscreen-patch?


Let me get this straight, you want someone to modify the code for you?

I will, can you pay me? Wink

PPS: Perhaps it might be better in terms of readability if we split off the Acer T230H discussion into a new thread. I didn't want to capture this thread, sorry if I did so. But if no one is offended by it - I'd like to stay Wink

The choice is entirely yours! I personally would love you to contribute

Have you tried ts_calibrate yet? I'm currently looking at SDL to see if xbmc can use tslib with SDL to provide a universal calibration solution for all touchscreens using tslib.....on the other hand....i could just be happy that I have a working solution already!

Let's keep this thread about solutions not problems
Yay,

so here a solution from me:
I finally managed to recompile xbmc on the pi and altered the following line of code in my LinuxInputDevices.cpp

Code:
if(strstr(m_deviceName, "eGalax") || strstr(m_deviceName, "Touch"))
to
if(strstr(m_deviceName, "eGalax") || strstr(m_deviceName, "Touch") || strstr(m_deviceName, "Acer T230H"))

Now xbmc is using the touchscreen_axes_calib file - everthing works as expeced. Perhaps Koenkk can add this to his revised version of the egalax-patch?

The working touchscreen_axes_calib for a Acer T230H are:
For 720p Resolution:
calib_x_d=1280;calib_x_fact=-0.66667;calib_y_d=720;calib_y_fact=-0.666667;swap_axes=0;

For 1080p Resolution:
calib_x_d=1920;calib_x_fact=-1.0;calib_y_d=1080;calib_y_fact=-1.0;swap_axes=0;

Additional Info can be provided if needed.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reference URL's