Adafruit stellt mit der PiTFT Plus Serie eine Reihe von Displays mit unterschiedlichen Eigenschaften her.

Allen gemeinsam ist, dass sie schön kompakt sind, und natürlich auf den Raspberry Pi ausgerichtet. 

Die PiTFT Plus Serie wurde speziell für neuere Raspberry Pis (ab Model 1B+, inklusive Raspberry Pi 4) kreiert. So hat sie eine 40 pin GPIO Buchsenleiste. 

Adafruit 2423 kapazitives Touchdisplay PiTFT Plus günstig kaufen

Im nachfolgenden beschreiben wir die Einrichtung des PiTFT Plus. Wir führen dieses Adafruit PiTFT Plus 2.8'' Kapazitive Touch Display natürlich auch in unserem Sortiment.

Installation des Adafruit #2423 PiTFT Plus 2.8'' Capacitive Touch Displays

In unserem Beispiel nutzen wir einen Raspberry Pi 2B v1.2, es kann jedoch ein beliebiger "moderner" Pi mit 40 pin GPIO Leiste genutzt werden.

Hardware-Setup des Adafruit-Displays

  1. Stecken Sie das Display auf den Pi, richtig herum orientiert. Achten Sie dabei darauf dass der Pi nicht am Strom angeschlossen ist!
    1.  optional können Sie das Display an dieser Stelle auch mechanisch befestigen, bspw. mit Hex-Abstandshaltern. Das Display bietet dazu drei Montagemöglichkeiten. 
  2. Stecken Sie eine microSD Karte mit aktuellem Raspberry Pi OS herein.
  3. Schließen Sie einen Bildschirm an (bzw. greifen Sie per SSH zu), für die Initial-Einrichtung des Displays
  4. Schließen Sie Strom an - der Raspberry Pi fährt hoch.

Das Display leuchtet an dieser Stelle erstmal komplett weiß - das ist normal. 

Vereinfachte Software Installation, inklusive kapazitive Touch Unterstützung

Die Standard Vorgehensweise von Adafruit ist ein Konfigurations-Skript auszuführen:

cd ~
sudo pip3 install --upgrade adafruit-python-shell click==7.0
sudo apt-get install -y git
git clone https://github.com/adafruit/Raspberry-Pi-Installer-Scripts.git
cd Raspberry-Pi-Installer-Scripts

Das installiert zunächst einige Python Packages:

Successfully installed Adafruit-PlatformDetect-2.23.0 adafruit-python-shell-1.2.1 args-0.1.0 clint-0.5.1

Cloning into 'Raspberry-Pi-Installer-Scripts'...

Anschließend wird git installiert, und eine Git Repository wird geklont (auf den lokalen Raspberry Pi kopiert). 

Im nächsten Schritt wird das Kommando zur Installation des Displays aufgerufen, zusammen mit Parametern.

sudo python3 adafruit-pitft.py --display=28c --rotation=90 --install-type=console

Das obige Beispiel zeigt die Installation des Displays als 2.8'' kapazitive (c) variante, mit einer Displayorientierung von 90° (Querformat, Landscape - der HDMI Stecker zeigt nach oben), und Ausgabe einer Konsole auf dem Display.

Für die Rotation sind folgende Werte gültig: 0, 90, 180, 270

Zum Abschluss kann es sein dass das Skript Sie zum Neustart auffordert - die Änderungen werden erst nach Neustart wirksam.

Tipp: Falls Sie das Skript ohne Parameter aufrufen, startet es einen Dialog in dem Sie die gewünschten Parameter konfigurieren können.

sudo python3 adafruit-pitft.py

Tipp: falls die Anleitung hier nicht funktioniert, empfiehlt Adafruit die Raspberry Pi OS Version vom 24. August 2020 zu probieren, mit der es sicher funktioniert.

Manuelle Installation 

Ich rekonstruiere im Nachfolgenden was das Skript macht. Wie auch bei der automatischen Installation setzt das System hierbei auf die modernere Variante, statt Konfigurationen in /etc/modprobe.d/ anzulegen, ein Device Tree Overlay einzustellen. 

Anlegen des Overlays:

Tragen Sie in /boot/config.txt (zum Beispiel direkt unter [all]) folgendes ein:

hdmi_force_hotplug=1  # required for cases when HDMI is not plugged in!

dtparam=spi=on

dtparam=i2c1=on

dtparam=i2c_arm=on

dtoverlay=pitft28-capacitive,speed=64000000,fps=30 dtoverlay=pitft28-capacitive,rotate=90,touch-swapxy=true,touch-invx=true

die Werte ab inklusive rotate sind je nach gewünschter Ausrichtung des Displays zu setzen. Hier der Überblick: 

Adafruit TouchDisplay Rotation Options

Das angesprochene Device Tree Overlay, pitft28-capacitive.dtbo, befindet sich im /boot/overlays Verzeichnis.

Falls man an dieser Stelle einen Reboot durchführen würde, würde man sehen dass das Display nach einigen Sekunden komplett dunkel wird. Das bedeutet, dass der Raspberry Pi es anspricht.  

Aktiviere eine Konsole auf dem Display:

Es gibt nun verschiedene Möglichkeiten, auf dem Display Ausgabe darzustellen. Eine sicherlich oft benutzte Möglichkeit ist eine Konsole auf dem Display anzuzeigen.

Die Datei /boot/cmdline.txt enthält normalerweise folgendes:

console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

Zur Ausgabe einer zusätzlichen Konsole auf dem Display muss /boot/cmdline.txt nach rootwait um folgendes ergänzt werden:

fbcon=map:10 fbcon=font:VGA8x8

So dass die Zeile jetzt lautet:

console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8 quiet splash plymouth.ignore-serial-consoles

Das Adafruit Skript setzt zur Einrichtung hier noch einige weitere Dinge (u.a. disable console blanking, und optimierte Schriftarten); ich verweise Leser hier auf das Studium des Skripts. 

Hinweis: damit die Interaktion an dieser Stelle mit der Konsole direkt funktioniert muss der Bootmodus mit raspi-config auf "Boot into console" gesetzt werden. Nach dem Neustart sieht man am Display jetzt einen Loginprompt, und kann sich mit einem am Pi angeschlossenen USB Keyboard daran anmelden.  

Hinweis für die nachfolgenden Einträge über Touch: YMMV

d.h. ich konnte die Anleitung von Adafruit nicht reproduzieren, auf der Adafruit Website selbst steht oben, dass der Touchtreiber unter Raspbian mittlerweile keine "normalen" touchscreen events mehr ausgibt, und daher nicht mit ts_test arbeitet. Es soll gemäß Adafruit jedoch mit LXDE zusammenarbeiten.

Installation von Softwarepaketen für Touch:

Für die Nutzung als reines Konsole-Ausgabedisplay wie gerade beschrieben sind keine zusätzlichen Pakete notwendig. Adafruit installiert im Skript viele Pakete die nicht zwangsläufig benötigt werden. 

Für den Test der Touchfunktion werden jedoch zusätzliche Pakete benötigt:

sudo apt-get install libts0 libts-bin evtest

 

Installation von udev Regeln für den Touch:

Für den EP0110M09 Treiber:

Es sollte eine neue Datei /etc/udev/rules.d/95-ftcaptouch.rules angelegt werden, mit folgendem Inhalt:

SUBSYSTEM=="input", ATTRS{name}=="EP0110M09", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"

Touch-Kalibration:

 Zur Funktion von TSLIB - dem Touchscreen ohne X11 - muss eine neue Datei /etc/pointercal muss angelegt werden, mit folgendem Inhalt (speziell für dieses Display):

320 65536 0 -65536 0 15728640 65536

Diese Adafruit Seite hat detailliertere Informationen.

 

Das Skript bietet auch die Option fbcp zu installieren (um bspw. Videos und 3D beschleunigte Ausgabe auf dem Display anzeigen zu können).  

Bonus: Display ein/ausschalten

Das Display kann unter der Kommandozeile mit dem GPIO18 ein- und ausgeschaltet werden.

Wir setzen den Pin erstmal in den Ausgabemodus (was das Display auch gleich ausschaltet):

sudo gpio -g mode 18 out 

Anschließend exportieren wir diesen Pin für einfachen Zugriff:

sudo echo "18" > /sys/class/gpio/export

Jetzt können wir das Display anschalten mit:

sudo echo "1" > /sys/class/gpio/gpio18/value

und es wieder ausschalten mit 

sudo echo "0" > /sys/class/gpio/gpio18/value

Beim herunterfahren geht das Display jedoch wieder an, auch wenn es so ausgeschaltet wurde.

Bonus II: Display beim hereunterfahren automatisch ausschalten

Mit Hilfe des gpio-poweroff Device Tree Overlays kann das Display beim Herunterfahren automatisch ausgeschaltet werden. Fügen Sie folgende Zeile in /boot/config.txt ganz am Ende der Datei hinzu:

dtoverlay=gpio-poweroff,gpiopin=18,active_low="y"

 

Weitere Informationen

AdafruitDisplay

Leave a comment

All comments are moderated before being published