Im Januar 2021 staunte die Maker-Szene üerrascht, als Raspberry Pi sein Pico-Board und samt brandneuen Mikrocontroller RP2040 vorstellte. Ein paar Monate später kündigte auch Arduino mit dem Nano RP2040 Connect ein RP2040-basiertes Board an.

Das kleine Arduino-Board Nano RP2040 Connect bügelt genau das Manko von Raspberry Pi aus, da dessen Pico-Board nicht nicht mit einer Funk-Verbindung ausgestattet wurde, da dies einen höheren Preis zur Folge gehabt hätte. Gleichzeitig war das auch eine verpasste Chance. Aber Arduino hat das Connect-Board mit einem WLAN- und Bluetooth-Funkmodul des Typs u-blox NINA-W102 versehen. Dieses Modul stammt vom selben Hersteller, das beim Arduino Nano 33 BLE eingesetzt wurde.

Neben den WLAN und Bluetooth verfügt das Connect-Board über ein Mikrofon und einen sechsachsigen, intelligenten Bewegungssensor mit KI-Fähigkeiten sowie eine RGB-LED. Geboten werden ferner 22 GPIO-Ports – davon 20 mit PWM-Unterstützung und sechs Analogeingänge (acht, wenn man den I2C-Bus mitzählt). Dies ermöglicht dem Benutzer die einfache Ansteuerung von Relais, Motoren und LEDs sowie das Auslesen von Schaltern und anderen Sensoren.

Der Programmspeicher ist mit 16 MB Flash reichlich bemessen und mehr als genug, um viele Webseiten oder andere Daten zu speichern.
Das Arduino-Board Nano RP2040 Connect ist „Raspberry Pi kompatibel“. Es unterstützt nicht nur das gesamte Software-Ökosystem des RP2040, sondern auch MicroPython. Gleichzeitig unterstützt das Board die Arduino-Programmiersprache, die IDEs v1 und v2 sowie alle dazugehörigen Bibliotheken. Schließlich ist die RP2040-Alternative von Arduino vollständig kompatibel mit der Arduino Cloud und der Arduino IoT Remote Smartphone-App.

WLAN und Bluetooth

Wie schon erwähnt wird WLAN und Bluetooth durch das NINA-W102-Modul von u-blox bereitgestellt (Bild 1). Laut Datenblatt ist dieses Modul ein eigenständiges Multi-Funk-MCU-Modul mit leistungsstarkem Mikrocontroller sowie integrierten HF-Funktionen. Laut u-blox verfügt es über eine offene CPU-Architektur. Demnach ist der Benutzer für die gesamte Software des Moduls zuständig. Im Auslieferungszustand tut es nämlich das: nichts. Im Grunde genommen ist NINA-W102 ein weiteres ESP32-Modul in einer Blechdose mit Antenne.

u-blox NINA-W102
Bild 1: Das Multi-Funk-MCU-Modul NINA-W102 von u-blox
ist eine ESP32-Variante von Espressif (Bild: u-blox).
Die Firmware für das NINA-Modul wurde vom Arduino-Team entwickelt – der Quellcode ist auf GitHub zu finden.

Somit wird klar, dass das Arduino-Board Nano RP2040 Connect viel leistungsfähiger ist, als es zunächst den Anschein hat. Es verfügt nämlich nicht nur über einen RP2040 mit zwei Cortex-M0+-Kernen, sondern auch über einen Dual-Core-ESP32 sowie WLAN und Bluetooth. Alle WLAN- und Bluetooth-Funktionen, die normalerweise auf einem ESP32-Modul ausgeführt werden, laufen auch auf dem NINA-Modul, so dass der RP2040 für andere Aufgaben verwendet werden kann.

Board-Übersicht

Das Blockdiagramm des Connect (Bild 2) zeigt, dass sich die beiden MCUs einen I2C-Bus teilen, an den der Accelerometer (IMU) und die Authentifizierung (auch bekannt als Secure Element) angeschlossen sind, so dass sie von beiden MCUs genutzt werden können. Beide MCUs sind auch über einen gemeinsamen SPI/UART-Bus miteinander verbunden.
Arduino Nano RP2040 Connect block diagram
Bild 2: Überblick über das Arduino-Board Nano RP2040 Connect.

Die RGB-LED des Boards ist mit dem ESP32 (dem NINA-Modul) verbunden, während das Mikrofon mit dem RP2040 verbunden ist. Die Erweiterungsstecker (Bild 3) sind ebenfalls mit dem RP2040 verbunden, mit Ausnahme der Pins A6 und A7, die mit dem ESP32 verbunden sind. Beachten Sie, dass die analogen Pins A4 und A5 für den I2C-Bus reserviert sind. Sie haben Pull-up-Widerstände von 4,7 kΩ und sind mit beiden MCUs verbunden. Dies gilt auch für den QSPI_CSn-Pin, der auf der Platine mit REC bezeichnet ist, im Schaltplan jedoch mit Reset.

Arduino Nano RP2040 Connect pinout
Figure 3: Legend of the Arduino Nano RP2040 Connect's extension connectors (source: arduino.cc).

Die Arduino Nano Familie

Eigentlich scheint das Connect-Board eine Art erweiterte oder verbesserte Version des Arduino Nano 33 IoT zu sein. Auch dieses Board kombiniert einen ARM-Prozessor des Typs Cortex-M0+ mit dem Funkmodul u-blox NINA W102. Der Prozessor SAMD21 ist jedoch nur eine Single-Core-MCU und das Board verfügt nicht über die RGB-LED und das Mikrofon. Außerdem verfügt es über weniger Speicher und ist langsamer.

Softwaremäßig ist das Connect-Board jedoch mit dem Arduino Nano 33 BLE verwandt. Dieses Board hat ebenfalls ein u-blox NINA-Modul, aber eines, das auf einer nRF52840 MCU von Nordic Semiconductor basiert. Außerdem gibt es keine zweite MCU und es verfügt nur über Bluetooth, aber nicht über WLAN.

Zusammen mit dem Nano 33 BLE Sense, dem Connect und dem BLE bildet es die Mbed OS Nano Familie (Bild 4). Mir wird nicht deutlich, warum der Nano 33 IoT nicht zu dieser Familie gehört. Wegen zu geringemSpeicher? Eigentlich hätte das Arduino-Board Nano RP2040 Connect meiner Meinung nach besser Nano 33 Connect heißen sollen, aber das Ersetzen der „33“ durch „RP2040“ könnte die Verkaufszahlen steigern.

Arduino Nano family
Bild 4: Die Arduino-Nano-Familie umfasst derzeit vier Boards. Sie messen nur 45 × 18 mm (Bild: arduino.cc).

Software Support

Da es sich um ein Arduino-Board handelt, lässt sich das Connect nahtlos in die Arduino-IDE integrieren. Zum Zeitpunkt des Schreibens dieses Artikels scheint es jedoch keine Unterstützung für die Verwendung der beiden Kerne des RP2040 zu geben, und auch sonst gibt es nichts RP2040-spezifisches wie etwa Unterstützung für die PIO-Blöcke oder den Interpolator. Alle Beispiele sind generische Arduino-Beispiele, die auf vielen Boards laufen. Es gibt ein paar Tutorials, die erklären, wie man das Mikrofon oder die IMU benutzt. Was fehlt sind Dinge, die nur auf einem RP2040 laufen, was ich ein bisschen enttäuschend finde.

Warum packt man ein RP2040 auf das Board, wenn man keine Unterstützung dafür anbietet? Ohne diese Unterstützung ist das Board einfach ein Nano Connect mit ähnlichen Spezifikationen und Fähigkeiten. Das Modell RP2040 scheint hauptsächlich eine I/O-Erweiterung für den ESP32 zu sein, um den Nano-Formfaktor zu erfüllen. Außerdem ist es so Mbed OS-kompatibel, was der ESP32 als Nicht-ARM-MCU eben nicht ist. Aber diese Ziele hätten auch durch die Verwendung einer Cortex-M7 MCU anstelle eines RP2040 erreicht werden können. Man hätte es dann z.B. Arduino Portenta nennen können.

Vier große Maker-Boards

Das Arduino-Board Nano RP2040 Connect vereint vier große Namen aus der Embedded-Maker-Szene (Arduino, Raspberry Pi, ESP32 und Mbed OS) in einem einzigen Modul. Es will wohl das Beste aus Open Source kombinieren, anstatt zu versuchen, alles proprietär zu halten, wie es große Halbleiterhersteller gerne tun.

Fazit

Zusammenfassend lässt sich sagen, dass mit dem Connect ein kleines, aber sehr leistungsfähiges Mikrocontroller-Modul mit vielen Möglichkeiten zum Preis eines (offiziellen) Arduino Uno geschaffen wurde. Wenn Sie auf der Suche nach einem nicht zu teuren Board mit WLAN- und/oder Bluetooth sind, auf dem Mbed OS für eine IoT-Anwendung läuft, dann ist das Connect-Board eine gute Wahl. Wenn Sie aber mit dem RP2040 innerhalb der Arduino IDE spielen wollen, sind Sie wahrscheinlich mit dem viel billigeren, aber etwas größeren Raspberry Pi Pico Board besser dran, auf dem übrigens auch Mbed OS läuft. Für Dual-Core und alle anderen RP2040-spezifischen Dinge, installieren Sie Earle Philhower III's Arduino IDE BoardsPaket, es unterstützt auch das Connect-Board.

Diesen Bericht als Video ansehen


Übersetzung: Dr. Thomas Scherer