Archiv der Kategorie: Raspberry Pi

3M MicroTouch USB Touchscreen – EX II unter Raspbian

Für ein kleines Bastelprojekt habe ich mir auf eBay ein 15 Zoll LCD Touchscreen von 3M gekauft.

!B4q+eN!B2k~$(KGrHqQOKjIEyOiF3Iy6BMq))prMgw~~_12Was unter Windows Plug & Play ist, gestaltet sich an einem Raspberry Pi doch etwas schwieriger.

Da das Display nur einen VGA-Anschluss hat, muss zuerst ein HDMI zu VGA-Adapter her. Somit läuft zumindest schon mal das reine Display.

Der Treiber für das Touch-Input macht dann doch etwas mehr Problem. Auf der 3M-Seite findet man zwar Treiber für Linux aber nur für x86/x64 und nicht für ARM. Selbst das Ausführen der .bin auf einem anderen System um an die .tar.gz zu kommen und dann die Installation auf dem Raspberry zu machen läuft ins Leere, da auch die restlichen Binaries nicht unter ARM laufen. Doh!

Die Lösung ist jedoch eigentlich ganz einfach, denn die Treiber sind im Kernel und müßen nur gebaut werden. 🙂

Device Drivers > Input device support > Touchscreens

     [*]   3M/Microtouch EX II series device support

Eine Anleitung dafür gibt es hier.

Auch die Ausgabe vom dmesg sieht dann ganz gut aus.

[ 3.713651] usb 1-1.3: new full-speed USB device number 5 using dwc_otg
[ 3.839583] usb 1-1.3: New USB device found, idVendor=0596, idProduct=0001
[ 3.858633] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.883577] usb 1-1.3: Product: MicroTouch USB Touchscreen – EX II
[ 3.902756] usb 1-1.3: Manufacturer: MicroTouch Systems, Inc.
[ 4.235038] input: MicroTouch Systems, Inc. MicroTouch USB Touchscreen – EX II as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input2

Als nächstes noch eine udev-Rule anlegen damit das Input-Device einen ansprechenderen Namen bekommt:

sudo nano /etc/udev/rules.d/95-stmpe.rules

Und da dann folgende Zeile eintragen:

SUBSYSTEM==“input“, ATTRS{name}==“*MicroTouch USB Touchscreen*EX II*“, ENV{DEVNAME}==“*event*“, SYMLINK+=“input/touchscreen“

Jetzt kann getestet werden:

sudo apt-get install evtest tslib libts-bin

sudo evtest /dev/input/touchscreen

Da ich den Framebuffer noch nicht zum laufen gebracht habe (Touch war bisher wichtiger) konnte ich die Kalibrierung noch nicht über die Konsole machen. Folgender Befehl hilft da:

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

Unter X geht das Kalibrieren aber auch ohne Probleme, dazu erstmal xinput-calibrator von Adafruit installieren:

wget http://adafruit-download.s3.amazonaws.com/xinput-calibrator_0.7.5-1_armhf.deb

sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Und dann einfach in einem xterm starten.

Weiterführende Informationen gibt es auch bei adafruit.

Für ein Display, das in etwas genauso viel gekostet hat wie das 2.8″ Shield, aber dafür 15″ ist, find ich es echt klasse.