Im Januar 2021 veröffentlich die Raspberry Pi Fundation nicht ganz so wie gewünscht den Raspberry Pi Pico. Erste Informationen sind damals schon recht früh durchgesickert und die Frage was der Pico den nun genau werde soll, wurde heiß diskutiert. Mittlerweile sind knapp 1,5 Jahren vergangen und wir wissen, dass der Raspberry Pi Pico in die Kerbe von Arduino, ESP und Co. schlagen sollte. Mit den ersten offiziellen Informationen und dem Raspberry Pi Pico war nicht ganz klar, wo das neuste Produkt nun genau einzuordnen ist, wie es programmiert werden kann und was technisch wirklich machbar ist.
In diesem Blog will ich dir etwas über den Raspberry Pi Pico und den jetzt kommenden Raspberry Pi Pico W erzählen und warum ich persönlich denke, dass der Raspberry Pi Pico W der wahrscheinlich bessere MicroController der Raspberry Pi Fundation ist.
Jetzt den neuen Pico W bei BerryBase bestellen!
WARENKORBBestandsaufnahme, der Raspberry Pi Pico
Wie in der Einleitung schon erwähnt, ist der Raspberry Pi Pico, im Folgenden einfach nur noch Pico genannt, im Januar 2021 der Öffentlichkeit vorgestellt worden siehe Abbildung 1.
Durch den 32-Bit RP2040-MicroController der Raspberry Pi Fundation, der auf einem Dual-Core ARM Coretex-M0+-Design basiert, wollte man einen kostengünstigen, hoch verfügbaren, einfach verwendbaren und für zeitkritische Applikationen zuverlässigen MicroController bieten. Durch die insgesamt 30 GPIOs sollten genug Pins vorhanden sein, damit der (Hobby-)Programmiere seine Applikationen zum Laufen bekommt. Diverse Kommunikationsschnittstellen, 16 PWM-Ios und ein 4-Kanal 12-Bit Analog-Digital-Wandler sollten das Herz des Pico-Programmierers höherschlagen lassen. Gerade einmal 4,10 Euro kostet der Pico bei berrybase.de im Shop. Zum Vergleich, der Arduino Uno kostet knapp 19 Euro, ist aber deutlich größer und der Arduino Nano kostet zwar nur 6,90 Euro, hat dafür aber weniger GPIOs. Beide genannten Arduinos haben zudem den „Nachteil“, dass beide einen ATmega-Controller verwenden.
Programmiert werden muss der Pico mit MicroPython oder durch aufspielen von passenden *.-elf-Dateien auch CircuitPython. Letzteres ist ein sogenannter Fork von MicroPython, den Adafruit pflegt und mit reichlich Funktionen erweitert hat. Unter der Haube steckt bei beiden aber Python. Das war vielleicht schon der erste Punkt, warum der Pico bei vielen Bestandsprojekten nicht so den Anklang gefunden haben mag, ich kann mich aber auch täuschen. Zwar gibt es mittlerweile Mittel und Wege auch über die Arduino IDE oder Visual Studio Code mit PlatformIO den Pico zu programmieren. Aus meinen bisherigen Erfahrungen läuft der Pico aber tatsächlich nur richtig gut mit Micro- bzw. CircuitPython.
Ein großer Pluspunkt beim Pico ist in meinen Augen der RP2040. Mit zwei separaten Kernen, wie es z.B. auch beim ESP32 der Fall ist, kann man herrlich Aufgaben teilen und kann fast spüren, wie schnell der Pico arbeitet. Das größte Problem der Arduino-Familie besteht allerdings auch beim Pico. Es gibt kein Bluetooth oder WiFi! Bei beiden Controllerfamilien kann man das, mehr oder weniger, nachrüsten. Ich empfand es persönlich aber als sehr Schade, dass der Pico eben keins dieser Technologien beherrscht. Projekte, die darauf angewiesen sind, konnten so nicht portiert werden oder aber mussten mit weiteren Modulen mühsam neu aufgebaut werden. Problem ist dabei, dass GPIOs für die Nutzung dieser Shields blockiert wurden, die ggf. notwendig für das eigene Projekt sind.
Das war auch für mich bisher der Grund, warum der Pico weniger bei meinen Projekten zum Einsatz kommt.
Der Raspberry Pi Pico W
Mit dem 30. Juni 2022 stellte die Raspberry Pi Fundation die nächste Generation vom Pico vor, den „Raspberry Pi Pico W“, im folgenden nur Pico W genannt. Mit der kleinen Namenserweiterung „W“ scheint man in meinen Augen auf die Bedürfnisse und Wünsche der Community und Maker eingegangen zu sein ein Bluetooth- und WLAN-Erweiterung zu integrieren, ohne dabei die ursprünglichen Maße 51,3mm(L) x 21mm(B) X 3,9mm(H) zu verändern. Das hört sich jetzt erst einmal nicht besonders an, die Leistung aber weitere Hardware auf eine schon vorhandene Platine zu integrieren und das Grundlayout nicht zu verändern ist nicht so einfach, wie man denken mag. Schaut man sich mal Abbildung 2 an, so wird deutlich, dass die Hardwaredesigner viel Mühe investiert haben.
Durch die Bluetooth- und WLAN-Erweiterung mussten die bisherigen Bauteile auf der Platine enger zusammenrücken und die Leiterbahnen neu orientiert werden. Der bisherige RP2040 ist dabei weiterhin das Herzstück vom Pico W. Wie der erste Pico wird auch der Pico W als Headerless oder mit schon angelöteter Stiftleiste ausgeliefert. Wie bereits oben erwähnt, lässt die Vorabspezifikation darauf schließen, dass das bisherige Pinout sich vom ersten Raspberry Pi Pico nicht unterscheiden wird. Das hilft den bisherigen (Hobby-)Programmierern, Ihre Projekte einfach zu erweitern. Mit gerade einmal knapp 7 Euro, laut Vorabdokument, ist der Pico W preislich auf dem Level eines ESP32 NodeMCU Developmentboard. Da das ESP32 NodeMCU Developmentboard mit den Maßen 50mm(L) X 20mm(B) × 8 mm(H) zwar etwas kleiner, aber deutlich höher ist, muss der (Hobby-)Entwickler Gedanken über den geeigneten für sein Projekt machen MicroController machen.
Zahlen bitte, der direkte MicroController-Vergleich
Ich habe in diesem Blog bisher viele Daten angesprochen, einen direkten Vergleich bisher nur indirekt präsentiert. Das möchte ich gerne in diesem Kapitel nachholen und die Raspberry Pi Picos mit den Alternativen vergleichen. Den Anfang soll der erste Raspberry Pi Pico mit dem Arduino Uno bzw. Nano machen, siehe Tabelle 1. Diese passen in meinen Augen am besten für den Vergleich, da alle über keine drahtlose Kommunikation verfügen.
Raspberry Pi Pico | Arduino Uno Rev 3 | Arduino Nano | |
Controller | RP2040 | ATmega328P | ATmega328 |
Taktfrequenz | 133MHz | 16MHz | 16MHz |
Cores | 2 | 1 | 1 |
SRAM | 264KB | 2KB | 2KB |
Betriebsspannung | 3,3V | 5V | 5V |
GPIOs* | 30 | 20 | 22 |
Maße (LxB) mm | 51,3 x 21 | 53,4 x 68,6 | 69 x 53 |
USB-Anschluss | Micro-USB | USB-A | Micro-USB |
Programmiersprache | Micro- CircuitPython | Arduino-Sketch | Arduino-Sketch |
WiFi | Nein, nur über Shields | Nein, nur über Shields | Nein, nur über Shields |
Bluetooth | Nein, nur über Shields | Nein, nur über Shields | Nein, nur über Shields |
Preis | Um die 4-5 Euro | Um die 20 Euro | Um die 14 Euro |
*)Analoge und digitale Pins zusammengefasst
Man sieht an der Stelle direkt, dass Arduino Uno und Nano im Grunde keine Chance gegen den Pico haben. Einzig bei der Programmiersprache ist in meinen Augen der Arduino vorne, da Arduino-Sketch bei den meisten (Hobby-)Entwicklern schon zur festen Programmiersprache gehört. Entwickler, die mit Python Erfahrung haben, werde auch schnell mit dem Pico Projekte realisieren können. In Sachen Speicher ist der Pico ebenfalls nicht zu schlagen, es fehlen aber die drahtlose Kommunikation.
Nun wollen wir mal den Pico W mit gängigen MicroControllern im gleichen Segment vergleichen, siehe Tabelle 2. Hier dient der ESP32 NodeMCU und der D1 Mini 8266 als Vergleichsplattform.
Raspberry Pi Pico W | ESP32 NodeMCU | D1 Mini ESP8266 | |
---|---|---|---|
Controller | RP2040 | ESP-WROOM-32 | 32-bit Xtensa L106 |
Cores | 2 | 2 | 1 |
SRAM | 264KB | 520KB | 96kB |
Betriebsspannung | 3,3V | 3,3V | 3,3V |
GPIOs* | 30 | 30 | 10 |
Maße (LxB) mm | 51,3 x 21 | 25.4 x 48.3 | 34.2 x 25.6 |
USB-Anschluss | Micro-USB | Micro-USB | Micro-USB |
Programmiersprache | Micro- CircuitPython | Micro- / CircuitPython Arduino Sketch | Micro- / CircuitPython Arduino Sketch |
WiFi | Ja | Ja | Ja |
Bluetooth | Ja* | Ja | Ja |
Preis | Knapp 7 Euro | Knapp 7 Euro | Knapp 5 Euro |
*) Wird laut dem aktuellen Release-Dokument nicht verfügbar sein, sollte softwareseitig später nachgeliefert werden.
Vom Prinzip spielt der Pico W mit der Bluetooth- und WLAN-Erweiterung nun bei den „großen“ MicroControllern mit. Ich finde es aber schade, dass nicht gleich zu Beginn Bluetooth verwendbar ist. Durch den IEEE 802.11 b/g/n – Standard sollte sich der Pico W mit dem Router, Repeater oder ggf. Handyhotspot mühelos verbinden können. Mit dem nachgelieferten Bluetooth 5.2 sollten später Projekte auch mit diesem Standard funktionieren.
Anwendungsbeispiele des Raspberry Pi Pico W
Der Raspberry Pi Pico W eröffnet durch seine Wi-Fi- und Bluetooth-Funktionalitäten neue Horizonte für kreative und innovative Projekte. Um die vielseitigen Einsatzmöglichkeiten zu illustrieren, hier einige Anwendungsbeispiele:
1. Smart Home Automation: Der Pico W kann als zentrales Steuerelement für Heimautomatisierungssysteme eingesetzt werden. Mit seiner Fähigkeit, Sensoren und Aktoren über Wi-Fi zu verbinden, könnte er beispielsweise zur Überwachung von Raumtemperaturen und zur automatischen Steuerung von Heizsystemen verwendet werden.
2. Wearable Devices: Aufgrund seiner kompakten Größe eignet sich der Pico W hervorragend für tragbare Geräte. Entwickler könnten smarte Armbänder erstellen, die Fitnessdaten erfassen und via Bluetooth an eine Smartphone-App senden.
3. IoT-Projekte: Der Pico W kann als günstiger IoT-Knotenpunkt fungieren, der Umweltdaten wie Luftqualität oder Lärmbelastung sammelt und diese Informationen an eine Cloud-Plattform zur Analyse weiterleitet.
Zusammenfassung
Die bisherigen Daten vom Raspberry Pi Pico W lassen nur Gutes vermuten. Die Wünsche und Anregungen der Maker scheinen erhört worden zu sein, was die kleine Himbeere nun in der großen Liga mitspielen lässt. Der Speicher vom Pico W reicht aus, um auch größere Projekte zu realisieren. Aktuell hatte ich noch nicht die Möglichkeit einen Raspberry Pi Pico W in den Händen zu halten, um mir die Hardware genauer anzusehen. Da Python mittlerweile eine sehr beliebte Programmiersprache ist, sollte es hier keinerlei Probleme geben. Abzuwarten bleibt, wie die Integration der Bibliotheken verlaufen und wie die Dokumentation geschrieben sein wird. Die ersten Gehversuche mit dem Pico W sollten schnell erledigt sein, fraglich an der Stelle ist, wie die drahtlose Kommunikation funktionieren wird.
Bei anderen MicroControllern gibt bzw. gab es immer mal wieder Probleme mit der drahtlosen Kommunikation oder mit Überhitzung. Ich hoffe persönlich, dass die Raspberry Pi Fundation hier ausgiebig getestet hat, um böse Überraschungen zu vermeiden. Um ehrlich zu sein, werde ich versuchen zum Release einen Raspberry Pi Pico W zu ergattern. Ich möchte gerne den Fortschritt bei der Entwicklung vom Raspberry Pi Pico mit eigenen Augen sehen.
Zwar habe ich kein konkretes Projekt im Kopf, wofür ich den Raspberry Pi Pico W benötigen würde, jedoch will ich Erfahrung mit dem Raspberry Pi Pico W sammeln. Gleichzeitig frischt es auch meine Kenntnisse über Python auf. Sobald ich einen Raspberry Pi Pico W bei mir auf den Tisch habe, werde ich weitere Tests durchführe und (sofern nötig) eine Anleitung für die Inbetriebnahme des Pico W erstellen.
Moin!
merkwürdiger Artikel. Im Vergleich fehlen irgendwie ein paar essentielle Sachen. Wenn man den Pico mit den Arduino-Boards vergleicht kann man die PIO-Funktion des RP2040 wohl kaum unerwähnt lassen, etwas, das einige Anwendungen überhaupt erst möglich macht und so in der Arduino-Welt nicht existiert.
Besonders irritiert mich aber die Aussage, dass der Pico nur mit (Micro-/Circuit-)Python programmierbar wäre. Das Pico-SDK ist geradezu herausragend dokumentiert und lässt sich selbst ohne Platform-IO sehr einfach installieren und einsetzen, wenn man der ausführlichen Anleitung auf der Raspberry Pi Seite folgt. Selbst Debuggen über GDB oder grafisch über VS-Code ist über den SWDIO Port richtig einfach. Dass man den Pico nur in Python programmieren könnte ist jedenfalls absolut nicht korrekt.
Moin!
merkwürdiger Artikel. Im Vergleich fehlen irgendwie ein paar essentielle Sachen. Wenn man den Pico mit den Arduino-Boards vergleicht kann man die PIO-Funktion des RP2040 wohl kaum unerwähnt lassen, etwas, das einige Anwendungen überhaupt erst möglich macht und so in der Arduino-Welt nicht existiert.
Besonders irritiert mich aber die Aussage, dass der Pico nur mit (Micro-/Circuit-)Python programmierbar wäre. Das Pico-SDK ist geradezu herausragend dokumentiert und lässt sich selbst ohne Platform-IO sehr einfach installieren und einsetzen, wenn man der ausführlichen Anleitung auf der Raspberry Pi Seite folgt. Selbst Debuggen über GDB oder grafisch über VS-Code ist über den SWDIO Port richtig einfach. Dass man den Pico nur in Python programmieren könnte ist jedenfalls absolut nicht korrekt.
Hallo Arne,
danke für das Feedback zu meinem Artikel. In der Tat ist der Vergleich zwischen dem Pico (W) und dem Arduino, als ob man Äpfel und Birnen vergleicht. Die PIO-Funktion aber einem Laien auf die schnelle zu erklären, da wird es dann wieder schwierig,
Ich habe nie behauptet, dass der Pico rein mit Micro oder CircuitPython läuft, im Gegenteil, ich schrieb sogar, dass es möglich ist Zwar gibt es mittlerweile Mittel und Wege auch über die Arduino IDE oder Visual Studio Code mit PlatformIO den Pico zu programmieren. Aus meinen bisherigen Erfahrungen läuft der Pico aber tatsächlich nur richtig gut mit Micro- bzw. CircuitPython.
Ich habe mehrere Stunden damit verbracht unter VS Code den Pico zum laufen zu bekommen, trotz langer rechere habe ich aber keine Board-Lib gefunden, die dem Pico richtig zum laufen gebracht hat. Daher schrieb ich auch, aus meiner bisherigen Erfahrung, was nicht heißen muss, dass es doch funktioniert! Solltest du da eine genaue Seite haben, so lass es mich gerne wissen. Ich bin immer gewillt mich privat und für meine Blogs mich weiterzubilden. Tatsächlich hatte ich mit VS Code ein kleines Skript mit zwei einfachen Schleifen programmiert, was in einem Crash endete. Bei zwei einfachen for-loops, die ineinander verschachtelt waren, sollte das kein Problem sein. Ich schätze hier hat der Compiler Mist gebaut, aber nach der langen Suche habe ich dann meine Versuche abgebrochen.
Gruß
Jörn Weise
Hat die Anleitung im offiziellen Pico Getting Started Dokument nicht funktioniert? (https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf)
Ich weiß nicht, welche Board-Lib Du gesucht hast, das SDK bringt ja eigentlich alles mit.
Ich habe für den Internetzugang für den Pico einen ESP-01 verwendet.
Mit dem BSP von Earle F. Philhower III kann der Pico sehr gut in der Arduino IDE programmiert werden. Für den ESP-01 gibt es eine geeignete Library. Das Experimentierboard von Cytron sieht bereits die ESP-01 Erweiterung vor.
Im Septemberheft von Elektor stelle ich auf dieser Basis einen Beitrag mit dem Titel “RP2040-basierte Luftgütemessung” vor.
Den Raspberry Pi Pico W habe ich heute bekommen. Auf die Internet-Konnektivität bin ich sehr gespannt.
Wann sind denn die endlich verfügbar? 🙁