Raspberry Pi Pico - Quick Start

In diesem Blogbeitrag möchte ich zeigen, wie Sie den Pico in Betrieb nehmen, das erste Programm aufspielen und eventuell einige erste Probleme lösen können. Los geht’s.

Was wir benötigen

  • Raspberry Pi Pico
  • MikroUSB Kabel zur Datenübertragung
  • PC mit Internetverbindung (alternativ: Raspberry Pi 4(B))

Der erste Eindruck

Der Raspberry Pi Pico bzw. sein darauf verwendeter Chip RP2040 ist auf raspberrypi.com sehr gut und ausführlich (allerdings in englischer Sprache) dokumentiert. Vom CPU-Takt her sortiert er sich mit seinen 133 MHz hinter dem ESP32 ein. Er bringt keinen WiFi/Bluetooth Chip onboard mit. Allerdings reichlich GPIOs, darunter zwei I2C Schnittstellen, drei 12 Bit ADC-Wandler (die also von 0 bis 4095 zählen), einen Temperatursensor on-board (verbunden an ADC4). Außerdem eine PIO (programmierbare IO-Schnittstelle) mit vier Statemachines, mit der sich z.B. Hardwareschnittstellen nachbilden lassen. Der Pico ist darauf ausgelegt, sehr stromsparend zu laufen, was ihn für den mobilen Batteriebetrieb auszeichnen sollte. Eine Hardware Debugschnittstelle ist außerdem noch vorhanden.

Wichtiger Hinweis: die Pinspannung beträgt wie beim großen Raspberry Pi nur maximal 3,3 V. Sensoren oder Aktoren, die mit 5 V arbeiten, müssen mit einem zwischengeschalteten Logiklevel-Konverter betrieben werden!

Hier einmal das Pinout:

Pinout

Download Pinout als PDF (Quelle: raspberrypi.com)

Lassen Sie sich nicht irritieren. Es gibt keine Status-LED, die leuchtet, wenn man den Pico per USB verbindet. Eine Onboard-LED ist vorhanden (die lassen wir auch direkt blinken). Aber man erkennt nicht, in welchem Modus sich der Pico befindet, oder ob er überhaupt erkannt wurde. Das sehen Sie nur im Hostsystem.

Pico oben

pico unten

Den Pico programmieren

Das wichtigste vorweg: um ein Binary (also das kompilierte Programm) auf den Pico zu bringen, muss i.d.R. die Taste BOOTSEL gedrückt und gehalten, dann der Pico per USB verbunden werden. Es öffnet sich anschließend ein USB-Laufwerk namens „RPI-RP2“, auf das die Programme kopiert werden (z.B. per drag and drop), wenn die Entwicklungsumgebung das nicht automatisch macht. Die Dateien müssen dafür als *.uf2 vorliegen.

BOOTSEL

Das testen wir gleich als erstes. Wir programmieren (bzw. kopieren) das klassische Blink. Auf dieser Webseite können Sie die blink.uf2 herunterladen.

  • BOOTSEL drücken und halten
  • Pico per USB verbinden
  • USB-Laufwerk öffnen (wenn nicht automatisch geschehen)
  • uf2 rüber kopieren

 Der Pico startet dann neu und es sollte die LED auf dem Board blinken.

Programmieren mit MicroPython

Eine Möglichkeit, um MicroPython auf den Raspberry Pi Pico zu bringen, ist die Thonny Python IDE. Diese gibt es für Windows, Linux (auch ARM) und MacOS auf thonny.org. Laden Sie das Programm herunter und installieren Sie es. Unter Linux empfehle ich, das folgende Kommando im Terminal auszuführen:

bash <(wget -O - https://thonny.org/installer-for-linux)

Damit sollte dann die aktuelle Version installiert werden.

Auf dem Raspberry Pi (eine aktuelle Version des Raspberry Pi OS [mit Desktop] wird empfohlen, Download von hier) ist die Thonny Python IDE bereits vorinstalliert. Sie startet standardmäßig im Simple UI Modus, also mit ausgeblendeter Menüleiste. Vergrößern Sie das Fenster nach rechts, bis oben rechts der Hinweis „Wechsle zu Standard Mode“ zu sehen ist. Klicken Sie ihn an und starten die Thonny IDE neu.

Ab hier sollte der Vorgang auf allen Systemen gleich sein. Wählen Sie im Menü „Extras“ den Punkt „Optionen“ (die Bezeichnung hängt von der Sprache der Programmoberfläche ab). Dort finden Sie den Reiter „Interpreter“. Im oberen Auswahlmenü wählen Sie „MicroPython (Raspberry Pi Pico)“ und im unteren Feld dann den COM-Port, an dem der Pico angeschlossen ist (der Name des Ports unterscheidet sich von System zu System). Als Nächstes sollten Sie unten rechts im Fenster den Punkt „Installieren oder aktualisieren Sie die Firmware“ wählen.

Thonny Interpreter

Es sollte dann ein Fenster erscheinen mit dem Titel „Install MicroPython Firmware for Raspberry Pi Pico“. Jetzt trennen Sie die USB-Verbindung zum Pico, drücken und halten die BOOTSEL-Taste, verbinden ihn wieder mit dem PC, warten bis er neu erkannt und eventuell der Treiber neu eingerichtet wurde und wählen dann „Installieren“. Nachdem dieser Vorgang abgeschlossen ist, schließen Sie die Fenster. Rechts unten im Thonny Hauptfenster sollte nun „MicroPython (Raspberry Pi Pico)“ stehen. Im unteren Teil finden Sie die Kommandozeile. Dort erscheint der Hinweis zum MicroPython Interpreter mit Versionsangabe und des Kommando-Prompts >>>.

Eventuell wird unter Raspberry Pi OS die Firmware nicht vollständig aufgespielt. Die können Sie hier herunterladen (Unter Firmware -> Releases auf [.uf2] klicken). Starten Sie den Pico dann mit gedrücktem BOOTSEL in den Download Modus und kopieren die heruntergeladene Datei in den USB-Speicher des Picos. Starten Sie dann die Thonny IDE.

Sollten Sie Probleme haben, den MicroPython Raspberry Pi Pico Interpreter zu starten (erkennbar an dem fehlenden Prompt >>> im unteren Fensterbereich), dann stellen Sie den Interpreter auf „MicroPython Generic“.

Wenn Sie die USB-Verbindung zum Pico trennen und wieder verbinden, müssen Sie wahrscheinlich den Interpreter neu starten. Dafür klicken Sie rechts unten im Fenster auf den Namen des Interpreters und wählen ihn einfach noch einmal aus. Der Eingabeprompt und die Interpreterinformationen sollten dann wieder in der Kommandozeile erscheinen.

Thonny unter Raspi OS

Für den ersten Test kopieren Sie dieses kurze Programm in das Editorfenster und speichern es als main.py:

 from machine import Pin
 from time import sleep
 led = Pin(25, Pin.OUT)
 
 while True:
     led.toggle()
     sleep(1)
     led.toggle()
     sleep(1)

Starten Sie das Programm durch klicken auf das grüne Dreieck im oberen Bereich. Auf dem Pico sollte nun die grüne LED blinken.

Raspberry Pi Pico und die Arduino IDE

Man kann den Pico mittlerweile mit der Arduino IDE programmieren. Laden Sie von dieser Webseite  die aktuelle Version des Programms herunter und führen die Installation durch.

Auf dem Raspberry Pi 4(B): unter Raspberry Pi OS wählen sie die Linux ARM Variante. Führen Sie folgende Befehle im Terminal aus (die Version 1.8.16 kann sich bei Ihnen unterscheiden):

Kommando

Info

cd ~

Homeverzeichnis

cd Downloads

Ins Downloadverzeichnis wechseln

ls

Dateien anzeigen

tar -xf arduino-1.8.16-linuxarm.tar.xz

Datei auspacken

sudo mv arduino-1.8.16 /opt

Arduino IDE in den opt Ordner verschieben

sudo /opt/arduino-1.8.16/install.sh

Installation ausführen

Sie können nun die Arduino IDE über das Startmenü über den Punkt „Entwicklung“ starten.

Unter Linux auf dem PC müssen Sie eventuell noch ein Skript ausführen, wenn der Upload zum Pico nicht gelingen sollte. Zu finden (die Versionsnummer könnte sich unterscheiden) unter

/home/[BENUTZERNAME]/.arduino15/packages/arduino/hardware/mbed_rp2040/2.5.2/

dort führen Sie die post_install.sh aus:

sudo ./post_install.sh

Der Installationsablauf des Pico Core ist der gleiche, wie für die ESPs. Man fügt diese Zeile

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

in die Voreinstellungen als zusätzliche Boardverwalter-URL ein:

Zusätzliche Boardverwalter URL

Danach öffnen Sie den Boardverwalter unter Werkzeuge -> Board -> Boardverwalter und geben „pico“ in das Suchfeld ein. Installieren Sie den Arduino Mbed OS RP2040 Boards Core. Ich empfehle Ihnen, auch den Raspberry Pi Pico/RP2040 Core zu installieren, da dort mehr Beispielsketches mitgeliefert werden:

Core auswählen

Wählen Sie nun unter Werkzeuge -> Board -> Arduino Mbed OS RP2040 Boards oder Raspberry Pi RP2040 Boards den Raspberry Pi Pico aus:

Board Wählen

Öffnen Sie über das Menü Datei -> Beispiele 01.Basics den Blink-Sketch. Wenn der Mikrocontroller mit BOOTSEL in den Download Modus versetzt wird, erscheint eventuell kein Port. Trotzdem sollte das Hochladen funktionieren. In diesem Modus wird das Gerät als USB-Laufwerk angezeigt. Dorthin wird dann die kompilierte Binary (automatisch) kopiert. Sobald dieser Vorgang abgeschlossen ist, wird auch der Port angezeigt.

Unter Raspberry Pi OS wird hingegen schon ein Port sichtbar sein. Sie könnten mal den Sketch „Fade“ laden. Dazu müssen Sie das Board aus dem Core von Earle F. Philhower, III auswählen. Erst dann werden unter Beispiele -> rp2040 die Beispielsketches sichtbar:

Arduino IDE Raspi OS

Starten Sie dann den Kompilier- und Uploadvorgang wie gewohnt. Wenn diese Prozedur abgeschlossen ist, sollte das so aussehen und die Onboard-LED auf dem Pico sollte ein- und ausblenden:

Arduino IDE Raspi OS Fade Sketch

Um den Seriellen Monitor zu verwenden, z.B. für den Beispiel-Sketch „Temperature“, müssen Sie nach dem Upload-Vorgang den Port wechseln:

Arduino IDE Pico Port

Dann können Sie den seriellen Monitor öffnen und sehen die Bildschirmausgabe. In diesem Fall die Werte des internen Temperatursensors des Picos:

Arduino IDE serieller Monitor

Windows7/8

Diese Betriebssysteme unterstützen den RP2040 nicht, d.h. es gibt keinen Treiber, damit der Pico am USB-Port erkannt wird. Allerdings hat jemand diese Lösung gefunden, um es dann doch zum Laufen zu bekommen. Den Ablauf möchte ich hier kurz beschreiben.

  • Hinter dem eben genannten Link verbirgt sich die Anleitung, wie man die dort angegebene Treiberdatei umschreibt. Das habe ich für Sie getan. Laden Sie sich die Datei pico-serial.inf
  • Schließen Sie den Pico an Ihren PC an (ohne BOOTSEL)
  • Schaltfläche Start wählen und in die Suche „devmgmt.msc“ eingeben und mit Enter bestätigen
  • Im sich dann öffnenden Gerätemanager sollte unter „andere Geräte“ ein Punkt mit gelbem Ausrufezeichen erscheinen namens „Board CDC“
  • Rechte Maustaste auf Board CDC und „Treibersoftware aktualisieren…“ wählen
  • „Auf dem Computer nach Treibersoftware suchen“ wählen
  • „Durchsuchen…“ anklicken und die heruntergeladene pico-serial.inf auswählen dann auf weiter
  • Wenn der Hinweis „Der Herausgeber der Treibersoftware konnte nicht überprüft werden.“ erscheint, dann „Diese Treibersoftware trotzdem installieren“ auswählen
  • War das erfolgreich, heißt das Gerät nun Pi Pico Serial Port und erhält einen COM-Port zugewiesen

fehlender Treiber unter Win7

Pico mit Treiber

Ich hatte anfangs einige Probleme. Nachdem ich den Pico unter Linux mit der Arduino IDE programmiert hatte, lief es dann auch unter Windows 7. Der Name des Ports hieß dann im Gerätemanager allerdings ArduinoPico oder auch Raspberry Pi Pico. Wenn der erscheint, können Sie wieder mit der rechten Maustaste darauf klicken und den Treiber aktualisieren. Wählen Sie dann „Aus einer Liste von Gerätetreibern auf dem Computern auswählen“. Scrollen Sie links unter Hersteller zu „Atmel, Inc.“ und wählen rechts den Pi Pico Serial Port. Als Beispielsketch können Sie dann in der Arduino IDE wieder „Temperature“ wählen, oder einfach dieses einfach Programm:

  void setup() {
    Serial.begin(115200);
  }
 
  void loop() {
    Serial.println("Hello World");
    delay(1000);
  }

Nach dem Upload sollte als Port der gleiche Name wie im Gerätemanager erscheinen. Wenn Sie den seriellen Monitor öffnen, sollte das berühmte „Hello World“ erscheinen. Die Nutzung von Windows 7 oder 8 ist nicht so einfach umzusetzen. Mit ein bisschen Bastelei aber möglich.

Sollte nach dem Kompilieren der Uploadvorgang gar nicht funktionieren, hilft dieser Workaround:

Aktivieren Sie in den Voreinstellungen der Arduino IDE den Punkt „Ausführliche Ausgabe während Kompilieren“. Nach dem Kompilieren des Blink-Sketches im unteren Fenster nach dem Verzeichnis zur .uf2-Datei Ausschau halten. Bei mir ist es:

C:\users\[BENUTZERNAME]\AppData\Local\Temp\arduino_build_764914\Blink.ino.uf2

Der Ordner AppData ist versteckt. Über den Punkt „Organisieren“ wählen Sie „Ordner- und Suchoptionen“. Im sich öffnenden Fenster wählen Sie oben den Reiter „Ansicht“ und Scrollen in der Auswahl nach unten bis zum Punkt „Versteckte Dateien und Ordner“. Dort können Sie „Ausgeblendete Dateien, Ordner und Laufwerke anzeigen“.

Starten Sie den Pico mit BOOTSEL in den Downloadmodus und kopieren die Blink.ino.uf2 auf das USB-Laufwerk. Die Onboard-LED des Pico sollte nun blinken.

Weitere Programmiermöglichkeiten

Auf dieser Webseite zeigt der User Shabaz sehr ausführlich, wie man den Pico unter Windows in C/C++ mit Visual Studio Code programmieren und CMake kompilieren kann. Der Getting Started Guide für C/C++ SDK und MicroPython SDK von raspberrypi.com sind ebenfalls sehr ausführliche Dokumentationen. Als Programmierumgebung können Sie auch Eclipse verwenden. Das gehört dann aber in den Bereich der professionellen Programmierung, ist deutlich aufwendiger einzurichten und ist nicht mehr einfach schnell gebastelt.

Fazit

Mit der Thonny IDE können Sie den Pico mit Python relativ schnell in Betrieb nehmen und das auf verschiedenen Systemen. Die Unterstützung der Arduino IDE ist noch relativ neu, funktioniert allerdings schon recht gut. Wenn Sie diese Umgebung gewohnt sind, können Sie damit den Pico wie einen ESP oder ATmega328 kompatiblen Mikrocontroller in C/C++ programmieren. Beide Sprachen sind damit so gut wie abgedeckt.

Ich wünsche gutes Gelingen!

Projets pour les débutantsTarte aux framboises

4 commentaires

Andreas Wolter

Andreas Wolter

danke für den Hinweis. Es ist natürlich RP2040 und wurde korrigiert.
Die Info zu der englischsprachigen Variante gebe ich weiter, damit sich jemand darum kümmert.

Danke für die weiterführenden Links. Ich habe auch sehr viel auf Herstellerseiten und in Foren recherchiert, um es hier gesammelt darzustellen. Es kann trotzdem nicht schaden, sich andere Quellen anzusehen.

Grüße,
Andreas Wolter

Peter

Peter

Schoene Intro, aber mit einem Verwirrpunkt.

Mich hat schon der diesmonatige RP2041 verwirrt (wirebonded-RAM-on-top-ueber-einem-fertigen quadcore-ARM im rpi zero 2), aber gibt’s wirklich auch noch einen RP2042?

Sollte das im Artikel nicht eher der RP2040 sein – restlicher Text und Abbildungen passen zum Original-Pico…

cu
Peter

tokabln

tokabln

Vielleicht für den Einen oder Anderen von Interesse, die nachfolgenden Links führen zum Forum des:
“Vereins zum Erhalt klassicher Computer e.V.”
dessen Mitglieder beschäftigen sich auch durchaus mit aktuellen Themen, wie z.B. der User “guidol”

Hier zwei Beispiele zum Raspberry Pico…

MMBasic auf dem Raspberrry Pico
https://forum.classic-computing.de/forum/index.php?thread/25781-picomite-mmbasic-auf-dem-raspberry-pi-pico/&postID=328025&highlight=picomite#post328025

RunCPM auf dem Raspberry Pico
https://forum.classic-computing.de/forum/index.php?thread/25805-runcpm-auf-dem-raspberry-pi-pico/&postID=328121#post328121

Hugh

Hugh

Hallo Andreas, die Englische Version deine Pico Raspberry blog kommt leider sehr “Denglish” vor😎. Da könnte ich dir vielleicht behilflich sein – Profi Übersetzer bin ich nicht, aber immerhin ein “native speaker”. Sag ’s mir einfach ?
Grüße, Hugh

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Messages de blogs recommandés

  1. Installez maintenant ESP32 via l'administrateur de la carte
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA-Over the Air-ESP Programmation par WiFi