How to use 15 inch touchscreens

Revision as of 01:43, 20 May 2015 by LubOlimex (talk | contribs) (Instructions on the usage of the 15.6 inch SAW touchscreen (LCD-15.6TS) under Debian.)

Instructions on the usage of the 15.6 inch SAW touchscreen (LCD-15.6TS) under Debian.

This guide is tested with the LCD-15.6TS (with ETT5003U controller), distributed by Olimex LTD. The setup included LCD-OLinuXino-15.6-FHD and A20-OLinuXino-MICRO.

Important: for the hardware connection you would need to provide 5V and 12V to the touchscreen display. A free USB port is also required. The powering to the touchscreen is deliver through a standard 4-pin molex connector.

After all hardware connections are established to get the touchscreen working under the official Linux image do the following:

1. Make sure the USB connection between the display and the board is established before powering the board. If it was connected already reboot the board.

2. Identify the event number of the USB connection of the touschreen. You might plug-unplug the USB connection of the touchscreen to get the proper event number in the console (or use command dmesg | grep ETwo).

3. Create a new 20-ts.conf file or add a new section in the 20-ts.con file (remember to replace the USB event number with the number you got in point 1, we have used event2 as example)

The file location is: /usr/share/X11/xorg.conf.d/20-ts.conf

The file should contain the following:

 Section "InputClass"
   Identifier "ETwo TouchScreen"
   MatchDevicePath "/dev/input/event2"
   MatchProduct "ETwoTouch Corp. ETwo TouchScreen"
   Driver "tslib"
   Option "ScreenNumber" "0"
   Option "Rotate" "NONE"
   Option "Width" "1920"
   Option "Height" "1080"
   Option "SendCoreEvents" "yes"
   Option "Type" "touchscreen"
 EndSection

Remember to replace the event2 number with the number you got in point 1. The configuration is suitable for the FullHD 15.6 inch display. If you are using the 1366x768 (HD-ready) display replace the driver option defaults with "Width" "1366" and "Height" "768".

4. Create a new environment file or edit the environment file (again we have used event2 as our USB event, remember to replace it with the number of event you get in point 1.)

The file location is: /etc/environment

 TSLIB_TSEVENTTYPE=raw
 TSLIB_CONSOLEDEVICE=none
 TSLIB_FBDEVICE=/dev/fb0
 TSLIB_TSDEVICE=/dev/input/event2
 TSLIB_CALIBFILE=/etc/pointercal
 TSLIB_CONFFILE=/usr/etc/ts.conf
 TSLIB_PLUGINDIR=/usr/lib/ts

Again remember to replace the event2 number with the number you got in point 1.

5. Now modify and install xf86-input-tslib driver.

xf86-input-tslib allows us to use tslib device like our touchscreen as pointer device.

This driver is old a bit, so while it works with newer Xorg server, it faluts, because xf86InputSetScreen function is removed from Xorg, but driver tries to call it. I had just removed this call from driver's source code and the problem was solved.

Download source code, go to its directory:

git clone git://git.debian.org/git/collab-maint/xf86-input-tslib

cd xf86-input-tslib

Get and apply required patches:

wget https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A13/TOUCHSCREEN/1-xf86tslib-sigfault.patch https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A13/TOUCHSCREEN/xf86-input-tslib-port-ABI-12-r48.patch https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A13/TOUCHSCREEN/xf86tslib-xorg-update.patchh

patch -p0 < 1-xf86tslib-sigfault.patch

patch -p0 < xf86-input-tslib-port-ABI-12-r48.patch

patch -p0 < xf86tslib-xorg-update.patch

Configure, make and install:

./configure --prefix=/usr

make

make install

5. Reboot the board

6. Calibrate the display - if you are calibrating from the X graphical interface make sure that you are logged as user “olimex” (if calibrating without the X, the user is “root”).

   #su olimex

enter the olimex password:olimex

   #sudo ts_calibrate

calibrate the touch screen and reboot the board

   #sudo reboot

Main_Page