WebREPL für den Raspberry PI Pico W

Mit dem Wifi fähigen Pico W wäre es doch praktisch, wenn man das von den ESP32/ESP8266 her bekannte WebREPL nutzen könnte. Mit den neusten Firmwarebuilds für den Pico W ist dies nun möglich.

Bei der Suche nach WebREPL für den Pico W bin ich auf ein aktuelles Issue im Micropython Projekt gestossen, welches den Eindruck erweckt das WebREPL seit kurzem unterstützt wird. Wenn man den neusten Firmware Build für den Pico W verwendet und müsste man also wie WLAN Micropython Code ausführen und testen können.

Gemäss Issue aus dem WebREPL Projekt, sollte WebREPL ab der Pico W Firmware Version 1.20 standarmässig unterstützt sein. Bis dahin muss man einen Nightly Build verwenden. Ich habe die Version rp2-pico-w-20220914-unstable-v1.19.1-409-g0e8c2204d.uf2 verwendet. Diese findet man auf der Downloadseite für die Pico W Firmware.

Achtung

Dieser Blogbeitrag, war am 17.9.2022 korrekt. Da WebREPL noch auf einem Nightly Build basiert, ist durchaus noch mit Änderungen zu rechnen. Entsprechende Kommentare sind willkommen und werden gerne eingepflegt.

Installation Firmware

  1. Nightly Build der Firware rp2-pico-w-20220914-unstable-v1.19.1-409-g0e8c2204d.uf2 von der Downloadseite für die Pico W Firmware herunterladen. Jede neuere Firmware sollte ok sein. Ab V 1.20 kann der offizielle Release verwendet werden.
  2. Die Firmware gemäss «Installation Instructions» auf der Downloadseite installieren.
  3. Den Pico W mit dem USB Port des Rechners verbinden.
    1. Bei Max/Linus Rechnern sollte jetzt unter /dev/tty.* ein neues Device erscheinen.
      $> ls -al /dev/tty.*
      crw-rw-rw- 1 root wheel 0x16000000 16 Sep 17:52 /dev/tty.BLTH
      crw-rw-rw- 1 root wheel 0x16000006 16 Sep 17:52 /dev/tty.Bluetooth-Incoming-Port
      crw-rw-rw- 1 root wheel 0x16000002 16 Sep 17:52 /dev/tty.URT1
      crw-rw-rw- 1 root wheel 0x16000004 16 Sep 17:52 /dev/tty.URT2
      crw-rw-rw- 1 root wheel 0x16000008 17 Sep 15:25 /dev/tty.usbmodem14501
    2. Bei Windows Rechner findet man den entsprechenden COM Port im Gerätemanager.
  4. Mit rshell eine REPL Verbindung zum Pico W aufbauen:
    $> rshell -p /dev/tty.usbmodem14501
    Using buffer-size of 32
    Connecting to /dev/tty.usbmodem14501 (buffer-size 32)…
    Trying to connect to REPL connected
    Welcome to rshell. Use Control-D (or the exit command) to exit rshell.
    $>repl
    Entering REPL. Use Control-X to exit.
    >
    MicroPython v1.19.1 on 2022-09-14; Raspberry Pi Pico W with RP2040
    Type "help()" for more information.
    >>>
    >>> 2+2
    4
    >>>
  5. Mit Ctrl-X und Ctrl-D kann rshell wieder verlassen werden.

Installation WebRepl

  1. Micropython Dateien für WebREPL herunterladen:
    1. curl -O https://raw.githubusercontent.com/micropython/micropython-lib/master/micropython/net/webrepl/manifest.py
    2. curl -O https://raw.githubusercontent.com/micropython/micropython-lib/master/micropython/net/webrepl/webrepl.py
    3. curl -O https://raw.githubusercontent.com/micropython/micropython-lib/master/micropython/net/webrepl/webrepl_setup.py
  2. Eine leere datei boot.py erstellen.
  3. Diese 4 Dateien müssen jetzt mit Hilfe von rshell auf den Pico W transferiert werden.
  4. $> rshell -p /dev/tty.usbmodem14501
    Using buffer-size of 32
    Connecting to /dev/tty.usbmodem14501 (buffer-size 32)…
    Trying to connect to REPL connected
    Welcome to rshell. Use Control-D (or the exit command) to exit rshell.
    $>cp pfad/zu/den/heruntergeladenen/dateien/* /pyboard

    $>ls -al /pyboard
    0 Sep 17 17:09 boot.py

    62 Sep 17 15:02 manifest.py
    4244 Sep 17 15:03 webrepl.py
    2764 Sep 17 15:03 webrepl_setup.py
  5. Jetzt muss WebRepl initalisiert werden. Dazu muss mit REPL webrepl_setup.py ausgeführt werden.
  6. $> rshell -p /dev/tty.usbmodem14501
    $> repl
    Entering REPL. Use Control-X to exit.
    >
    MicroPython v1.19.1 on 2022-09-14; Raspberry Pi Pico W with RP2040
    Type "help()" for more information.
    >>>
    >>> import webrepl_setup
    WebREPL daemon auto-start status: disabled

    Would you like to (E)nable or (D)isable it running on boot?
    (Empty line to quit)
    > E
    To enable WebREPL, you must set password for it
    New password (4-9 chars): my-secret-password
    Confirm password: my-secret-password
    Changes will be activated after reboot
    Would you like to reboot now? (y/n) n
    >>>
  7. Boot boot.py wurde von WebRepl Setup angepasst. Diese angepasste Version muss mit dem Wifi-Login ergänzt werden. Im Beispiel bitte SSID und Passwort entsprechend anpassen.
  8. Dazu wird boot.py am besten auf den Rechern kopiert, editiert und wieder zurückkopiert. In rshell sind das zwei cp Befehle.
  9. $> rshell -p /dev/tty.usbmodem14501
    ...
    $>cp /pyboard/boot.py .

    (editieren auf dem Rechner)
    $>cp boot.py /pyboard

Mit WebRepl Verbinden

  1. Nach eine Reboot, z.B. nach aus- und wieder einstecken des USB Kabels, loggt sich der Pico W ins WLAN ein und erhält eine IP-Adresse. Diese findet man z.B. mit dem Angry IP-Scanner heraus.
  2. Im Browser folgende die URL nach dem Muser http://ip-adresse:8266 eingeben.
  3. Nach dem Klick auf «Connect» das Passwort eingeben.
  4. Jetzt kann via WebREPL auf Micropython zugegriffen werden und mit dem Menu auf der rechten Seite können Dateien hoch- bzw. runtergeladen werden.
  5. Wenn die Verbindung nicht funktioniert, hilft es meistens 2-3 auf Connect/Disconnect zu klicken bzw. die Seite neu zu laden.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

2 Gedanken zu “WebREPL für den Raspberry PI Pico W”