11. Dezember 2015, Kategorie:

5″ Touchscreen am Raspberry Pi

Vor einigen Tagen ist der 5″ Touchscreen angekommen, den ich auf Allexpress bestellt hatte. Im Gegensatz zu einigen anderen Modellen wird hier das Bild über HDMI übertragen, wovon ich mir eine bessere Grafikleistung erhoffe.

Leider ist mein aktueller Raspberry Pi 2 bereits als Druckserver für den 3D-Drucker im Einsatz und da muss halt ein älteres Modell herhalten für diesen Test. Und damit hat es sich mit der Grafikleistung auch bereits wieder erledigt…

Die Nutzung als Bildschirm ist dank dem HDMI ganz einfach und läuft sehr schnell. Ein wenig mehr Aufwand ist nötigt um den Touchscreen in Betrieb zu nehmen, daher hier eine Anleitung mit den wichtigsten Schritten.

Vorbereitungen

Wie gewohnt muss eine SD-Karte mit dem passenden Linux vorbereitet werden. Ich habe für diesen Test das aktuelle Raspbian Jessie genommen, andere Distributionen sollten aber auch funktionieren.

Sobald das Image geschrieben ist, kann gleich die „config.txt“ angepasst werden. Einige Einstellungen sind nötig um die korrekte Auflösung einzustellen und den Touchscreen zu aktivieren:

hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
 
max_usb_current=1

# Touchscreen-Support
dtparam=spi=on
dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150

Datei speichern, SD-Karte sauber auswerfen und ab in den RPi damit! Schon beim ersten Starten sollte das Bild auf dem 5″-Bildschirm perfekt sein. Stimmt damit was nicht, haben die Anpassungen in der config.txt nicht funktioniert. Auch der Touchscreen sollte bereits funktionieren, ist aber vermutlich sehr ungenau.

„raspi-config“ als root ausführen um die üblichen Anpassungen (Zeitzone, Tastatur-Layout und „Filesytem expansion“) zu machen. Danach „rpi-update“ um Kernel und Firmware auf den aktuellen Stand zu bringen. Wenn wir schon dabei sind, können wir auch gleich sämtliche Software aktualisieren mit „apt-get update && apt-get upgrade“. Ein Reboot wird all die neuen Einstellungen aktivieren und auch gleich den neuen Kernel booten.

Out-of-the-Box ist der Touchscreen kaum benutzbar, der muss erst kalibriert werden. Dazu gibt es ein nettes kleines Tool, das in einer Datei 5inch_HDMI_LCD.tar.gz zu finden ist. Dieses Archiv auf dem Raspberry auspacken und den darin enthaltenen Calibrator installieren mit:

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

Danach lässt sich „xinput_calibrator“ starten und wie bei den alten Palm-Geräten wird man durch die Kalibrierung geführt. Nach Abschluss müssen die ausgegebenen Werte nur noch in eine Konfigurationsdatei „/etc/X11/xorg.conf.d99-calibration.conf“ (Verzeichnis muss erst angelegt werden). Nach dem nächsten Neustart der grafischen Oberfläche (xorg) wird der Touchscreen gut funktionieren.

Fazit

Alles läuft einwandfrei, wenn auch doch sehr zäh. 512MB Arbeitsspeicher sind auch unter Linux nicht mehr Zeitgemäss, wenn man eine grafische Oberfläche und vielleicht sogar noch einen Browser nutzen will.

Der Bildschirm ist nicht schlecht und der Touchscreen funktioniert. Man darf aber nicht das selbe „Feeling“ erwarten wie bei einem modernen kapazitiven Touchscreen wie bei den meisten Smartphones. Es handelt sich hier um die wesentlich ältere „resistive“ Technik. Daher funktionieren auch die Plastik-Stifte, die es oft zu solchen Bildschirmen gibt.

Mit einem Raspberry Pi 2 Modell B würde das wohl wesentlich besser laufen. Doppelter Arbeitsspeicher und geschätzte 4-fache Rechenleistung machen viel aus. Zur Zeit läuft auf Kickstarter eine Kampagne für einen kleinen 64bit ARM-Rechner, den es auch mit 2GB Memory gibt. Der Sprung vom aktuellen 700MHz Single-Core 32bit Rechner mit 512MB Memory auf einen Quad-Core 1.2GHz 64bit Rechner mit 2GB Memory ist bestimmt gewaltig. Im März werde ich hoffentlich mehr wissen…

IMG_3055

Quellen

Nebst diversen kleinen Hints verstreut im Internet hat hier hauptsächlich blog.ask-a.ninja tolle Dienste geleistet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert