Die Raspberry Pi Foundation hat ein neues Produkt angekündigt und auch gleich zum Kauf zur Verfügung gestellt. Dabei handelt es sich nicht etwa um einen altbekannten Raspberry Pi in neuer Ausführung, sondern um einen kleinen Mikrocontroller. Dieser trägt den Namen "Pico" und lässt sich eher mit einem Arduino Nano oder ESP32 vergleichen als mit einem altbekannten Raspberry Pi 1, 2, 3, 4 oder Zero.
Der „Pico“ ist mit einem RP2040-Chip der Raspberry Pi Foundation ausgestattet, hat in etwa das Format eines Arduino-Nano, lässt dich per MicroPython, C und Visual Studio Code programmieren und taktet als 32-Bit Dual-Core Cpu (Cortex-M0+) mit 133 MHz. Wer ein Linux Betriebssystem auf dem Pico erwartet, der wird bitter enttäuscht. Als Mikrocontroller kann der Pico als Ein-/Ausgabegerät für beispielsweise Sensoren dienen und Hausautomationen ermöglichen. WLAN oder Bluetooth sind NICHT mit an Bord.
Um einen Low-Power Betrieb für etwaige Projekte zu ermöglichen, verfügt der Pico über 256 KByte SRAM (Arduino Nano 2KByte) unterteilt in mehrere Bänke, damit die beiden Controller den Arbeitsspeicher parallel nutzen können. Weiterhin ist die angesprochene Cortex-M0+ CPU verbaut, welche auf 133 MHz taktet. Ein 2 MByte QSPI-Flash dient zur Speicherung des Programmcodes (Arduino Nano besitzt 32KByte Programmspeicher; ~30KByte nutzbar).
Zur Programmierung des Pico in C stellt die Raspberry Pi Foundation eine Toolchain bereit. Darüber hinaus lassen sich alternativ ebenfalls Programme mit MicroPython oder Microsoft Visual Studio Code schreiben. Das Interessante ist, dass theoretisch keine besonderen Programme für das Beschreiben des Speichers nötig sind (Treiber und Compiler mal ausgenommen). Per Drag-and-drop lässt sich der Pico (vorausgesetzt richtig eingerichtet) wie ein USB-Speicher beschreiben.
Ein weiterer großer Vorteil ist der Dual-Core Prozessor. Auch wenn 133 MHz pro Kern in erster Instanz nach recht wenig klingen -> bedenkt, dass wir hier zwei Kerne haben und theoretisch dazu in der Lage wären eine Form von Multithreading zu betreiben.
Beispiel: Ich hatte vor kurzem ein kleines Gerät mit einem Arduino Uno R3 gebastelt. Dieses ließ eine 8x8-Dot Matrix in zufälligen Mustern aufleuchten. Parallel dazu habe ich einen Drehknopf eingebaut. In den Momenten, in denen ich den Drehknopf drehte, hörte die Dot Matrix für wenige hundertstel Sekunden auf sich zu verändern. Mit Multithreading wäre dies nicht passiert. Für mich war das in diesem Anwendungsfall kein großes Problem, aber es mag viele andere kritische Anwendungsfälle geben. Beispielsweise wenn der Pico als "Hirn" einer Drohe dient und auch nur für 50 Millisekunden blockiert ist, um auf Umwelteinflüsse oder Eingaben zu reagieren.
Preislich liegt der Pico aktuell bei 3-4€ und ist damit noch einmal ein wenig unter dem Zero angesiedelt. Der Raspberry Pi Zero bietet dafür allerdings auch einen deutlich größeren Funktionsumfang und bringt mehr Möglichkeiten mit sich. Vorausgesetzt man möchte sich mit einem kompletten Betriebssystem auf dem Zero auseinandersetzen und möchte den höheren Stromverbrauch in Kauf nehmen (etwa 120mAh im Idle gegenüber max. 91mAh unter Last).
Specs
- Dual-core Arm Cortex-M0+ @ 133 MHz
- 264KB RAM
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA controller
- Interpolator and integer divider peripherals
- 30 GPIO pins, 4 of which can be used as analogue inputs
- 2 × UARTs, 2 × SPI controllers, and 2 × I2C controllers
- 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Raspberry Pi Programmable I/O (PIO) state machines
- USB mass-storage boot mode with UF2 support, for drag-and-drop programming
Derivate und Heads
Interessant wird der Pico gegenüber bspw. einem Arduino Nano erst dann, wenn man in Betracht zieht, dass der Pico über mehr Speicher verfügt und es in Zukunft einige vorgefertigte Heads geben wird, die das Meiste aus dem Controller herausholen. Dies ist wohl vor allen Dingen durch den Bekanntheitsgrad der beliebten "großen Brüder" zu erklären.
Aufbauend auf der relativ abgespeckten "originalen" Hardware des Pico gibt es bereits jetzt mehrere Derivate, welche bspw. mehr Programmspeicher oder auch WLAN und Bluetooth hinzufügen. Durch diese "Erweiterungen" wird der "Pico" dann auch eher ein Konkurrent für einen ESP32 oder ESP8266, welche ihrerseits bereits WLAN und Bluetooth mitbringen.
- https://www.sparkfun.com/products/17745
- https://www.sparkfun.com/products/17717
- https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/
- https://www.adafruit.com/itsybitsy2040
- https://www.adafruit.com/feather2040
Ich bin gespannt was da noch so alles kommen mag und habe für einen direkten Vergleich zwischen dem Arduino Nano und dem Raspberry Pi Pico direkt mal einen Pico bestellt. Ein Vergleich wird folgen.