====== 5 Zoll Waveshare Touch-Display am Raspberry Pi 2 ====== Für meinen Raspberry Pi 2 habe ich mir ein 5 Zoll Touch-Display von Waveshare geholt. Es ist günstig und besitzt einen HDMI Ausgang und kann dadurch ohne Weiteres auch ohne Treiber verwendet werden. Für Raspbian gibt es ein vorgefertigtes SD-Karten Image, das man auf eine SD-Karte übertragen kann. Da ich das Display allerdings nicht nur unter Raspbian verwenden möchte und ich auch lieber mein eigenes Image verwende (wer weiss, was auf dem vorgefertigten Image so drauf ist) und es auch unter Windows 10 laufen soll, trage ich hier ein paar Informationen rund um das Display zusammen. Ich hoffe dadurch herauszufinden, wie man den Touch-Controller direkt über die GPIOs ansteuern kann. ====== Technische Daten ====== * Auflösung: 800x480 Pixel * HDMI Eingang * Resistiver Touchscreen * Hintergrundbeleuchtung über Schalter am Display ein- und ausschaltbar * XPT2046 Touchcontroller ====== GPIO Schnittstelle ====== ^ Pin Nummer ^ Name ^ Beschreibung ^ | 1, 17 | 3.3V | Stromversorgung +3.3V | | 2, 4 | 5V | Stromversorgung +5V | | 3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 24 | NC | Nicht verbunden | | 6, 9, 14, 20, 25 | GND | Ground | | 19 | TP_SI | SPI Dateneingang des Touchpanels | | 21 | TP_SO | SPI Datenausgang des Touchpanels | | 22 | TP_IRQ | Touch Panel Interrupt, low wenn der Stift das Panel berührt | | 23 | TP_SCK | SPI Takt des Touchpanels | | 26 | TP_CS | Chip Select, low aktiv | ====== HDMI Ausgabe am Raspberry Pi einrichten ====== Möchte man das Display direkt unter einem nicht vorgefertigten Image verwenden, muss man den HDMI Ausgang des Raspberry Pi auf die richtige Auflösung einstellen. Da das Display eine Auflösung von 800x480 Pixel hat, muss die Einstellung in der **//config.txt//** angepasst werden und zwar im konkreten Fall die Einstellung des hdmi_mode. Dazu öffnet man die config.txt, die man in der Boot-Partition findet, und fügt folgende Zeilen hinzu: hdmi_group=2 hdmi_mode=1 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0 Danach den Raspberry Pi neu starten und das Display sollte das Bild komplett darstellen. Bei mir lief die Grafikausgabe dann sowohl unter Windows IoT als auch unter Arch Linux und Raspbian ohne Probleme. ====== Touchscreen unter Windows IoT ====== Das Display läuft mit den Einstellungen aus dem vorherigen Abschnitt schon ohne Probleme über HDMI, allerdings fehlt immer noch die Unterstützung des eingebauten Touchscreens unter Windows IoT. Einen offiziellen Treiber gibt es von Waveshare leider nicht, aber mittlerweile wurde eine Alternativlösung entwickelt, die man in seine Programme einbauen kann. Die Bibliothek stellt dazu einen Treiber für den Touchscreen Controller (TSC2046), einen Touchprocessor, der die Events und Klicks registriert und die UI Events ansteuert und ein Kalibrierungscontrol zur Verfügung. Damit hat man eigentlich alles, was man in seiner Anwendung zur Nutzung des Touchscreens benötigt in einem Paket. Entwickelt wurde die Bibliothek von Morten Nielsen. Sie ist auf folgender Seite zu finden: [[https://www.hackster.io/dotMorten/windowsiottouch-44af19|Hackster.io - Building a Touch-enabled Interface for Windows IoT]]