Raspberry Pi Pico: Troubleshooting Autostart - Fehler, Probleme und Lösungen

Wenn man ein Mikrocontroller-Board wie den Raspberry Pi Pico vom Host-Computer trennt und mit einer eigenen Stromversorgung automatisch starten lässt, dann treten häufig unerklärliche Probleme auf. Leider ist man oft von jeglichen Status-Informationen abgekoppelt. Während es in der Thonny Python IDE eine Kommandozeile zur Ausgabe von Fehlermeldungen und Status-Informationen gibt, haben die meisten Pico-Projekte kein Display und es ist auch keine andere Ausgabemöglichkeit vorgesehen.

Tipps für einfache Status-Ausgaben

Im folgenden ein paar Tipps wie man einfache Status-Ausgaben realisieren kann.

Tipp 1: Onboard-LED als Status-Anzeige

Um herauszufinden, ob der Raspberry Pi Pico überhaupt automatisch startet, kann man die Onboard-LED gleich am Anfang des Programmcodes für eine oder 2 Sekunden aufleuchten lassen, um feststellen zu können, dass er überhaupt startet.

Tipp 2: OLED-Display als Ausgabe der Kommandozeile

Ein mehrzeiliges OLED-Display kann vergleichsweise einfach als Ersatz für die Anzeige der Kommandozeile in der Thonny Python IDE verwendet werden. Ein OLED-Display mit 128 x 64 Pixeln hat 6 Zeilen mit jeweils 16 Zeichen. Bei komplexen Projekten ist das empfehlenswert.

Problem: Der Raspberry Pi Pico macht gar nichts

Die Situation ist die, dass der Programmcode grundsätzlich funktioniert, aber wenn der Raspberry Pi Pico extern gespeist wird, passiert gar nichts. Selbst die Onboard-LED leuchtet nicht, obwohl sie am Anfang des Programmcodes eingeschaltet wird, um als Status-Anzeige zu dienen.

Damit der Raspberry Pi Pico (mit MicroPython-Firmware) automatisch startet, muss auf dem Pico der Programmcode in der Datei main.py gespeichert sein.

Lösung: Ist die Datei main.py wirklich auf dem Pico gespeichert?

Zuerst ist zu prüfen, ob der Programmcode tatsächlich in der Datei main.py **auf dem Pico** gespeichert ist. Selbst dann, wenn die Datei main.py auf dem Pico existiert, ist festzustellen ob der Programmcode dort drin ist, wenn die Datei geöffnet wird. Vielleicht hat man den Programmcode versehentlich in der Datei main.py auf dem Host-Computer gespeichert.
Man kann die Datei main.py auch manuell im Thonny Python IDE starten. Wenn der wie gewünscht funktioniert, dann sollte der Pico auch mit dieser Datei starten.

Problem: Die Datei main.py wird offensichtlich gestartet, aber es geht irgendwie nicht oder nicht richtig.

Die Frage ist, was ist anders, wenn der Raspberry Pi Pico automatisch gestartet wird.

Lösung 1: Stromversorgung prüfen

Wenn der Pico und weitere angeschlossene Bauteile eine eigene Stromversorgung haben, stellt sich die Frage, ob diese überhaupt stabil genug ist, um alle Bauteile zu versorgen. Insbesondere im Batterie-Betrieb kann es vorkommen, dass alle Bauteile zusammen zu viel Energie verbrauchen. Das gilt grundsätzlich auch bei USB-Netzteilen und auch an einem USB-Port eines Computers und USB-Hubs.

Lösung 2: Sensoren sind langsamer als der Mikrocontroller

Bauteile und Sensoren, die per I2C oder anderen Schnittstellen angebunden sind, brauchen nach der Trennung von der Stromversorgung unter Umständen 1 bis 2 Sekunden Zeit, um angesprochen werden zu können oder bis sie sinnvolle Daten liefern. Wenn man im Programmcode solche Bauteile zu schnell initialisiert und mit ihnen kommunizieren will, bevor sie in Betrieb gegangen sind, kann es sein, dass der Programmcode mit einem Fehler abbricht. Entweder kümmert man sich im Programmcode um eine Fehlerbehandlung oder gibt dem Bauteil beim Programmstart mehr Zeit sich zu initialisieren.

Problem: Der Raspberry Pi Pico fällt immer mal wieder aus

Das Problem ist schwer zu beschreiben. Denn im Grund genommen funktioniert alles problemlos. Nur irgendwann nicht mehr. Es ist, als ob der Raspberry Pi Pico ausfällt oder sich aufhängt. Wenn er dann neu gestartet wird, läuft er einige Zeit wieder problemlos, bis er wieder ausfällt.

Wenn man den Raspberry Pi Pico programmiert, dann tut man das in der Regel in einer optimalen Umgebung, in der fast alle Fehlerquellen minimiert oder sogar ausgeschlossen sind. Wenn man den Pico dann in die Freiheit entlässt, dann trifft er unter Umständen auf Probleme, die man so nicht gesehen hat. Das ist besonders dann der Fall, wenn der Pico mit anderen Geräten über Schnittstellen oder im Netzwerk kommuniziert.

Typische Probleme sind:

  1. Aus irgendwelchen Gründen gibt es Verbindungsprobleme mit Geräten an Schnittstellen, wie UART, I2C und SPI. Frage: Was passiert im Programmcode, wenn die Geräte nicht erreichbar sind? Bricht dann der Programmcode mit einem Fehler ab?
  2. Der Pico sendet regelmäßig Sensor-Werte per WLAN an eine Gegenstelle. Frage 1: Was passiert im Programmcode, wenn keine Verbindung zum WLAN besteht? Frage 2: Was passiert im Programmcode, wenn die Gegenstelle nicht erreichbar ist?

Irgendwelche Verbindungsprobleme im Zusammenhang mit Schnittstellen, WLAN und Internet können immer auftreten und sollten im Programmcode durch eine Fehler- und Ausnahmebehandlung berücksichtigt werden. Denn Fehler führen in der Regel zum Abbruch des Programmcodes. Das bedeutet dann, dass der Pico nicht mehr läuft und manuell neu gestartet werden muss.

Lösung: Fehlerbehandlung mit Reset/Neustart

Grundsätzlich gilt, dass man nicht davon ausgehen kann, dass Verbindungen über Schnittstellen oder Netzwerke zu Gegenstellen immer problemlos funktionieren. Solche Fehler treten auch bei einem gewöhnlichen Computer auf. Hier erhält der Benutzer dann eine Fehlermeldung, auf die er reagieren kann oder es existiert ein Verbindungsmanagement, dass die Verbindung über eine Schnittstelle oder einem WLAN automatisch wieder herstellt, wenn die Verbindung getrennt wurde.

  • Raspberry Pi Pico: Reset und Neustart bei unerwarteten Fehlern

Problem: Keine WLAN-Verbindung möglich

Behandelt werden typische Probleme mit dem Raspberry Pi Pico W und dessen WLAN-Verbindung. Häufige Fehler sind der ImportError wegen fehlendem "network"-Modul, meist verursacht durch eine falsche Firmware. Zudem sollte man die Zugangsdaten und WLAN-Router-Position überprüfen sowie einen WLAN-Scans durchführen, um die verfügbaren Netzwerke zu identifizieren.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren