Hi Dmitry, Em Mon, 18 Jul 2016 22:10:31 +0100 Nick Dyer escreveu: Atmel maXTouch devices have a T37 object which can be used to read raw touch deltas from the device. This consists of an array of 16-bit integers, one for each node on the touchscreen matrix. Is it ok to merge this patch (and the other patches on this series). Proprietary drivers exist for some devices (e.g.: xf86-input-egalax AUR), but it's recommended to try the open source drivers first. Depending on your touchscreen device choose an appropriate driver. Again, evdev is likely to be the default if your touchscreen 'just works.' I'm looking for the right way to use Atmel MaxTouch mxt224e i 2 c touchscreen on AM335x-evm board running Android ICS. I'm focused on the touchscreen driver and how to integrate it into Linux kernel. MaxTouch's driver is already present (as atmelmxtts.c) into TI's ICS porting and I have a good understanding on how it works. What I'm looking.
This article illustrates how to wire to your Arietta G25 an Adafruit 2.8 inch TFT display wired on SPI bussignal and using the fbtft drivers to see it as a standard Linux framebuffer video device.
Diff -git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 3b9d5e2.99c8c7e 100644- a/drivers/input/touchscreen/Kconfig b/drivers. Atmel Releases New 6-channel Touch Controller with Integral LED Driver Guard channel feature and low voltage operation makes device ideal for portable products Atmel Corporation has released the new AT42QT1060, a touch control chip that integrates 6 channels of touch sensing with the ability to drive up to 7 low current LEDs directly through a.
It is available now a 2.8 inch LCD carrier board for Arietta G25 made by Acme Systems called XTERM-01. More info..
The Adafruit(c) 2.8' TFT display is a bright (4 white-LED backlight) and colorful display with a resolution of 240x320 pixels with individual RGB pixel control, with a 4-wire resistive touchscreen.
Wirings between Arietta G25 and the Adafruit 2.8 LCD
It it possible to change the allocation of D/C and RST signalsto other GPIO just editing the device tree file
As suggested by Adafruit(c)it is requested to close the three pads called IM1, IM2 and IM3 to use this display in SPI mode.
Install the Linux framebuffer drivers for small TFT LCD display modules
It is requested now to compile the fbtft Linux framebuffer drivers for small TFT LCD display modules available on this GitHub repository.
To do that install the toolchain and the Linux Kernel sources as exlained on this tutorial Compiling Linux Kernel 3.14.23 or any other 3.xx Kernelversion.
Then move inside the drivers/video directory:
and clone the fbtft repository.
Add to drivers/video/Kconfig this line:
Add to drivers/video/Makefile this line:
Launch the make menuconfig and enable the drivers just installed:
To enable the frame buffer and the LCD driver:
To enable the touch screen:
Edit spi section of acme-arietta.dts in this way to enable theLCD:
Set:
- rotate = <0>; Portrait mode with the touch terminal on bottom
- rotate = <90>; Landscape mode with the touch terminal on the left
- rotate = <180>; Portrait mode with the touch terminal on top
- rotate = <270>; Landscape mode with the touch terminal on the right
Note that the wiring between the LCD touchscreen lines and the Arietta A/D converter line are set for Landscape with touch terminal on right.
Edit adc section of acme-arietta.dts in this way to enable thetouch screen:
Copy the new Kernel image and the device tree blob in the first microSDpartition and reboot. After few second the TFT will be initializatedand the console prompt will appear.
Atmel Driver Files
Install X
Install the package:
To execute it open a command line session and launch X by typing.
Disable the screen saver
Touch screen calibration
Download the xinput-calibrator package from the Debian sid repositorybecause is non available on wheezy.
and install it
then run it:
Play a video
Install Mplayer:
Atmel Driver For Windows 10
Download this video at 320x240 pixel by typing:
or from this link:
Play it by typing:
This video countains the audio track. To ear it simply use an USB to audio adapter.
Play with DOOM
Install the package:
To execute DOOM launch X.org the type:
It is possible to play using an USB PC Keyboard or using push buttonswired between the Arietta GPIO line and GND.
This is an example of bindings to add to the acme-arietta.dts device tree file to manage the DOOM command via external push buttons:
To simulate more keys use the value listed on this file:
| Ready-to-use microSD imageThis is a ready to use image to try the contents of this article.
Login data
| Special notes
|
EUR 25.00 | XTERM-01 - 2.8 inch TFT display with resistive touch for Arietta G25
Arietta G25 not included | Product description | |
This article or section is a candidate for merging with Calibrating Touchscreen.
If you ever tried to set up a touchscreen device in linux, you might have noticed that it's either working out of the box (besides some calibration) or is very tedious, especially when it is not supported by the kernel.
Introduction
This article assumes that your touchscreen device is supported by the kernel (e.g. by the usbtouchscreen module). That means there exists a /dev/input/event*
node for your device. Check out
to see if your device is listed or try
for every of your event nodes while touching the display. If you found the corresponding node, it's likely that you will be able to get the device working.
Available X11 drivers
There are a lot of touchscreen input drivers for X11 out there. The most common ones are in the extra repository:
- xf86-input-evdev (likely the default driver if you plug in your touchscreen and it 'just works')
- xf86-input-libinput; see also libinput
Less common drivers, not contained in the repository, are:
- xf86-input-magictouch
- xf86-input-mutouch
- xf86-input-plpevtch
- xf86-input-palmax
Proprietary drivers exist for some devices (e.g.: xf86-input-egalaxAUR), but it's recommended to try the open source drivers first.
Depending on your touchscreen device choose an appropriate driver. Again, evdev is likely to be the default if your touchscreen 'just works.'
Two-fingers scrolling
The two-fingers scrolling has to be implemented on the application side (see this link).For Firefox, see Firefox/Tweaks#Enable touchscreen gestures.
There is a hack to emulates this scrolling behavior for every application in #Touchegg, but the X server still handles it as text selection (at least with Plasma).
evdev drivers
Atmel Usb Driver Download
Calibration
Install xinput_calibratorAUR (AUR). Then, run xinput_calibrator and follow the instructions.
Using a touchscreen in a multi-head setup
To use multiple displays (some of which are touchscreens), you need to tell Xorg the mapping between the touch surface and the screen. This can be achieved with xinput as follows.
Take for example the setup of having a wacom tablet and an external monitor; xrandr
shows both displays:
You see we have two displays here. LVDS1 and VGA1. LVDS1 is the display internal to the tablet, and VGA1 is the external monitor. We wish to map our stylus input to LVDS1. So we have to find the ID of the stylus input:
We see that we have two stylus inputs. We now need to simply map our inputs to our output like so:
You can automate this by putting these commands in your ~/.xinitrc
or similar. The mapping will be lost if the touchscreen is disconnected and re-connected, for example, when switching monitors via a KVM. In that case it is better to use a udev rule. The Calibrating Touchscreen page has an example udev rule for the case when a transformation matrix has been calculated manually and needs to be applied automatically.
Using xrandr-watch-git to automate map-to-output
Drivers Atmel Touch (c) Input Devices
There are xrandr events we can capture from a script. Install xrandr-watch-gitAUR, create a script ~/.xrandr-changed
with execution permission to perform map-to-output, for example:
Atmel Usb Driver Package
and start, test and enable the systemd/User service xrandr-watcher.service
.
Touchegg
Touchegg is a multitouch gesture program, only compatible with X, that runs as a user in the background, recognizes gestures, and translates them to more conventional events such as mouse wheel movements, so that you can for example use two fingers to scroll. But it also interferes with applications or window managers which already do their own gesture recognition. If you have both a touchpad and a touchscreen, and if the touchpad driver (such as synaptics or libinput) has been configured not to recognize gestures itself, but to pass through the multi-touch events, then Touchegg will recognize gestures on both: this cannot be configured. In fact it does a better job of recognizing gestures than either the synaptics or libinput touchpad drivers; but on the touchscreen, it's generally better for applications to respond to touch in their own unique ways. Some Qt and GTK applications do that, but they will not be able to if you have Touchegg 'eating' the touch events. So, Touchegg is useful when you are running mainly legacy applications which do not make their own use of touch events.
The two-fingers scrolling has been disabled in the recent rewrite of touchegg 2.0.To enable it, install xdotool and see this closed issue.