Raspberry Pi 4 mit dem offiziellen 7" Touchdisplay

Aus Laub-Home Wiki
Raspberry Pi 7" Touchdisplay

Man kann den Raspberry Pi im Zusammenspiel mit dem offiziellen 7" Touchscreen (bezahlter Link) wunderbar als kleine autarke Station nutzen. Hier eine kleine Anleitung wie man das Touchdisplay an einen Raspberry Pi 4 B (bezahlter Link) (geht auch 3B und 3B+ (bezahlte Links)) anschließt und in Raspbian nutzbar macht. Das Raspberry Pi 7" Touchdisplay habe ich in Kombination mit dem Pimoroni Rahmen für offizielles 7 Raspberry Pi Touchdisplay (bezahlter Link) im Einsatz. Der Rahmen ist sehr minimalistisch, steht aber sehr gut und man kann den Touchscreen sehr gut verwenden ohne es mit der anderen Hand fest halten zu müssen. Ich gehe hier nicht auf den Zusammenbau ein, da der Rahmen eine sehr gut bebilderte Anleitung mitbringt.

Touchdisplay anschließen

Leider lag dem Display keine Anleitung bei, deshalb musste ich selbst ein wenig danach suchen. Im Grunde genommen ist es sehr simpel:

  • DSI Kabel (das weiße breite welches blaue enden auf einer Seite hat) in den DSI Connector des Touchdisplay einstecken
  • das schwarze Jumperkabel am Touchdisplay GPIO Connector in GND stecken
  • das rote Jumperkabel am Touchdisplay GPIO Connector in 5V stecken
  • Raspberry Pi auf das Touchdisplay schrauben
  • das DSI Kabel in den DSI Anschluss des Raspberry Pi stecken
  • nun das schwarze Jumperkabel am Raspberry Pi GPIO in Pin 6
  • das rote Jumperkabel am Raspberry Pi GPIO in Pin 4
  • Für die Stromzufuhr gibt es nun zwei Möglichkeiten:
    • A) über den MicroUSB Anschluss des Touchdisplay (Achtung, der MicroUSB Power Adapter muss genug Power haben min. 3,5A)
    • B) über den Raspberry Pi 4 USB-C Anschluss (Achtung geht nur beim Pi4! Alle anderen haben eine zu schwache Sicherung verbaut)

Tipp 1: Wer sich fragt wofür das grüne und gelbe Kabel ist, welches dem Display ebenfalls beiliegt, diese braucht man beim Raspberry Pi 4B, 3B und 3B+ nicht, da die Touch Steuerung auch über das DSI Kabel geht.

Tipp 2: Lasst die Schutzfolie auf jeden Fall während der Baumaßnahmen drauf. Das Display funktioniert auch mit der Folie.

Tipp 3: Ich habe mir für den Stromanschluss USB Winkel Adapter bestellt und es hat sich herausgestellt das der Winkel Adapter USB-C auf MicroUSB perfekt ist:


Nun zur Ausführlichen bebilderten Anleitung:

Um das DSI Kabel anzuschließen müssen die beiden schwarzen äußeren Klemmen ein Stück herausgezogen werden, dann das DSI Kabel mit den silbernen Kontakten nach oben (zur braunen Seite) einstecken und die Schwarzen Klemmen wieder rein drücken

als nächstes schließen wir die Jumper Kabel an GND (schwarz) und 5V (rot) an:

nun schrauben wir den Raspberry Pi auf das Display und schließen die beiden Jumperkabel an das GPIO des Raspberry Pi an:

  • Schwarz GND an GPIO Pin 6
  • rot 5V an GPIO Pin 4

als nächste kommt nun das DSI Kabel, welches wir in den Port Namens Display am Raspberry Pi anschließen. Auch hier vorher wieder die schwarzen Klemmen ein wenig rausziehen, dann das DSI Kabel mit der Blauen Seite nach außen (Kontakte nach innen) einstecken und die schwarzen Klemmen wieder rein drücken:

Zu guter Letzt schließen wir ein MicroUSB Stromkabel an das Touchdisplay an. Oder nutzen beim Raspberry Pi 4 das offizielle USB-C Powerkabel. Leider schauen nun beide Kabel, USB-C und MicroUSB Kabel über den Rand hinaus. Abhilfe schafft hier ein abgewinkelter Adapter.

Nun sollte der Pi samt Betriebssystem booten. Ich habe hier für einen ersten Test das Standard Raspberry Pi OS Image inkl. Desktop auf eine SD Karte installiert. Wie man Raspbian installiert könnt ihr hier nachlesen:

Nun noch ein paar Bilder:

Updates einspielen

Es ist wichtig, das alles auf dem aktuellen Stand ist, bevor man beginnt:

sudo apt update && sudo apt upgrade
sudo reboot

Display drehen

Möchte, oder muss man das Bild drehen, weil zum Beispiel das Touchdisplay Hochkant oder gar auf dem Kopf steht, so kann man das über die Konfigurationsdatei machen. Dafür einfach die folgenden Zeilen der Datei /boot/config.txt anhängen:

/boot/config.txt

# rotated 180 degrees
lcd_rotate=2

Folgende Parameter sind möglich:

lcd_rotate=0 Normal

lcd_rotate=1 90 Grad

lcd_rotate=2 180 Grad

lcd_rotate=3 270 Grad

lcd_rotate=0x10000 horizontal spiegeln

lcd_rotate=0x20000 vertikal spiegeln

nach einem Reboot sollte das Ergebnis zu sehen sein. Man kann die Konfiguration aber auch vor dem ersten Boot vornehmen in dem man die Datei vorher auf der SD Karte editiert.

Bei Debian Bullseye und Bookworm

Damit das Display bei Debian Bullseye und Bookworm funktioniert muss in der /boot/config der Grafikkarten Treiber vc4-kms-v3d deaktiviert werden in dem wir ihn auskommentieren:

/boot/config

# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d

Gelber Blitz rechts oben

Solltet ihr beim Booten oder während des Betriebs des Raspberry Pi einen Gelben Blitz zu Gesicht bekommen, bedeutet das, dass eure Stromversorgung zu schwach ist. Also einfach eine andere Stromquelle besorgen, oder Touchdisplay und Raspberry Pi mittels getrennter Stromversorgung betreiben. Hier aber dringend die beiden Jumper Kabel vorher entfernen (rot und schwarz). Das Symbol ist aber eigentlich eher als Warnung zu sehen, da der Pi dann nicht die volle Leistung bringt und es ggf. zu einem ungewollten Absturz des Einplatinencomputers kommen kann. Man kann dieses Warning auch dauerhaft entfernen, in dem man die Konfiguration ändert:

/boot/config.txt

avoid_warnings=1

schaltet die Fehlermeldung (Blitz Symbol) aus

avoid_warnings=2

deaktiviert die automatische Leistungsdrosselung durch die niedrige Stromversorgung und deaktiviert das Blitz Symbol

Bildschirm Helligkeit anpassen

Die Helligkeitswerte die gesetzt werden können liegen zwischen 255 und 0. wobei 255 der Standard Wert ist und somit auch der hellste Wert. Setzen kann man den Wert einfach über den folgenden Befehl. 'Helligkeitswert' bitte durch gewünschte Zahl zwischen 0 und 255 ersetzten.

sudo bash -c "echo 'Helligkeitswert' > /sys/class/backlight/rpi_backlight/brightness"

zum Beispiel:

sudo bash -c "echo '100' > /sys/class/backlight/rpi_backlight/brightness"

das Ganze ist dann auch reboot fest. Man kann nun via cronjob steuern, das Abends zum Beispiel ab 22:00 das Display stark gedimmt wird und morgens dann wieder auf Volle Power geht.

via rpi-backlight

Man kann dafür auch das in Python geschriebene Tool rpi-backlight verwenden. Dieses kann man unter Raspbian ganz einfach nachinstallierten:

apt install python3-pip
pip3 install rpi-backlight

nun kann man einfach die Helligkeit in % einstellen (hier 35%):

rpi-backlight -b 35

oder das Display ganz aus oder einschalten:

rpi-backlight -p off
rpi-backlight -p on

Touchdisplay ausschalten

Man kann via Konsole das Display aus, bzw. anschalten.

# Anschalten
sudo sh -c "echo '0' > /sys/class/backlight/rpi_backlight/bl_power"
# Ausschalten
sudo sh -c "echo '1' > /sys/class/backlight/rpi_backlight/bl_power"

Touchdisplay automatisch Dimmen

Mittels einem Helligkeitssensor kann man die Helligkeit des Bildschirmes automatisch anpassen und sogar das Display ausschalten, wenn es komplett dunkel ist. Wie das geht, könnt ihr hier nachlesen:

Screensaver deaktivieren bzw. einstellen

Möchte man verhindern, das dass Display nach einiger Zeit aus geht, bzw. der Bildschirmschoner angeht. Oder möchte man gar einen Bildschirmschoner einrichten, kann man dies über das Paket xscreensaver machen. Dafür muss dieses nachinstalliert werden:

sudo apt install xscreensaver

Danach findet man diesen unter Menü --> Einstellungen --> Bildschirmschoner

Virtuelle Tastatur installieren

Natürlich brauchen wir bei einem Touchscreen auch eine virtuelle Tastatur um auch mal eine Google Suche zu starten. hierfür installieren wir einfach das matchbox-keyboard.

sudo apt update && apt install matchbox-keyboard

Nach der Installation finden wir dieses dann unter MENU --> Zubehör --> Tastatur

German Keyboard Layout

Standardmäßig ist das Keyboard Layout auf QUERTY gestellt. Man kann dies aber auch auf unser deutsches QWERTZ umstellen:

cd ~
mkdir .matchbox
cd .matchbox/
wget http://wiki.openmoko.org/wiki/File:Keyboard.xml
mv File\:Keyboard.xml Keyboard.xml

beim Neuaufrufen der virtuellen Tastatur sollte alles auf dem gewohnten deutschen Layout sein.

Tastatur Symbol in Taskleiste

Möchte man rechts oben einen direkten Button um die virtuelle Tastatur einzublenden, so kann man dies mit den folgenden Schritten machen:

Achtung: Da wir kein Root sind, bitte die Dateien mit sudo editieren:

sudo bash DATEI

Als erstes legen wir ein kleines Skript (als root) an, welches für das Starten der Tastatur sorgt: /usr/local/sbin/toggle-keyboard.sh

#!/bin/bash
PID=$(pidof matchbox-keyboard)
if [ ! -e $PID ]; then
  kill $PID
else
 matchbox-keyboard &
fi

und geben diesem das Execute Recht:

sudo chmod +x /usr/local/sbin/toggle-keyboard.sh

nun legen wir noch eine Verknüpfungsdatei an (als root): /usr/share/raspi-ui-overrides/applications/toggle-keyboard.desktop

[Desktop Entry]
Name=Toggle Virtual Keyboard
Comment=Toggle Virtual Keyboard
Exec=/usr/local/sbin/toggle-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANISM=True

und fügen der Taskleiste das Icon hinzu (als root): /etc/xdg/lxpanel/LXDE-pi/panels/panel

Plugin {
  type=launchbar
  Config {
    Button {
      id=toggle-keyboard.desktop
    }
  }
}

Das Ergebnis sollte dann so aussehen:

Alternative: Florence Virtual Keyboard

Alternativ kann man die Tastatur Florence installieren:

sudo apt install at-spi2-core florence

Dies ist dann unter Barrierefreiheit zu finden. Probiert am besten aus, welche Tastatur für euch am besten ist. Es können beide parallel installiert sein.

Rechtsklick aktivieren

Nur bei Debian Wheezy --> Hab es unter Buster nicht zum Laufen gebracht. Sollte jemand eine Lösung finden, gerne eine mail an mich.

Um den Rechtsklick durch langes Drücken zu aktiviere muss man der Datei /etc/X11/xorg.conf folgenden Inhalt anhängen:

/etc/X11/xorg.conf

Section "InputClass"
   Identifier "calibration"
   Driver "evdev"
   MatchProduct "FT5406 memory based driver"

   Option "EmulateThirdButton" "1"
   Option "EmulateThirdButtonTimeout" "750"
   Option "EmulateThirdButtonMoveThreshold" "30"
EndSection

Dann brauchen wir noch die folgenden Pakete:

sudo apt install libevdev2 xserver-xorg-input-evdev

Dann das System Neustarten:

sudo reboot

Mauszeiger ausblenden

den Mauszeiger kann man, falls man nur das Touchdisplay verwendet einfach ausblenden. Dafür installieren wir das Tool unclutter nach dem Reboot sollte nach 1-2 Sekunden der Mauszeiger automatisch verschwinden.

sudo apt install unclutter

Screenshots erstellen

Um Screenshots unter Raspbian erstellen zu können, kann man das Tool gnome-screenshot installieren:

sudo apt install gnome-screenshot

Zu finden ist es dann unter Menü --> Zubehör --> Bildschirmfoto

Quellen