Hardware

PocketGPT startet nicht: So prüfst du den ESP32-S3

PocketGPT bleibt stumm? So grenzt du USB-Probleme, falsche Speicherprofile und fehlende Modelldateien auf dem ESP32-S3 ein.

Von Wolfgang

20. Okt. 20266 Min. Lesezeit

Mikrocontrollerboard mit Artikelüberschrift und TechZeitGeist-Schriftzug

Wenn PocketGPT auf einem ESP32-S3 nicht startet, prüfe zuerst den USB-Port und die Startmeldungen, dann die genaue Boardvariante und schließlich das passende Modellpaket. Ein erfolgreich übertragener Programmcode genügt bei diesem Projekt noch nicht: Je nach Board müssen zusätzliche Modelldateien an den richtigen Speicherorten liegen. Mit dieser Reihenfolge lässt sich eingrenzen, ob schon die Verbindung scheitert oder erst das Sprachmodell.

PocketGPT ist ein selbst trainiertes Sprachmodell für einen kleinen Mikrocontroller. Es läuft lokal auf dem Board. Für die Offline-Version sind weder WLAN noch ein API-Schlüssel erforderlich. Das macht den Aufbau interessant für Menschen, die verstehen möchten, wie viel KI auf wenig Hardware passt. Bei der Fehlersuche hilft dieselbe Frage wie bei einem größeren Rechner: An welcher Stelle kommt der Start zum Stillstand?

Erst sehen, was das Board beim Start meldet

Ein schwarzer Bildschirm verrät wenig. Die serielle Ausgabe zeigt dagegen, ob das Board neu startet, Speicher initialisiert oder bereits Modelldaten prüft. Verbinde es mit einem USB-Datenkabel und ermittle den tatsächlich zugeordneten Anschluss. In einer Python-Umgebung mit den Projektwerkzeugen listet python -m serial.tools.list_ports die verfügbaren Ports auf.

Öffne anschließend den Monitor mit 115200 Baud und setze das Board zurück. Beispielsweise lautet der Aufruf unter Windows mit dem Beispielport COM5:

python -m serial.tools.miniterm COM5 115200 --eol LF --echo

COM5 muss durch den eigenen Port ersetzt werden. Die Baudrate bestimmt, wie der Monitor die ankommenden Zeichen interpretiert. Bei passender Einstellung werden aus unlesbaren Zeichen verwertbare Startmeldungen; die Berechnung des Sprachmodells wird dadurch nicht schneller. Espressif nennt 115200 für die Startdiagnose des ESP32-S3. Ein fehlender Port führt die Suche zunächst zu Kabel, Anschluss oder Treiber.

Schließe andere Programme, die denselben Port geöffnet halten. Für einen erneuten Flash-Vorgang muss auch der Monitor geschlossen sein. Wiederholt sich stattdessen eine Startmeldung, notiere die letzte lesbare Zeile vor dem Neustart. Sie ist hilfreicher als mehrere gleichzeitig veränderte Einstellungen.

ESP32-S3 ist noch keine vollständige Hardwareangabe

Das Projekt beschreibt zwei unterschiedliche Aufbauten: einen DevKit-Pfad mit 32 MB Octal-Flash und 16 MB PSRAM sowie einen XIAO-Pfad mit 8 MB Flash und 8 MB PSRAM, Round Display und microSD-Karte. Die Firmware und Modellpakete dieser Varianten sind nicht austauschbar. Ein anderer ESP32-S3 trägt zwar denselben Prozessornamen, kann aber einen anderen Speicher besitzen.

Vergleiche daher die konkrete Board- oder Modulbezeichnung mit der Build-Referenz, bevor du Einstellungen änderst. Die Flash-Größe bezeichnet den dauerhaften Speicher für Programm und Daten; PSRAM erweitert den Arbeitsspeicher während des Betriebs. Ein Menüeintrag erzeugt keinen Speicherchip, der auf dem Board fehlt.

Die Offline-Anwendungen werden im Projekt mit PlatformIO gebaut. Daneben gibt es eine getrennte Netzwerk-Firmware für Antworten von Gemini oder Ollama. Eine Arduino-IDE-Anleitung für diese Netzwerkversion ist deshalb kein Ersatz für die lokale Installation. Entscheidend ist, welche Anwendung du tatsächlich gebaut und übertragen hast.

Speicherprofile verstehen, statt Werte durchzuprobieren

In der DevKit-Konfiguration stehen unter anderem 32 MB Flash und memory_type = opi_opi. Die XIAO-Konfiguration verwendet 8 MB Flash und memory_type = qio_opi. Beide aktivieren die Unterstützung für PSRAM. Diese Angaben gehören jeweils zum vorgesehenen Hardwareaufbau.

Die Speichermodi beschreiben, wie der Prozessor mit den Bausteinen kommuniziert. Ein falscher Modus kann verhindern, dass der Speicher korrekt angesprochen wird. Wähle daher beim Bauen die zum Board gehörende Projektumgebung: local_devkit beziehungsweise local_xiao. Damit werden deren Speicher- und Partitionseinstellungen verwendet. Ob der Wechsel die Ursache getroffen hat, zeigt anschließend der Start: Die Initialisierung muss weiterlaufen und die Modellprüfung erreichen.

Auch die Partitionstabelle ist wichtig. Sie teilt den Flash in Bereiche ein, ähnlich einem Lageplan für Programm und Daten. Eine größere eingestellte Flash-Kapazität vergrößert den realen Baustein nicht. Espressifs Dokumentation der Speicheroptionen erklärt den Zusammenhang zwischen Flash-Größe, Partition und PSRAM-Modus. Für PocketGPT bleibt der geprüfte Projektaufbau der Ausgangspunkt.

Schema des XIAO-PocketGPT-Aufbaus mit Flash, PSRAM und microSD sowie Lade- und Lesepfaden
Beim XIAO-Aufbau liegen Modellbestandteile an mehreren Orten. Das Schema zeigt, weshalb eine fehlende Datei den Start oder die Berechnung unterbrechen kann. (Quelle: KI generiert)

Warum eine fertige Firmware noch kein vollständiges Modell ist

Beim XIAO verteilt sich das Modell auf Flash, PSRAM und microSD. Ein Teil der Daten wird beim Start von der Karte in den Arbeitsspeicher geladen; andere Teile bleiben auf der Karte und werden beim Antworten gelesen. Die Model Card dokumentiert diese Aufteilung. Die Karte dient damit auch als Teil des Modellspeichers.

Die XIAO-Bauanleitung verlangt eine mit dem Paketwerkzeug erstellte app_with_tail.bin. Sie enthält neben dem Programm erforderliche Cache-Bestandteile. Eine allein übertragene firmware.bin lässt diese aus. Wenn das Programm startet, aber die Modell- oder Cache-Prüfung fehlschlägt, kontrolliere deshalb die installierten Dateien anhand des passenden Pakets.

Für die microSD sieht die Installationsanleitung FAT32 und das Verzeichnis /pocketgpt_xiao_v7b50_final_v1/ direkt im Kartenstamm vor. Ein zusätzlich darüberliegender Ordner verändert den Pfad, unter dem die Firmware ihre Dateien sucht. Nach Korrektur von Format und Verzeichnis sollte die betreffende SD- oder Dateiprüfung im Bootprotokoll erfolgreich weiterlaufen. Bleibt eine Abweichung bestehen, nicht übergehen.

Übertragungsfehler anders behandeln als Startfehler

Bricht schon das Flashen ab, kann eine niedrigere Übertragungsgeschwindigkeit helfen. Das Projekt verwendet beim DevKit 460800 Baud für den Upload. Verringere bei Verbindungsfehlern den Uploadwert beziehungsweise den Wert hinter --baud im vorgesehenen Flash-Aufruf. Dadurch werden Daten langsamer zum Board geschickt. Der erkennbare Erfolg ist eine vollständig abgeschlossene Übertragung ohne den vorherigen Verbindungsfehler.

Diese Änderung betrifft den Installationsweg, nicht die Geschwindigkeit späterer Antworten. Bleibt der Fehler, prüfe Kabel und Stromversorgung. Espressif weist darauf hin, dass eine Versorgung zum Flashen ausreichen und im normalen Betrieb trotzdem instabil sein kann. Für die Diagnose zunächst ein geeignetes Datenkabel und einen zuverlässigen USB-Anschluss verwenden. Änderungen an der Spannungsversorgung gehören nicht zum üblichen Softwareversuch.

Vor einer Neuinstallation den bisherigen Aufbau und benötigte Daten sichern: Das Übertragen einer anderen Firmware kann vorhandene Speicherbereiche überschreiben. Für die Wiederherstellung immer die vollständige Anleitung des eigenen Boardpfads verwenden, nicht einzelne Flash-Adressen aus der anderen Variante übernehmen.

Woran du einen gelungenen Start erkennst

Beim DevKit nennt die Anleitung die Meldungen [TIED30M_PACKAGE] PASS, [TIED30M_HEAD_CRC] PASS und [READY]. Erst danach folgt ein kurzer Eingabetest wie hello. Der mitgelieferte serielle Test kontrolliert eine nicht leere Antwort, eine positive Tokenzahl und das Ausbleiben gemeldeter Inferenzfehler.

Damit ist der technische Weg bis zur Textausgabe geprüft. Inhaltlich bleibt PocketGPT ein kleines Experiment: Laut Projekt sind selbst einfache Rechenantworten unzuverlässig. Wenn eine Antwort erscheint, die keinen Sinn ergibt, liegt das Problem daher möglicherweise im Modell statt im Speicherprofil. Die Startdiagnose endet dort, wo der Datenweg funktioniert; eine klügere Antwort erfordert eine andere Verbesserung.

Quellen

Für diesen Artikel wurden KI-gestützte Recherche- und Editierwerkzeuge verwendet. Der Inhalt wurde redaktionell geprüft.