Anders als normale Displays für den RasPi bringt der Touchscreen PyPortal von Adafruit eine autonome Umgebung samt Mikroprozessor, Soundausgabe und WLAN-Anbindung mit.
Zwei frühere Artikel aus dem Raspberry Pi Geek beschäftigen sich mit kleinen Displays [1] für den RasPi [2]. Allerdings gestaltet sich das Erstellen und die Inbetriebnahme passender Oberflächen schwierig, Anwendungen von der Stange gibt es nicht. Da bleibt die Hoffnung, dass das mit dem PyPortal von Adafruit besser funktioniert.
Beim PyPortal (Abbildung 1) handelt es sich um ein 3,2 Zoll kleines, netzwerkfähiges resistives Touch-Display mit integriertem Mikroprozessor [3]. Bei einem Kostenpunkt von 59 Euro ist es zwar kein Schnäppchen, angesichts der verbauten Komponenten erscheint der Preis aber angemessen. Ein entsprechend großes 3,2-Zoll-Display plus Pi Zero W einschließlich SD-Karte kostet etwa genauso viel. Deswegen muss sich das Gerät im Test auch dem Vergleich mit dieser Kombination stellen.

Abbildung 1: Die Vorderseite des intelligenten PyPortal-Displays. Der resistive Touchscreen erfordert einen gewissen Druck, bis er reagiert.
PyPortal im Detail
Die Vorderseite nimmt fast vollständig das Display ein. Auf der rechten Seite befindet sich ein Helligkeitssensor, des Weiteren gibt es einen Montagerahmen. Am Display selbst sparte Adafruit: Die Auflösung von 320 x 240 Pixel passt eher zu 2,8-Zoll-Geräten. Auch die resistive Touch-Technologie spart noch mal Geld, erfordert allerdings eine stabile Montage, denn man muss den Bildschirm nicht nur berühren, sondern tatsächlich daraufdrücken.
Inzwischen gibt es das PyPortal in zwei zusätzlichen Größen (wenn auch noch nicht beim deutschen Distributor Pimoroni.de). Das PyPortal Pynt für 45 US-Dollar reduziert die Bildschirmdiagonale bei gleicher Pixelzahl auf 2,4 Zoll; das 3,5 Zoll große PyPortal Titano bietet eine Auflösung von 320 x 480 Pixel sowie einen USB-C-Stromanschluss und kostet 60 US-Dollar.
Den Platz auf der Rückseite (Abbildung 2) des Displays nutzt der Hersteller unter anderem für einen ADSAMD51J20-Prozessor von Atmel. Ihm zur Seite steht der deutlich größere ESP32-Chip von Espressif. Diese Bausteine erfreuen sich großer Beliebtheit, weil sie für kleines Geld WLAN bereitstellen. Der ESP32 beherrscht dabei das rechenintensive TLS/SSL und entlastet damit die Atmel-CPU. Deren Cortex-M4 läuft mit 120 MHz, bringt 1 MByte Flash-Speicher für den Programmcode und 256 KByte RAM mit. Zusätzlich stehen ihm noch 8 MByte Flash-Speicher für weitere Ressourcen wie Bilder oder Sounds zur Verfügung.

Abbildung 2: Die Rückseite des PyPortal dominieren die Atmel-CPU und der ESP32-Chip. Letzterer beherrscht auch WLAN, samt des rechenintensiven TLS/SSL.
Neben dem schon erwähnten Lichtsensor zählen zur Ausstattung des PyPortal noch ein Reset-Button, ein Temperatursensor, ein Mini-Lautsprecher samt Verstärker, ein Micro-SD-Slot, eine Neopixel-LED, ein I2C-Port sowie zwei Ports für weitere Sensoren. Die letzten drei Ports stellen auch Strom und Masse bereit.
Nicht zuletzt wegen der umfangreichen Ausstattung verwundert es kaum, dass die Maker-Szene das intelligente Display sehr gut annimmt. Adafruit legt die Hardware zudem so aus, dass sie sich nach eigenen Vorstellungen anpassen lässt. Wer etwa einen besseren Lautsprecher benötigt, durchtrennt eine vorgegebene Leiterbahn und schließt einen eigenen an.
Neben dem PyPortal vertreibt Adafruit auch einen passenden minimalistischen Display-Ständer. Allerdings entwarfen sowohl Adafruit als auch die Community inzwischen schon diverse Gehäuse, die über die bekannten 3D-Portale bereitstehen. Den Halter aus Abbildung 1 finden Sie zum Beispiel auf Thingiverse [4].
Inbetriebnahme
Um das Display in Betrieb zu nehmen, genügt der Anschluss an eine 5-Volt-Stromversorgung mit Micro-USB-Stecker. Auf dem M4 werkelt CircuitPython, Adafruit implementierte bereits ein kleines Beispielprogramm. Das verursacht aber schon deshalb Fehler, weil sich der WLAN-Chip ohne SSID und Passwort nicht mit dem heimischen Netz verbindet. Bevor Sie allerdings das Programm anpassen, sollten Sie die Firmware aktualisieren.
Sowohl das Update der Firmware als auch Programmänderungen erfolgen über das USB-Kabel, das Sie zu diesem Zweck nicht an ein Netzteil anschließen, sondern an einen PC. Wählen Sie dafür ein nicht zu langes Kabel mit guter Qualität; insbesondere darf es nicht nur zur Stromversorgung dienen. Wenn Sie den Reset-Button einmal drücken, startet das PyPortal neu, drücken Sie zweimal darauf, wechselt es in den Firmware-Update-Modus.
In beiden Betriebsmodi stellt das Display seinen Programmspeicher als Laufwerk bereit. Im normalen Betrieb heißt es CIRCUITPY, im Update-Modus PORTALBOOT. Unter Linux erscheinen die üblichen Device-Files, wie man es von USB-Speichermedien kennt. Eine kleine Besonderheit: Im Betriebsmodus meldet sich das PyPortal als partitionierter Massenspeicher mit dem Gerätenamen /dev/sdX1, im Update-Modus dagegen als unpartitionierter Stick /dev/sdX. Windows-Nutzer finden das Speichermedium über den Laufwerksbuchstaben beziehungsweise den Laufwerksnamen.
Unter Linux kontrollieren Sie zuerst, ob das Laufwerk automatisch eingehängt wurde. In diesem Fall werfen Sie es aus und hängen es über folgenden Befehl neu ein:
$ sudo mount -o sync /dev/sdX /mnt
Die Option sync stellt dabei sicher, dass alle Dateien sofort auf das PyPortal geschrieben werden. Um das Firmware-Update aufzuspielen, genügt es, nach dem Herunterladen der aktuellen Version die entsprechende Datei mit der Endung .uf2 auf das Laufwerk zu kopieren. Danach führt das Board einen Reset aus; das PORTALBOOT-Laufwerk verschwindet und das CIRCUITPY-Laufwerk erscheint.






