Raspi Zero 2 W - Der neue, schnellere Raspberry Pi Zero, Upgrade für meinen OctoPi
Seit Oktober 2021 gibt es nun einen Nachfolger für den Raspberry Pi Zero, den man Raspberry Pi Zero 2 getauft hat. Momentan gibt es ihn nur mit WLAN-Option und dann heißt es "Raspberry Pi Zero 2 W". Eine Version mit angelöteten Headern gibt es wo offiziell nicht, aber das kann man auch schnell selbst erledigen. Ansonsten könnte man Ausschau nach einem "Raspberry Pi Zero 2 WH" mit "H" für Header Ausschau halten. Kurzum, erst einmal gibt es nur eine Version.Dabei ist der Formfaktor und die Position der Buchsen gleich geblieben. Auch der GPIO-Header ist der gleiche wie vorher.
Was kann der Raspi Zero 2.0 mehr als V1.x?
Der größte Unterschied zwischen dem Raspi Zero 2 und dem 1 ist, dass der Zero 2 eine neue CPU hat, eine Quad-Core 64-Bit Arm Cortex-A53 CPU, die auch im größeren Bruder dem Raspberry Pi 3B zum Einsatz kam. Außerdem kann der Zero 2 Bluetooth Version 4.2, der Zero 1 hatte "nur" 4.1 on Board.Der Rest ist gleich, wie natürlich auch die GPIO-Anschluss-Leiste.
Das neue System-in-Package (SiP) im Zero 2 hat zum einen eine Broadcom BCM2710A1 Chip und dann on top, in selben Gehäuse noch 512 MB LPDDR2 SDRAM. Da das RAM auf der CPU liegt, kann die Abwärme natürlich nicht so gut abgeleitet werden. Darum ist eine Übertaktung im Normalfall nur auf etwa 1.2 GHz statt der standardmäßig eingestellten 1.0 GHz möglich. Zum Vergleich dazu hat der Raspi 3B+ 1.4 GHz Standardtakt. Der Maximaltakt ist natürlich von dem inviduellen SiP abhängig und kann höher oder niedriger sein. Auf jeden Fall sollte man an eine Kühlung denken, wenn man übertaktet.
Und da das RAM direkt auf dem BCM2710A1 aufliegt, ist auch der Platz begrenzt und darum gibt es "nur" 512 MB RAM wie in der ersten Zero Version. Für 1 GB RAM hätte man dreifach stapeln müssen. Das ist prinzipiell zwar möglich, aber wird dann teurer.
Wo wir gleich beim Thema Preis wären: Der Raspi Zero 2 kostet ungefähr das gleiche, was der Zero 1 gekostet hat, nämlich um die 16 Euro. Derzeit (Dez. 2021) wird er bei Händlern aber auch überteuert angeboten. Bei einem renommierten deutschen Elektronikversender habe ich ihn für 32 € gesehen und bei eBay werden auch schon einmal 50 € plus Versand aufgerufen. Mein 16 Euro Schnäppchen, so muss man fast sagen, war auch nach kurzer Zeit wieder ausverkauft, obwohl über 1000 Stück auf Lager waren und jeder Kunde nur einen Raspi Zero 2 bestellen konnte.
Hier noch einmal die wichtigsten Vergleichsdaten:
Kurzum gesagt ist er Zero 2 genauso den selben Formfaktor wie der Vorgänger Zero V1 (dessen Daten siehe meinen Blog-Artikel Raspi Zero W - Ersteinrichtung für WLAN und SSH, kostet in etwa das Gleiche, aber ist bis zu fünf mal schneller als ein Zero V1 (und etwa halb so schnell wir ein Pi 4). Die Leistungsaufnahme dürfte etwa gleich sein, wenn nur ein CPU-Kern genutzt wird. Wenn man den Zero 2 richtig fordert, geht natürlich auch der Verbrauch hoch, dürfte aber noch unter dem eines Raspi 3B+ liegen.
Einen Zero V1.x zu kaufen dürfte also keinen Sinn mehr machen. Und gegenüber einem normalgroßem Raspi (3B+, 4) ist er sehr viel günstiger und kleiner. Wenn man mit 512 MB RAM auskommt, dann ist er die erste Wahl. Braucht man mehr RAM und muss es keine so kleine Platine sein, dann sollte man zu einem "ausgewachsenen" Pi greifen.
Die Rückseite des Pi Zero 2
Auf dem Pi Zero V1 gibt es ein 4poligen 2x2-Header auf der Vorderseite oben rechts direkt unter dem GPIO-Header, der mit Run und TV+ beschriftet ist. Dafür war auf dem Pi Zero 2 kein Platz mehr und die Anschlüsse sind auf die Rückseite der Platine gewandert.
Außerdem kommt die Rückseite des Zero 2 viel aufgeräumter und gut beschriftet daher. GND, 1.8V, 3.3V und 5V sind gut zu finden und praktisch, um die Spannungen durchzumessen. Unten rechts findet sich dann auch der alte Bekannte TV wieder, an dem ein Composite-Signal abgegriffen werden kann. Erste Wahl für die Grafikausgabe ist natürlich der HDMI-Output.
Sind Raspi Zero 2.0 und Zero V1.x dann 100%ig kompatibel?
Als ich vom Pi Zero 2 hörte, fiel mir gleich mein Octopi mit Octoprint für meinen Anycubic i3 mega ein. Dafür war der Pi Zero V1 fast schon ein bisschen schwachbrüstig. Bei sehr kleiner Videoauflösung von 352 x 288 Pixeln für die Druck-Webcam ist die CPU schon im Leerlauf mit über 40% ausgelastet - ständig. Beim Druck sind wir dann bei fast 100% CPU-Auslastung. Es funktioniert zwar alles, aber manchmal muss ich doch schon recht lange warten, bis sich die Octoprint-Seite im Browser aufgebaut hat. Octoprint-Upgrades und Plugins habe ich mit natürlich bisher auch gespart.
Ich hätte mir zwar ein Raspi 3 oder Raspi 4 dafür kaufen können, aber das Gehäuse mitsamt Display, PIR, Temperatur- und Luftfeuchtesensor DHT11 war ja schon gedruckt und alles eingebaut. Das hätte ich bei einem Raspi 3 oder 4 alles austauschen müssen. Da kam mr der neue Zero 2 natürlich recht. Die Platine gleich raus, Anschlüsse gleich und sehr viel schneller. Das schien eine schnelle und leichte Lösung zu sein.
Darum habe ich mir auch gleich einen bestellt, als er zu einem vernünftigen Preis verfügbar war. Also ich ihn bekam, gleich erstmal begutachtet. Vom Zero V1 wusste ich schon, dass die kleine grüne LED (winzig klein und schwer zu finden auf der Platine zwischen Cam-Anschluss und PWR-in-Micro-USB-Buchse) nur leuchtet, wenn man ein OS bootet und nicht einfach so, wenn der Raspi Strom bekommt.
Also das Gehäuse vom Octopi geöffnet und die 8GB-SD-Karte herausgenommen und erst einmal ein Backup davon mit Win32DiskImager gemacht. Und dann die Karte in den neuen Pi Zero 2 geschoben und ihn eingeschaltet. Doch nichts tat sich. Die LED blieb dunkel. Und auch die Chips blieben kühl.
Sicher hätte man jetzt einen Monitor am HDMI-Port anschließen können, aber das lasse ich normalerweise sein, verbinde den Raspi mit dem WLAN und gehe dann über SSH auf den Raspi.
Also das Multimeter herausgekramt und erstmal auf der Rückseite gemessen, ob auch die richtigen Spanungen anliegen... tun sie. Das hieß dann wohl, dass der Pi ansich heile war, dass der Zero 2 aber nichts mit der SD-Karte vom Zero 1 anfangen konnte und davon nicht booten konnte. Was meinen Plan, einfach die alte SD-Karte in den neuen Pi zu schieben und dann die neue Platine einzubauen und fertig, zunichte machte. Es würde wohl leider ein bisschen komplizierter werden.
Die Frage, ob Raspi Zero 2.0 und Zero V1.x denn 100%ig kompatibel sind, muss also leider mit "Nein" beantwortet werden. Einfach die SD-Karte im neuen Zero 2 weiterverwenden, so einfach ging's nicht. Ältere Distributionen des Raspberry Pi Betriebssystems laufen also nicht einfach so auf dem Zero 2.
Ein neues Octopi-Image für den Raspi Zero 2
Also musste ein neues Image auf die SD-Karte. Für den Raspi Zero 1 hatte ich ja damals das Octopi-Image per Hand heruntergeladen und dann mit Etcher bzw. Win32DiskImager auf die SD-Karte geschrieben.Mittlerweile gibt es aber eine eigene Software von der Rapberry Foundation: den Raspberry Pi Imager. Mit dem kann man genauso gut, wenn nicht besser flashen und zuvor sogar ein OS für den Raspberry Pi aussuchen, dass dann heruntergeladen und auf der SD-Karte installiert wird:
Ich wähle "Other specific purpose OS > OctoPi > OctoPi (stable)". Und im nächsten Dialog wird OctoPi 0.18.0 mit OctoPrint 1.7.2 direkt auf meine SD-Karte geschrieben. Das war easy.
Voller Neugierde erstmal ein Test: bootet der Zero 2 jetzt, oder ist er am Ende doch defekt? Als die LED auf der Zero 2 mit der eingesteckten OctoPi-SD-Karte fröhlich vor sich hin flackert, atme ich auf: alles im grünen Bereich. Der Zero 2 funktioniert.
Aber leider fehlt noch jede Menge auf der SD-Karte: Python und mein Script zur Auswertung von Temperatur- und Luftfeuchtesensor und Darstellung auf dem Display. Meine WLAN-Konfiguration. Meine OctoPrint-Einstellungen. Da muss ich wohl frickeln und Dinge nachinstallieren und Dateien von meine originalen OctoPi-SD-Karte auf die neue kopieren...
Als erstes mal folge ich dem Abschnitt "Konfiguration vornehmen" im dem Blog-Artikel Raspi Zero W - Ersteinrichtung für WLAN und SSH und richte WLAN- und SSH-Zugang auf dem Zero 2 an, damit ich überhaupt an ihn herankomme und dort etwas ändern kann. Dazu muss ich die Dateien wpa_supplicant.conf und ssh auf der SD-Karte ändern bzw. anlegen.
Dann wird der Zero 2 neu gestartet. Diesmal schließe ich, obwohl das nicht nötig wäre, einmal den HDMI-Anschluss an.
Der Router hat den Neuzugang "octopi" schon einmal erkannt:
und auch Octopi meldet Erfolg, dass es sich mit dem WLAN verbinden konnte:
Mit dem Loginnamen "pi" und dem Standard-Passwort "raspberry" kann ich mich jetzt über SSH einloggen. Ich benutze dafür putty.
Über sudo raspi-config ändern wir gleich erst einmal das Standard-Passwort. Reine Vorsichtsmaßnahme. Sollte man wer in unser WLAN einbrechen können, soll er nicht gleich den Raspi mite dem Standard-Passwort übernehmen können und darauf Spam verschicken oder anderweitig Schindluder treiben.
Außerdem können wir unter Advanced Options noch Expand Filesystem ausführen, wenn wir eine größere SD-Karte besitzen, um sicher zu gehen, dass auch der gesamte Speicher darauf zur Verfügung steht.
Nach einem Reboot ist alles eingerichtet und auf OctoPrint kann über die angezeigte IP im Browser zugegriffen werden:
Die Einstellungen von OctoPrint muss ich jetzt natürlich noch einmal vornehmen und die PlugIns installieren. Aber dazu kann ich ja beide Pi Zeros nebeneinander laufen lassen und zwei Browser-Fenster aufmachen und dann vom alten OctoPrint abpinnen.
Oder noch einfacher: ich benutzte die Sichern- und Wiederherstellen-Funktion von OctoPrint, die ich dort in den Optionen finde. Wäre einfacher. Vorausgesetzt, das Backup schlägt nicht fehl, wie bei mir.
Na, dann verzichte ich eben auf Uploads und Zeitrafferaufnahmen. Damit geht dann das Backup. Und das setzt auch gleich Passwort und installiert die zuvor verwendeten PlugIns. Und damit läuft das Octoprint dann auch schon wie gewollt.
Ich allerdings habe noch ein bisschen Arbeit vor mir, will ich doch noch meine Python-Scripts zum Laufen bringen. Aber dazu muss ich erst einmal eine Netzwerkfreigabe mit Samba installieren, wie in meinem Blogartikel Dateifreigabe und Zugriff über Windows auf den Raspi beschrieben.
Und dann meine Scripts für die Sensoren und Anzeige kopieren und den Autostart neu konfigurieren, so wie es in meinem Blog-Artikel OctoPrint-Raspi mit Status-LCD erweitern nachzulesen ist.
Nachdem alles installiert und wieder ins Gehäuse gepackt ist, schließe ich den neuen OctoPi-Server an meinen Anycubic i3 Mega 3D-Drucker an. Im Idle liegt die CPU-Auslastung jetzt bei 21%, also der Hälfte und auch beim Druck geht sie nicht merklich hoch. Hier war der alte Zero V1 schon manchmal auf 100%. Auch reagiert die OctoPrint-Seite im Browser jetzt viel schneller.
Das heißt für mich, das ich wohl auch mit der Videogröße der Webcam für die Aufnahme herauf kann, mehr als VGA (640x480) schafft die Kamera ja eh nicht. Dadurch wird die Zero 2-CPU auch beim Durck nur zu 40% ausgelastet. Mit dem Zero 1 war das gar nicht möglich. Und das eine oder andere Plugin zusätzlich ist sicher auch noch drin. Dabei habe ich die CPU noch nicht übertaktet, sondern brav bei den standardmäßigen 1.0 GHz gelassen.