In a Nutshell - Arduino Nano RP2040 Connect

Als der Raspberry Pi Pico Anfang des Jahres das Licht der Welt erblickte, hat Arduino ein eigenes Board auf Basis des RP2040-Microcontrollers angekündigt. Nach wenigen Monaten ist es nun soweit. Der Arduino Nano RP2040 Connect lässt sich endlich käuflich erwerben. In diesem Beitrag geht es um erste Erfahrungen mit dem neuen Board.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 9 Min.
Von
  • Dr. Michael Stal
Inhaltsverzeichnis

Als der Raspberry Pi Pico Anfang des Jahres das Licht der Welt erblickte, hat Arduino ein eigenes Board auf Basis des RP2040-Microcontrollers angekündigt. Nach wenigen Monaten ist es nun soweit. Der Arduino Nano RP2040 Connect lässt sich endlich käuflich erwerben. In diesem Beitrag geht es um erste Erfahrungen mit dem neuen Board.

Das neue Board Arduino Nano RP2040 Connect



Billig ist der Nano RP2040 Connect nicht zu haben, zumal er inklusive angelöteter Pin-Leisten mit über 20 Euro zu Buche schlägt. Allerdings erscheint er gegenüber anderen Arduino Nano-Boards wie denen aus der Nano-33-Familie ausgesprochen günstig. Im Vergleich zu den RP2040-Boards von SparkFun, Adafruit oder der Raspberry Pi Foundation wartet das Arduino-Board mit vielen Extras auf, insbesondere der herbeigesehnten WiFi- und Bluetooth-Fähigkeit.

Was verbirgt sich unter der Motorhaube beziehungsweise was sind die wesentlichen Merkmale des Nano RP2040 Connect. Hier zunächst eine Übersicht mit den Eigenschaften und Ingredienzen:

Das neue Arduino Board bietet unter seiner Motorhaube einiges.

(Bild: Arduino)

  • Das Herzstück des Boards bildet der RP2040/Microcontroller mit seinen zwei Cortex M0+-Kernen, deren Frequenz bei 133 MHz liegt.
  • 264 KB SRAM befinden sich auf dem RP2040-Chip, zu denen sich 16 MB (über einen QSPI-Bus verbundenes) Flash-RAM gesellen.
  • Um für Sicherheit zu sorgen, enthält die Hardware einen kryptografischen Koprozessor des Typs Microchip ATECC608A.
  • Der Buck-Stepdown-Konverter MP2322 regelt die 4.5V bis 21V Eingangsspannung auf die vom Board benötigten 3.3V herunter.
  • Auf dem Nano RP2040 Connect lassen sich mehrere Tiefschlafmodi einsetzen, um den Stromverbrauch zu minimieren.
  • Wie sein Cousin Raspberry Pi Pico enthält auch der Nano RP2040 Connect zwei PIO-Blöcke (PIO = Programmable Input/Output) mit je vier Zustandsmaschinen für programmierbare Ein- und Ausgabe, ebenso wie einen DMA-Controller und zwei Oszillatoren (PLLs) für das Antreiben von System und USB. Natürlich darf auch der interne Temperatursensor nicht in dieser Aufzählung fehlen.
  • Apropos USB: Das Board bietet einen USB 1.1-Controller sowie einen Micro-USB-Anschluss.
  • Eine SWD-Schnittstelle erlaubt Hardware-Debugging.
  • Größenmäßig nimmt der Nano RP2040 nur 18 x 45 mm ein, ist daher kleiner als die meisten RP2040-Boards.

Die Pin-Belegung des Boards

(Bild: Arduino)

Der Formfaktor des neuen Boards entspricht dem anderer Mitglieder der Nano-Familie, angefangen vom Ur-Nano bis hin zu neueren Boards wie Arduino Nano {33 BLE Sense | 33 BLE | 33 IoT | 33 Every}. Nebst Formfaktor stimmen die Nanos auch in der Belegung ihrer Ports überein.


Das Board stellt acht analoge Ports A0…A7 zur Verfügung, von denen allerdings A4 und A5 nur für I2C verwendet werden sollten. Für die Analog-Digital-Wandlung existieren 4 Kanäle mit 12 Bit Auflösung. Die Hälfte dieser Ports (d.h., alle bis auf A4…A7) unterstützt Pulsweitenmodulation (PWM). Wer A6 und A7 für die Verarbeitung analoger Signale einsetzen möchte, sollte wissen, dass diese Ports ausschließlich analoges Lesen erlauben.

Die analogen Ports lassen sich auch als digitale Ports verwenden, sodass insgesamt 22 digitale Anschlüsse zur Verfügung stehen, von denen die meisten PWM-fähig sind.

Weitere kleinere Einschränkungen:

  • Bei der Verwendung von A6 und A7 als digitale Ports ist nur Lesen möglich.
  • Der digitale Pin 3 lässt sich nicht mit INPUT_PULLUP konfigurieren.

Zum Anschluss externer Bus-Komponenten gibt es folgende Möglichkeiten:

  • SPI steht an den Ports D11 (CIPO, früher MOSI), D12 (COPI, früher MISO), D13 (SCK) und einem beliebigen Analog-Pin außer A6/A7 (CS; früher SS) zur Verfügung.
  • I2C: Wie oben bereits angedeutet, fungieren A6 und A7 als I2C-Ports SDA und SDL.
  • UART: Für einen UART-Anschluss gibt es analog zum Raspberry Pi Pico die Ports D0 (RX) und D1 (DX).
  • I2S: Das Board integriert den Bus für Audioströme.

Das Board in voller Pracht


Das Connect im Namen steht für den Chip u-blox NINA-W102, der auch schon auf anderen Arduino-Boards seine Dienste leistet und den ESP32 als Basis nutzt. Mit seiner Hilfe verfügt der Nano RP2040 Connect über WiFi und Bluetooth Low Energy 4.2. Wer die Arduino Cloud abonniert, darf sich darüber freuen, dass die Cloud bereits den Nano RP2040 Connect unterstützt.

Zum Zugriff auf WiFi-Funktionalität müssen Programmierer die entsprechende WiFiNINA-Bibliothek einbinden und in der Funktion setup() initialisieren:

#include <WiFiNINA.h>

void setup() {

WiFi.begin(ssid, pass);

}

In loop() befindet sich der Code für die eigentliche WiFi-Kommunikation:

void loop() {
….
server = “www.heise.de“;
port = 0x80;

if (client.connect(server, port)) {
client.println(
"GET /https://www.heise.de/suche/?q=developer HTTP/1.1");
client.println("Verbindung zu: www.heise.de");
client.println("Connection: close");
client.println();
}
}

Mittels der ArduinoBLE-Bibliothek lassen sich Bluetooth-Dienste anbieten oder konsumieren.

Zusätzlich integriert das Nano RP2040 Connect diverse Sensoren, unter anderem eine Messeinheit zur Trägheitsmessung (ST LSM6DSOXTR ) und ein MEMS-Mikrofon (ST MP34DT06JTR):

  • MEMS steht für Micro ElectroMechanical Systems. MEMS-Mikrofone zeichnen sich durch niedriges Rauschen, einen weiten Dynamikbereich, geringe Verzerrung und große Resilienz gegenüber akustischer Überlast aus, weshalb sie sich sehr gut für Spracherkennung eignen. Zum Integrieren des Mikrofons gibt es die PDM-Bibliothek, die der Board Manager der Arduino IDE (siehe unten) mitinstalliert.
  • Die LSM6DSOXTR von ST Microelectronics implementiert sogenannte Sensor-Fusion, weil er zwei Sensoren kombiniert, einen dreidimensionalen Beschleunigungsmesser und ein dreidimensionales Gyroskop (Kreiselkompass). Hinter den drei Dimensionen verbergen sich räumliche (x,y,z)-Koordinaten, für die der Sensor Beschleunigungen und Drehmomente ermittelt. Durch seinen ML-Kern (Maschine Learning Core) kann der LSM6DSOXTR auch fortgeschrittene Funktionalität anbieten, etwa die Erkennung von freiem Fall. Wollen Entwickler diesen Sensor nutzen, müssen sie die entsprechende LSM6DSOX-Bibliothek einbinden.

Entwicklungshelfer

Das Board lässt sich in beiden Arduino IDEs programmieren, der klassischen 1.8.x-IDE und der neuen 2.0.x-IDE. Da Nano RP2040 Connect den Arduino Mbed OS Nano Boards Core benutzt, genügt zur Installation die Suche nach dieser Phrase im Board Manager der jeweils eingesetzten IDE. Weitere Informationen zur Installation finden sich hier.

Das Board in Aktion: es blinkt mal wieder

Für alle Freunde der Online-Entwicklung: Auch der Arduino Web Editor steht für das neue Board bereit.

Das Board implementiert den gleichen Bootloader-Prozess wie der Raspberry Pi Pico, sodass sich der Arduino Nano RP2040 beim Hostsystem als USB-Massenspeicher ausgibt. Auf einem Mac erscheint das Board im Massenspeichermodus sogar als Raspberry Pi Pico. Durch ein schnelles doppeltes Betätigen der Reset-Taste lässt sich der Bootloader aktivieren, sollte einmal beim Hochladen etwas schiefgehen.

Der Nano Nano RP2040 lässt sich sowohl mit einer Arduino 1.8.x IDE als auch mit der neuen Arduino 2.x-Entwicklungsumgebung programmieren.

Für den Fall, dass das Host-Betriebssystem den Nano nicht erkennt, gibt es einen kleinen Workaround: In diesem Fall können Entwickler bei angeschlossenem Board das REC- und das GND-Pin mit einem Verbindungsdraht (Jumper-Wire) zusammenschließen, anschließend die Reset-Taste betätigen, worauf sich der Arduino Nano RP2040 als USB-Speicher zu erkennen gibt, um danach einen Beispielssketch auf das Board hochzuladen.

Grundsätzlich dürften auch andere IDEs und Programmierplattformen demnächst den Arduino Nano RP2040 Connect unterstützen, darunter CircuitPython, MicroPython, Visual Studio Code und PlatformIO.

In einem Selbstversuch konnte ich zumindest validieren, dass sich der Arduino Nano RP2040 Connect mit der MicroPython-Firmware für den Raspberry Pi Pico bespielen lässt. Auch ein einfaches Programm ließ sich zum Ablauf bringen. Nähere Details folgen in zukünftigen Postings.

Angetestet: Dir MicroPython-Firmware für den Raspberry Pi Pico läuft auch auf dem Arduino

Für detaillierte Aussagen ist es selbstverständlich noch zu früh. Trotzdem erscheint es als sicher, dass Arduino mit dem Nano RP2040 Connect ein großer Wurf gelungen ist. Das neue Board bietet das, was Anwender des Raspberry Pi Pico bislang vermisst haben: komplexere Sensoren, die Unterstützung durch das Arduino-Ökosystem, sowie vor allem WiFi- und Bluetooth-Funktionalität. Daher relativiert sich auch der etwas höhere Preis des Produktes deutlich. Vom Preis/Leistungsverhältnis her gesehen ist das neue Board sein Geld wert.

Das nur als kleiner Vorgeschmack. Zukünftige Blog-Postings widmen sich dem Newcomer detaillierter und intensiver.

()