Raspberry Pi Pico W: Troubleshooting WLAN

Wenn es mit dem Raspberry Pi Pico W und der WLAN-Verbindung Probleme gibt, dann ist das nicht immer ganz einfach zu lösen. Dazu muss man wissen, dass Funkverbindungen selten problemlos sind, was in der Natur der Sache liegt. Der Umgang mit diesen Problemen ist immer etwas schwierig, weil man nicht „sieht“ was passiert oder wo genau das Problem liegt.

Wir müssen uns, wenn wir nicht genau wissen was los ist, irgendwie dem Problem nähern. Dazu sollten folgende grundsätzlichen Fehlerquellen beachtet und berücksichtigt werden.

  • Reichweite der Funksignale
  • Frequenzbereich
  • Länderspezifische Einstellungen

Reichweite der Funksignale

Die mögliche Distanz zum Wireless Access Point (WLAN-Router oder ähnlich) wird mit 30 Metern in Innenräumen in der Regel sehr optimistisch angegeben. Doch gerade was Entfernungen bei Funkverbindungen angeht, sollte man vorsichtig sein. Was heute noch geht, muss morgen nicht mehr funktionieren.

Da jeder überall ein WLAN betreiben kann, ist auch überall mit fremden WLANs zu rechnen, über die man keine Kontrolle hat. Fremde WLANs muss man als störende Elemente betrachten, die nicht nur Einfluss auf die Datenrate haben, sondern auch auf die Verbindungsqualität. Mit steigender Anzahl von fremden WLANs und WLAN-Clients in der Umgebung steigt auch die Fehlerrate im eigenen WLAN an.

Je näher sich ein WLAN-Client am Access Point befindet, desto stabiler wird die WLAN-Verbindung sein. Je weiter weg, desto mehr fremde WLANs werden in die eigene Funkverbindung hineinfunken und vielleicht die Verbindung stören.

Frequenzbereich

Für die WLAN-Technik gibt es mehrere Frequenzbereiche, die je nach Land unterschiedlich breit sein können. Der Hauptfrequenzbereich liegt bei 2,4 GHz und zwei weitere liegen bei 5 GHz und 6 GHz. Der Raspberry Pi Pico W beherrscht nur den Frequenzbereich bei 2,4 GHz. Alles was darüber ist, kann der Pico nicht sehen und demnach auch keine Verbindung aufbauen.

Hinweis: In der Regel braucht jeder Frequenzbereich seine eigene Antenne. Weil auf dem Pico nicht viel Platz ist, hat er nur eine Antenne für 2,4 GHz. Für mehr ist auf der Platine einfach kein Platz.

Länderspezifische Einstellungen

Weil die Regularien zur Nutzung der Frequenzbereiche mit Allgemeinzuteilung mit WLAN-Technik in vielen Ländern unterschiedlich aussehen, muss der WLAN-Chip auf dem Pico unterschiedliche Parameter berücksichtigen, die standardmäßig auf die Parameter in Großbritannien (GB) eingestellt sind. Das kann zur Folge haben, dass es bei der Nutzung von WLANs in anderen Ländern zu Verbindungsproblemen kommt. Um verschiedene Fehlerquellen auszuschließen, gilt es Länder-spezifische Vorgaben zu berücksichtigen. Dazu sollte der betreffende Ländercode (country code) des Landes im MicroPython-Programmcode eingestellt sein, in dem sich das zu nutzende WLAN befindet.

In Deutschland würde man folgende Zeilen im Programmcode vor der Initialisierung des WLANs einfügen:

import rp2
rp2.country('DE')

Übersicht: Probleme - Analyse - Lösungen

- Problem 1: WLAN-Verbindung wird nicht hergestellt
- Analyse und Lösung 1: Status einer WLAN-Verbindung (value of cyw43_wifi_link_status) richtig interpretieren
- Problem 2: WLAN-Verbindungsaufbau funktioniert nicht mehr
- Analyse 2: WLANs in der Umgebung scannen
- Lösung 2: MicroPython-Firmware aktualisieren

Problem 1: WLAN-Verbindung wird nicht hergestellt

Wenn eine WLAN-Verbindung nicht erfolgreich war, dann kann es eigentlich nur zwei Gründe geben:

  1. Beim WLAN-Status -3 ist die Authentifizierung fehlgeschlagen. In der Regel ist das eingegebene WLAN-Passwort falsch. Hier ist zu beachten, dass es kein Tippfehler sein muss. Es kann auch an ein Sonderzeichen im Passwort sein, dass nicht richtig interpretiert wird. Bei WLAN-Passwörtern gilt, sich möglichst auf Buchstaben und Zahlen zu beschränken. Das Passwort muss mindestens 8 Zeichen lang sein. Je länger, desto länger dauert das Erraten und desto sicherer ist das Passwort.
  2. Beim WLAN-Status -2 ist das betreffende WLAN nicht zu erreichen. Zuerst sollte man die Schreibweise des WLAN-Namens (SSID) prüfen. Wenn das korrekt ist, dann sollte man einen WLAN-Scan machen, ob der Pico überhaupt in der Lage ist, das WLAN zu empfangen. Wenn der Pico nur wenige Meter vom Access Point entfernt ist und das WLAN im WLAN-Scan nicht dabei ist, dann kann ein Neustart des Picos die Lösung sein.

Analyse und Lösung 1: Status einer WLAN-Verbindung (value of cyw43_wifi_link_status) richtig interpretieren

Der Treiber für den WLAN-Funkchip gibt mit dem Kommando `wlan.status()` den Status für ein WLAN-Verbindung zurück. Hierzu sind im Treiber mehrere Werte hinterlegt (value of cyw43_wifi_link_status). Die Kürzel und Werte sind allerdings nicht sehr aussagekräftig. Wir klären, was der Status jeweils bedeutet. Außerdem klären wir, was die Lösung sein könnte, wenn eine Verbindung zum WLAN fehlschlägt.

Grundsätzlich gilt: Ein Status von -1 bis -3 kommt immer dann, wenn ein Verbindungsaufbau abgebrochen wurde. Ein Status von 1 und 2 bedeutet, dass ein Verbindungsaufbau noch nicht vollständig abgeschlossen ist.

  • CYW43_LINK_DOWN (0): Es besteht keine WLAN-Verbindung.
  • CYW43_LINK_JOIN (1): Es besteht ein Verbindungsaufbau-Versuch, der aber noch nicht vollständig abgeschlossen ist.
  • CYW43_LINK_NOIP (2): Der Verbindungsaufbau war erfolgreich, das Interface hat aber noch keine IP-Konfiguration. Es kann sein, dass zu diesem Zeitpunkt der Verbindungsaufbau noch nicht vollständig durchlaufen ist, oder das Netzwerk keinen DHCP-Server zum Verteilen einer IP-Konfiguration hat.
  • CYW43_LINK_UP (3): Der Verbindungsaufbau war erfolgreich und ist in der Regel vollständig.
  • CYW43_LINK_FAIL (-1): Der Verbindungsaufbau wurde abgebrochen.
  • CYW43_LINK_NONET (-2): Der Verbindungsaufbau wurde abgebrochen, weil das angegebene WLAN (SSID) nicht gefunden wurde, bzw. nicht erreichbar ist. Hier sollte man einen WLAN-Scan durchführen, um zu prüfen, ob das WLAN für den Raspberry Pi Pico W überhaupt empfangbar ist. Achtung, es kann sein, dass das WLAN-Signal für den Pico zu schwach ist.
  • CYW43_LINK_BADAUTH (-3): Der Verbindungsaufbau wurde abgebrochen, weil die Authentifizierung fehlgeschlagen ist. In der Regel wird hier das WLAN-Passwort falsch sein. Hier ist die Eingabe des WLAN-Passworts zu prüfen und zu korrigieren.

Problem 2: WLAN-Verbindungsaufbau funktioniert nicht mehr

In einem Programmcode wird eine Verbindung zu einem WLAN aufgebaut. Dazu wurde im Programmcode WLAN-Name (SSID) und Passwort hinterlegt. Nur funktioniert es auf einmal nicht mehr.

Hierzu gibt es zwei Lösungsansätze:

  1. Hat sich an den Zugangsdaten wirklich nichts geändert? Das andere Clients Probleme mit der WLAN-Verbindung haben, sollte man auch ausschließen. Dazu sollten der WLAN-Name (SSID) und das Passwort im Programmcode noch einmal überprüft werden.
  2. Die eine oder andere MicroPython-Firmware-Version hatte auf manchen Picos das Problem, dass nicht alle WLANs in der Umgebung erkannt wurden. Und dann kann zu einem betroffenen WLAN keine Verbindung aufgebaut werden. Obwohl die Zugangsdaten korrekt sind und sich der Pico nahe genug am Access Point befindet.

Analyse 2: WLANs in der Umgebung scannen

Ausgangspunkt bei unklaren WLAN-Problemen sollte ein WLAN-Scan sein, der die empfangbaren WLANs in der Umgebung anzeigt.

# Bibliotheken laden
import network

# Client-Betrieb
wlan = network.WLAN(network.STA_IF)

# WLAN-Interface aktivieren
wlan.active(True)

# WLANs ausgeben
print(wlan.scan())

Hier sollte das WLAN, mit dem sich der Pico verbinden soll, aufgelistet sein. Wenn das nicht der Fall ist, dann sollte man die Verbindung noch mit einem anderen WLAN-Client prüfen. Wenn das WLAN mit dem anderen WLAN-Client funktioniert, dann kann es tatsächlich an der MicroPython-Firmware liegen.

Lösung 2: MicroPython-Firmware aktualisieren

Hierzu sind folgende Schritte zu tun:

  1. Sichere alle Programmcodes und Dateien, die Du auf dem Pico gespeichert hast.
  2. Versetze den Pico in ein Laufwerk und kopiere die Firmware flash_nuke.uf2 auf den Pico.
  3. Verbinde den Pico erneut als Laufwerk, lade die aktuelle Firmware für den Raspberry Pi Pico W herunter und kopiere sie auf den Pico.
  4. Führe nach einem Neustart den WLAN-Scan-Programmcode auf dem Pico aus.

Wenn es an der Firmware lag, dann sollte Dein WLAN in der Liste auftauchen.

Weitere verwandte Themen:

Teilen:

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

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

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

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen