Zum Hauptinhalt Zur Navigation

Arduino Uno R4 im Test: Der neue Einsteiger-Arduino mit geheimer Superkraft

Erheblich mehr Leistung, Speicher und neue Funktionen: Das verspricht Arduino mit dem Wechsel von Atmel zu ARM . Wir haben den neuen Uno R4 ausprobiert.
/ Johannes Hiltscher
18 Kommentare News folgen (öffnet im neuen Fenster)
Den Uno R4 gibt es als minimalistische Standardversion - oder vollgepackt mit WLAN-Modul und LED-Display. (Bild: Johannes Hiltscher, Golem.de)
Den Uno R4 gibt es als minimalistische Standardversion - oder vollgepackt mit WLAN-Modul und LED-Display. Bild: Johannes Hiltscher, Golem.de

Sein Einsteiger-Board, den Uno, verkauft Arduino seit 2010 quasi unverändert, nach 13 Jahren hat man sich aber für eine Aktualisierung entschieden. Die wird seit dem 26. Juni 2023 verkauft, wir konnten die neue Version namens Uno R4 bereits testen. Arduino stellte uns, wie auch einer Reihe von Entwicklern, vorab Testmuster zur Verfügung. Damit haben wir ausprobiert, ob sich der Uno R4 lohnt - und für wen.

Neben der Standardvariante mit dem Namenszusatz Minima erhielten wir auch die WLAN-Variante, die sich zusätzlich durch ein LED-Matrix-Display und eine Qwiic-Buchse(öffnet im neuen Fenster) vom Minima absetzt. Die hat sich Sparkfun ausgedacht, sie ermöglicht den einfachen Anschluss kompatibler Module über I 2 C. Darüber hinaus kann das WLAN-Modul von Espressif zum Debuggen des auf dem Mikrocontroller ausgeführten Sketchs verwendet werden.

Die größte Herausforderung bei der Aktualisierung dürfte die Kompatibilität mit alten Shields gewesen sein: Leistungsfähigere Mikrocontroller arbeiten meist nur noch mit einer Versorgungsspannung von 3,3 Volt. Ihre Eingänge vertragen üblicherweise nicht die 5 V, mit denen Arduino-Shields arbeiten können. Eine Ausnahme ist der auf den Uno R4 verbaute Renesas RA4M1. Wie der zuvor genutzte Atmega328 kann er mit bis zu 5,5 V betrieben werden, alle Shields können daher weiter genutzt werden.

Mit 48 MHz taktet der Cortex-M4 allerdings deutlich langsamer als der Cortex-M0+ etwa des Raspberry Pi Pico mit 133 MHz. Da er dank Python ebenfalls einfach zu programmieren ist, dürfte er den Ausschlag zur Entwicklung des Uno R4 gegeben haben. Wir stellen beide Boards gegenüber und ziehen noch den Vergleich zum Uno R3.

Anstecken und funktioniert

Bevor wir loslegen, müssen wir unter Linux zunächst die Programmiersoftware dfu-util installieren. Die IDE (Integrated Development Environment) nutzt sie, um unsere Programme in den 256 kByte großen Flash-Speicher zu schreiben. Klappt das nicht, muss noch eine Udev-Regel angelegt werden, um als normaler Benutzer auf das USB-Gerät zugreifen zu können. Dazu wird der folgende Code in eine Datei, etwa /etc/udev/rules.d/S70_arduino.rules , kopiert:

        
# Uno R4 Minima
SUBSYSTEM=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0069", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0069", MODE="0666"

Sobald wir der Arduino-IDE noch das passende Platform-Modul hinzugefügt haben, funktioniert das Board. Bereits mit der vorläufigen, nur für Entwickler zugänglichen Version des Moduls hatten wir keine Probleme. Mittlerweile kann es ganz normal über den Reiter Boards Manager am linken Fensterrand der Arduino IDE installiert werden.

Sketches lassen sich weiter nutzen

Danach kann auch bereits bestehende Software weiterentwickelt werden. Solange ein Sketch hardwareunabhängigen Code enthält, also etwa nicht direkt auf Port-Register zugreift, muss er für den Uno R4 nur neu kompiliert werden. Für die meisten Nutzer sollte ein Umstieg also ohne Probleme möglich sein. Werden Bibliotheken verwendet, können sie Inkompatibilitäten aufweisen; mit einem Early-Access-Programm wollte Arduino deren Entwicklern aber Vorlauf zur Anpassung geben. Daher kann auch hier bereits mit umfangreicher Kompatibilität gerechnet werden.

Die Bibliothek für den Uno R4 bringt zudem viele Code-Beispiele mit, welche die Nutzung des WLAN-Moduls, der integrierten Echtzeituhr (Real Time Clock, RTC) oder der LED-Matrix demonstrieren. Leider fehlt ein Beispiel zur Verwendung von Bluetooth, was das verbaute ESP32-S3-Modul(öffnet im neuen Fenster) von Espressif ebenfalls unterstützt.

Was die Fähigkeiten angeht, sind die WLAN-Varianten von Arduino Uno R4 und Raspberry Pi Pico gleichauf. Bezüglich der Hardwareleistung liegt, was allein die nackten Zahlen angeht, der Pico vorn. Vergleichen wir also einmal die Leistungsdaten, schon allein, um zu sehen, wie groß der Schritt vom Uno R3 zum R4 ist.

Bei Gleitkommaberechnungen glänzt der Uno

Leider gibt es für Mikrocontroller keinen etablierten Benchmark, also haben wir uns selbst einen ausgedacht. Nach der Freude, die uns Conway's Game of Life auf dem Gigatron bereitet hat, haben wir es zur Benchmark-Anwendung auserkoren. Die angegebenen Laufzeiten haben wir jeweils mit den durch die Programmierumgebungen bereitgestellten Funktionen bestimmt (bei Arduino die Funktion micros() , beim Raspberry Pi die Funktion get_absolute_time() ).

Das mag absurd klingen, tatsächlich deckt der Code aber die wichtigsten Funktionen ab: Er enthält Kontrollfluss, Multiplikationen, Bitoperationen - klassische Bestandteile eines Mikrocontroller-Programms. Auf einem Feld mit 96 x 60 Zellen lassen wir 1.000 Generationen laufen.

Damit ist der Uno R4 nach rund 5,79 s fertig, der Pico bereits nach etwa 2,79 s. Der Uno R3 hingegen braucht mit 41,72 s mehr als siebenmal so lang wie sein Nachfolger. Neben dem dreimal so hohen Takt liegt das daran, dass unser Sketch mit 32-Bit-Werten arbeitet. Allerdings unterliegt der Uno R4 dem Pico deutlich aufgrund seiner nicht einmal halb so hohen Taktfrequenz.

Bei Gleitkommazahlen glänzt der Uno

Der Renesas-Controller auf dem Uno R4 hat dem RP2040 des Pico aber eines voraus: Er enthält eine Gleitkommaeinheit (FPU). Die ist etwa für die digitale Signalverarbeitung, etwa von Sensordaten, interessant. Da zudem ein Digital-Analog-Wandler (DAC) verfügbar ist, können mit dem Uno R4 aber auch in Echtzeit Audiodaten manipuliert werden. Schauen wir uns an, was die FPU bringt.

Hierzu haben wir eine typische Operation der digitalen Signalverarbeitung implementiert: die Faltung einer Sequenz von 1.024 Abtastpunkten mit einem Filter-Kern mit 15 Punkten. Damit kann etwa ein Frequenzfilter realisiert werden.

Die Operation erledigt der Uno R4 in knapp 3,55 ms, der Pico benötigt mit 18,87 ms mehr als fünfmal so lange. Bei Letzterem laufen die Gleitkommaberechnungen in Software, was einen deutlichen Nachteil bedeutet. Der Uno R3 musste bei dieser Aufgabe leider passen - sein RAM ist mit 2 kByte zu klein, um die Samples aufzunehmen. Um zu vermeiden, dass Optimierungen der Gleitkommaeinheit des Cortex-M4 das Ergebnis verfälschen, haben wir alle Samples mit Zufallswerten initialisiert.

Kommen wir damit zum Fazit.

Fazit, Preis und Verfügbarkeit

Der Uno R4 ist ein gelungenes und längst fälliges Update von Arduinos Mikrocontroller-Board für Einsteiger. Auch wenn andere Boards mehr Leistung bieten, haben die neuen Unos besonders für Einsteiger einige Vorteile. Da wäre zunächst die Arduino IDE, die mit der hauseigenen Hardware am einfachsten zu nutzen ist. Hilfreich sind auch die vielen mitgelieferten Code-Beispiele. Der Raspberry Pi Pico ist mit Micropython zwar auch leicht zu benutzen, die interpretierte Sprache bedeutet allerdings erhebliche Leistungseinbußen.

Apropos Leistung: Hier hat der Pico mehr zu bieten, nicht nur lässt er sich deutlich höher takten, er hat zudem zwei Kerne sowie deutlich mehr RAM und Flash-Speicher. Zudem ist er mit 5 Euro für das einfache Board und 8 Euro für die WLAN-Variante deutlich günstiger und passt auf Steckbretter. Wer allerdings bereits Arduino-Shields besitzt oder Sketches programmiert hat, kann mit dem Uno R4 ohne Aufwand seine Möglichkeiten erweitern.

Arduino ist die einfachere Alternative

Wer digitale Signalverarbeitung betreibt und dabei mit Gleitkommazahlen rechnet, für den ist der Uno R4 eindeutig die bessere Wahl. Auch Anfängern würden wir aufgrund der deutlich einfacheren Entwicklungsumgebung eher zum Arduino raten. Der Raspberry Pi Pico hingegen glänzt mit seiner Leistung, wenn es nicht um Gleitkommazahlen geht, und mit besonderen Features wie Programmable Input/Output (g+) , kurz PIO. Wer das Beste aus beiden Welten möchte, hat noch den Arduino Nano RP2040(öffnet im neuen Fenster) zur Auswahl.

Das LED-Matrix-Display der WLAN-Variante finden wir eine gelungene Neuerung. Es ist mehr als eine nette Spielerei und ermöglicht etwa Ausgaben zur Überwachung des Programmflusses, ohne dass ein USB-Kabel für die serielle Schnittstelle angesteckt werden muss. Unverständlich finden wir allerdings Arduinos Entscheidung, beim Minima auf das Matrix-Display sowie die Qwiic-Buchse zu verzichten. Beides hängt am Renesas-Controller und wäre daher problemlos auch beim Minima integrierbar gewesen.

Preis und Verfügbarkeit

Beide Varianten des Arduino Uno R4 können bereits über den Onlineshop des Herstellers und diverser anderer Anbieter bestellt werden. Arduino verkauft den Minima für 18 Euro und damit sogar günstiger als den Vorgänger, die WLAN-Variante kostet 25 Euro. Bei anderen Anbietern sind sie teils etwas teurer. Den Vorgänger Uno R3 will Arduino weiter anbieten.


Relevante Themen