Vorstellung und Pinout des Raspberry Pi Pico

Die Raspberry Pi Foundation, die sich bisher nur durch die günstigen und beliebten Raspberry Pi-Einplatinencomputer hervor getan hat, auf denen meist ein komplettes Linux-Betriebssystem läuft, hat sich jetzt auch in die Sphären der "echten" Mikrocontroller vorgewagt.

Unbestritten haben die Raspberry Pis ihre Daseins-Berechtigung. Ob als kleine Server, etwa für den 3D-Druck als Octoprint-Server, als File-Server/NAS, als DNS-Server mit Pi-Hole oder als Homecomputer und Spielkonsolen-Emulator mit Retropie. Das sind richtige Computer, die einiges an Rechenpower mitbringen und auch ein paar Watt an Strom verbrauchen.

Das Einsatzgebiet von Mikrocontrollern wie dem Arduino, STM32 oder der ESP8266 oder ESP32 hingegen ist ein anderes. Hier kommt es darauf an, möglichst günstig zu sein und möglichst wenig Strom zu verbrauchen. Die Rechenpower steht erst einmal im Hintergrund. Und wenn sie gegeben ist, so muss man sie drosseln können, damit der Stromverbrauch heruntergeht.

In diesem Beitrag werde ich auch darauf eingehe, ob der Raspberry Pi Pico den Anforderungen an einem Mikrocontroller gerecht wird und wie er sich gegenüber der Konkurrenz, die sich schon auf dem Markt etabliert hat, schlägt. Füllt der Raspberry Pi Pico eine Lücke? Hat er einen Mehrwert gegenüber den anderen Kandidaten?

Doch schauen wir uns erstmal an, was wir für um die 4 Euro (Stand Ende 2021) bekommen:



Die Platine sieht so ähnlich aus wie die des Arduino Nano. In der Mitte auf der Vorderseite sitzt prominent der Mikrocontroller-Chip ansich, ein 32 bit RP2040 Microcontroller mit Dual-core Arm Cortex M0+ Kern. Meiner ist mit "RP2-B2 21/24, P65W87 00" gelabelt. "RP2-B2" wird die Bezeichnung für den RP2040 sein und "21/24" wird für die Herstellungswoche stehen: 24. Woche in 2021. In das Gehäuse ist eine Himbeere, das Raspberry - Logo fein eingraviert. Das macht Fälschungen ein wenig schwieriger, was gut ist.

Die Programmierbuchse ist wie bei vielen anderen Mikrocontrollern Mikro-USB. Auch einen BootSel-Taster haben einige, um zwischen Programmier und Run-Modus unterscheiden zu können. Der Pico verfügt ähnlich wie die STM32 Bluepill über einen separaten Debug-Bus auf der gegenüberliegenden Seite. Über die langen Kanten sind die GPIO-Pins verfügbar, die auf der Rückseite vorbildlich beschriftet sind. Und auch sonst merkt man hier, dass man hier eine Platine von sehr guter Qualität hat, ohne Fehler in den Beschriftungen und mit gerade und gut verlöteten elektronischen Bausteinen. Ganz im Gegensatz zu manchen chinesischen Billig-Mikrocontrollern, die schon mal gerne schief gelötet sind und Rechtschreibfehler in den Beschriftungen haben. Da merkt man beim Pico schon, dass er in Europa (Raspberry ist britisch) designt und ich glaube derzeit in Japan produziert wird.

Die Längsseite sind halbkreisförmig ausgeschnitten und die Unterseite des Picos ist leer, so dass man die Platine auch direkt auf eine größere Platine löten könnte, auf der sich dann noch weitere Komponenten wie Sensoren und Anzeigen befindet können. Aber natürlich kann man auch einfach Header anlöten und dann hat der Pico denselben Pinabstand wie ein Arduino Nano und kann so genauso gut auf Breadboards verwenden werden. Die Pfostenleiste wurde bei meinem Pico allerdings nicht mitgeliefert. Beim STM32, Arduino Nano und ESP32 habe ich bei den China-Bestellungen sonst eigentlich immer welche mitbekommen. Schade, wenn man keine zuhause hat und wegen einem Cent-Artikel nicht gleich loslegen kann.

Hier ein Größenvergleich zu anderen, aktuell beliebten Mikrocontrollern:



Von der Größe her kommt der Pico auf die einer STM32 Bluepill. Der Arduino Nano ist hingegen noch ein bisschen kleiner. Aber der Pico hat auch mehr Pins und die müssen auch irgendwo herausgeführt werden. Darum braucht er diese Größe. Trotzdem hat man noch Platz auf dem Pico gehabt für vier Montagelöcher, wo man ihn zum Beispiel im Gehäuse festschrauben kann.

Bestückt man den Debug-Port und die Header nicht, sondern lötet direkt an die Pins an, ist der Pico sehr schön flach. Die höchsten Erhebungen sind Mikro-USB-Port und Bootsel-Taster. So kommt der Pico auf eine Gesamthöhe von nur 3.7mm, inklusive Platine.

Pinout des Raspberrry Pi Pico


Aber schauen wir uns die GPIO-Pins doch ein wenig genauer an. Ein Klick auf das Foto rechts vergrößert noch einmal die Ansicht zur besseren Lesbarkeit. Oder ihr downloadet euch gleich das PDF, dann könnt ihr beliebig hineinzommen.

Und wenn ihr euch das PDF ausdruckt, habt ihr das Pinout immer gleich zur Hand. Die Rückseite ist zwar schön beschriftet, aber das nützt euch wenig, wenn der Pico im Breadboard steckt und ihr nichts lesen könnt. Und immer wieder rausziehen und reinstecken verbietet sich auch, sobald Jumperkabel angesteckt sind.

Der Pico ist komplett auf 3.3 Volt ausgelegt, alte Arduino 5 Volt Komponenten fallen also flach, weil sie nicht mit Strom versorgt werden können. Und außerdem sollte man auch nie 5V an einen der GPIO-Pins anlegen. Das kann gut gehen, muss aber nicht; und kann auch den Pico zerstören, zumindest setzt es seine Lebenszeit herunter. Wenn man unbedingt 5V-Komponenten benutzen muss, weil es keine 3.3V Alternative ist, sollte man Logiklevel-Konverter zwischenschalten, die die Spannungen anpassen, was allerdings zusätzlichen Aufwand und Kosten bedeutet.

An GPIO 25 steht die interne LED zur Verfügung und kann angesteuert werden.

Vergleich Raspberry Pi Pico vs. STM32-Blue Pill vs. ESP8266-Wemos D1 mini

Der Vorteil des STM32 waren seine vielen Leitungen und seine batteriegebufferte Echtzeituhr direkt on Board. Der Vorteil des ESP8266 Boards, der gleich ins Auge sticht, ist natürlich das WLAN.

Im Detail schlagen sich die Kontrahenten wie folgt:

Blue Pill mit STM32 Raspberry Pi Pico D1 Mini mit ESP8266
  • 32 bit Microcontroller
  • 3.3V Architektur, 5 V tolerant an einigen Pins
  • 72 Mhz Takt
  • 64 bzw. 128 KB Flash Programmspeicher
  • 20 KB RAM Variablenspeicher
  • 8x 12 Bit (0...4096) Analog-Eingänge auf dem Board zugänglich
  • 24x Digital-Ein-/Ausgänge auf dem Board zugänglich
  • Power-LED und programmierbare LED onBoard
  • Programmierung genauer Timings möglich
  • unterstützt I2C, SPI, UART, PWM, GPIO, CAN, USB 2.0
  • Stromverbrauch: typ. 2 bis 3.4 µA im Standby, 14 bis 24 µA im Stop-Mode, 14.4 mA im Sleep Mode, 36 mA im Run-Mode; max. 3 bis 30 mA im Sleep Mode, max. 6.8 bis 50 mA im Run-Mode
  • Debug mode: Serial wire debug (SWD) & JTAG interfaces
  • Batterie-gepufferte Echtzeituhr (kalibrierbar) on Board
  • VBatt-Batteriepufferung von RTC und Registern
  • Preis (Ende 2021) aus CN: derzeit ca. 7-9 US$, normalerweise aber nur ca. 2 US$ (inkl. Versand)
  • 32 bit RP2040 Microcontroller (Dual-core Arm Cortex M0+)
  • 3.3V Architektur, nicht 5V tolerant
  • bis 133 Mhz Takt
  • 2 MB Flash Programmspeicher
  • 264 KB SRAM Variablenspeicher
  • 3x 12 Bit (0...4096) Analog-Eingänge auf dem Board zugänglich
  • 26x Digital-Ein-/Ausgänge auf dem Board zugänglich
  • programmierbare LED (GPIO 25) onBoard
  • unterstützt 2x I2C, 2x SPI, 2x UART, 16x PWM, GPIO, USB 1.1 (Host und Client)
  • RTC-Chip (Real Time Clock, ohne Batteriepufferung) und Temperatursensor on board
  • Stromverbrauch: 0.8 mA im Dormant-Mode, 1.3 mA im Sleep-Mode, Vollast bis 100 mA
  • direktes Löten auf Trägerplatine möglich
  • 3-Pin SWD (Serial Wire Debug) Interface
  • Preis (Ende 2021) aus DE (zzgl. Versand): 3.90 €
  • 32 bit Microcontroller
  • 3.3V Architektur, nicht 5V tolerant
  • 80-160 Mhz Takt
  • 4 MB Flash Programmspeicher
  • 81 KB RAM Variablenspeicher
  • 1x 10 Bit (0...1024) eher ungenauer (bis ±20%) Analog-Eingang
  • 11x Digital-Ein-/Ausgänge auf dem Board zugänglich
  • programmierbare LED (GPIO 2) onBoard
  • Programmierung genauer Timings ggf. schwierig, da etwa WLAN-Unterroutinen vom µC zwischenverarbeitet werden
  • unterstützt I2C, SPI, UART, SDIO, IRDA, PWM, GPIO, TCP/IP
  • Stromverbrauch: 0.01/0.9/15 mA im Deep/Light/Modem Sleep Power-Mode, < 1 mW im Standy-Mode, WLAN: 56/140 mA (RX/TX) bei 802.11g
  • WLAN 802.11 b/g/n 2.4 GHz WPA/WPA2 mit SmartLink Android/IOS, FCC zertifiziert
  • Preis (Ende 2021) aus DE: 4.30 € (zzgl. Versand), aus CN: 3.40 US$ (inkl. Versand)

Vom Preis her ist der Pico okay für das, was er leistet. Man muss ihm auch seine sehr gute Verarbeitungsqualität zur Gute halten. Allerdings kostet ein ESP8266 auch nicht viel mehr und der bringt gleich WLAN mit.

Vom Stromverbrauch her ist der Pico schlechter als ESP8266 und sehr viel schlechter als die STM32 Bluepill.

Von der Maximal-Geschwindigkeit her liegt er mit 133 MHz zwischen STM32 (72 MHz) und ESP8266 (160 MHz). Für normale Mikrocontroller-Anwendungen sind alle drei schnell genug.

Der Speicher des Pico beträgt 264 KB für RAM und 2 MB für Flash. Hier kann der Pico mit RAM punkten, hat er doch mehr als STM32 (20 KB) und auch mehr als der ESP8266 (81 KB). Mehr hat erst der ESP32 mit 320 KB.
Und auch mit 2 MB Flash hat der Pico genug Flash-Speicher für größere Programme, die vielleicht nicht mehr auf die Bluepill (128 KB) passen würden. Mit den 4 MB Flash-Speicher des ESP8266 kann er allerdings nicht mithalten.

Welche Lücke schließt der Pico?

Was hat der Pico jetzt, was die anderen nicht haben? Welche Lücke schließt er? Nun, er hat sehr viele GPIO-Ports, die alle sehr universell benutzt werden können. Allerdings die meisten digital und nur 3 analog. Es sind aber nicht viel mehr als die günstigere STM32 Blue Pill zu bieten hätte. Die angepriesene Echtzeituhr nutzt nicht viel, wenn kein Anschluss für die Puffer-Batterie vorhanden ist, wie sie der STM32 hat.

Aber der Pico hat viel RAM. Und er hat eine gute Verarbeitungsqualität. Und man bekommt ihn bei deutschen Händlern zu einem guten Preis, vergleicht man die Preise, die man in Deutschland für Mikrocontroller zahlen muss. Außerdem hat er bereits schon einen Temperatursensor an Bord. Den habe ich allerdings noch nicht ausprobiert. Ein Sensor, der auf dem Board verbaut ist, misst auch immer die Gehäuse-Innentemperatur. Mehr Sinn macht natürlich ein Außersensor, wenn man die Zimmertemperatur messen will.

Und dann soll mit dem Pico auch die USB-Schnittstelle einfach ansprechbar sein, man also mit dem Pico Tastaturen, Mäuse und andere Eingabegeräte emulieren können. Das kann ich zwar auch mit einem Digispark realisieren, wie hier geschehen, aber da ist nur ein AT Tiny 85 drauf mit ganz wenig Pins und sehr wenig Speicherplatz. Hier könnte der Pico glänzen. Das muss ich mal in einem zukünftigen Projekt näher untersuchen.

Der Pico soll ganz einfach zu programmieren sein. Und ich glaube, damit fällt oder steht auch der Erfolg des Pico. Ist er komfortabel, schnell und unkompliziert zu programmieren, könnte er ein Liebling werden. Allerdings liegt hier die Messlatte mit der Arduino IDE schon recht hoch. Und wenn ich überlege, wieviele Bibliotheken und Beispielprogramme es für den Arduino gibt, dann muss sich der Pico schon sehr anstrengen, dass zu toppen. Die Arduino-Community ist riesig. Die des Raspberry Pi zwar auch, aber werden sich hier viele mit dem abgespeckten Pico abgeben? Für wenig mehr gibt es ja auch schon einen Raspberry Pi Zero, der viel mehr Wumms hat (aber auch viel mehr Strom verbraucht).

Der Pico soll sich auch in C / C++ programmieren lassen, aber hier eine Entwicklungsumgebung zu installieren ist wohl nicht ganz so einfach unter Windows, wie man so liest. Die Programmierung mit Micro Python hingegen soll einfacher sein.

Um herauszufinden, wie einfach oder kompliziert die Programmierung mit dem Pico wirklich ist, werde ich im nächsten Projekt einmal ein kleines Programm für den Pico schreiben, es hochladen und dann mit der Arduino IDE in Sachen Komfortabilität und Einfachheit vergleichen.