Zum Hauptinhalt Zur Navigation Zur Suche

Arduino Uno Q im Test: Dies ist kein Arduino

Mikrocontroller und ein Linux-fähiges SoC zusammen verändern das Arduino-Konzept grundlegend. Der Uno Q ist kein klassischer Arduino – was nicht unbedingt schlimm ist.
/ Johannes Hiltscher
2 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Eine Anspielung auf René Magrittes bekanntes Bild keiner Pfeife. (Bild: Martin Wolf/Golem.de)
Eine Anspielung auf René Magrittes bekanntes Bild keiner Pfeife. Bild: Martin Wolf/Golem.de

Nachdem wir den Arduino Uno Q testen konnten, kommen wir frei nach René Magritte zum Schluss: Dies ist kein Arduino – zumindest nicht im klassischen Sinn. Denn hier müssen wir Arduino ganz neu lernen, auch wenn das Äußere gleich ist. Dass neben dem Mikrocontroller nun ein Linux-fähiges SoC (System-on-Chip) verbaut ist, hat einen Bruch mit dem gewohnten Nutzungskonzept erforderlich gemacht – erschließt dafür aber ganz neue Einsatzszenarien.

Arduino hat uns zum Testen das bereits erhältliche Modell des Uno Q mit 2 GByte LPDDR4-RAM und 16 GByte eMMC-Speicher zur Verfügung gestellt. Der Bruch im Konzept wird beim Testen sehr schnell deutlich: Zwar können wir auch den Uno Q per USB-C mit einem Computer verbinden und weiter mit der gewohnten Arduino IDE arbeiten, um den Mikrocontroller zu programmieren. Allerdings funktionieren etwa unsere Mikrocontroller-Benchmarks nicht mehr wie gewohnt. Sie geben eigentlich Daten über die serielle Schnittstelle aus – beim Uno Q aber kommt nichts.

Das liegt daran, dass unser Computer mit dem Qualcomm-SoC kommuniziert – nicht wie beim Vorgänger Uno R4 (Test) direkt mit dem Mikrocontroller. Schnell wird uns anhand der auf dem Uno Q vorhandenen Beispiele und der Kurzdokumentation klar, dass beide als ein System gedacht sind. Auf beides können wir mit der neuen Entwicklungsumgebung App Lab zugreifen.

Apps statt Sketches

App Lab ersetzt für den Uno Q die alte IDE. Hier legen wir keine Sketches an, sondern Apps – aber die wiederum enthalten jeweils einen Sketch. Denn jede App besteht erst einmal aus einer Python-Datei, die auf dem SoC ausgeführt wird, und eben einem Sketch für den Mikrocontroller-Code. Die Apps haben dabei eine ähnliche Einschränkung wie die Sketches: Es kann immer nur eine laufen, was aber native Linux-Anwendungen nicht einschränkt.

Zusätzlich können der App Dateien als Assets hinzugefügt werden – etwa HTML-Code für einen Webserver. Er kann als sogenannter Brick hinzugefügt werden, quasi eine vereinfachte Form einer Bibliothek. Insgesamt bringt App Lab davon aktuell 19 mit, von der Bilderkennung über die Anbindung eines Sprachmodells (LLM) in der Cloud bis zum erwähnten Webserver. Zu fast allen gibt es mindestens ein Codebeispiel.

Beim Betriebssystem setzt Arduino wie auch Raspberry Pi OS auf das aktuelle Debian Trixie. Arduino scheint aber weniger Anpassungen vorzunehmen, zumindest der Linux-Kernel ist auf dem gleichen Stand wie beim regulären Debian. Aber zurück zu unseren Benchmarks.

Funktionen auf einem anderen Chip

Mikrocontroller und SoC kommunizieren mittels sogenannter Remote Procedure Calls (RPC) über die Arduino Router Bridge(öffnet im neuen Fenster). Mittels der Funktion provide() kann jede Seite eine Funktion bereitstellen, welche die andere Seite dann mittels call() oder notify() aufrufen kann. Ersteres funktioniert dabei wie ein klassischer Funktionsruf, das Programm wartet also, bis die Funktion beim Gegenüber abgearbeitet ist.

Bei einer Benachrichtigung mittels notify() hingegen arbeitet der Aufrufer direkt seinen Code weiter ab. Dies eignet sich etwa, um Sensorwerte vom Mikrocontroller zum SoC zu übertragen. Über die Router Bridge wird auch die serielle Schnittstelle abgebildet, die unsere Benchmark-Programme nutzen. Hierfür wird ein Objekt namens Monitor bereitgestellt, über dessen Methoden print() und println() der Sketch Nachrichten ausgeben kann.

Wir müssen entsprechend die alten Aufrufe von Serial.write() durch Monitor.print() ersetzen. Zu Beginn müssen wir in der setup()-Funktion zudem mittels Bridge.begin() die Router Bridge initialisieren – auch sie liegt bereits als Objekt vor, wir müssen zusätzlich noch die Header-Datei Arduino_RouterBridge.h einbinden. Jetzt produzieren auch die Benchmarks wieder Daten; bevor wir uns die ansehen, aber noch ein kurzes Fazit zu App Lab.

Neue IDE führt alte Stärken fort

Die Einfachheit war stets ein großer Vorteil der Arduino IDE. App Lab führt diese Stärke fort, die Anwendung ist übersichtlich und ermöglicht einen schnellen Einstieg. Die Bricks fügen sich hier gut ein, mit ihnen lässt sich komplexe Funktionalität schnell und mit niedriger Einstiegshürde umsetzen. Einfachheit zieht allerdings oft funtkionale Beschränkungen nach sich, fortgeschrittene Nutzer könnten hier schnell an Grenzen stoßen.

Die Kommunikation zwischen SoC und Mikrocontroller finden wir gut gelöst. Das Konzept ist einfach und auch für Einsteiger sicher nutzbar. Nach diesem Zwischenfazit kommen wir zu den Benchmarks.

Leistung zwischen allen Stühlen

Der verbaute STM32U585(öffnet im neuen Fenster) von ST Micro ähnelt dem RP2350 auf dem Raspberry Pi Pico 2 (Test), beide nutzen ARMs Cortex-M33. Der STM32U585 verfügt zwar nur über einen Kern, der taktet mit 160 MHz allerdings etwas schneller als die zwei des RP2350 mit 150 MHz. Zudem spendiert STM dem Mikrocontroller mit 786 KByte (das ist kein Tippfehler) rund 50 Prozent mehr RAM.

Da wundert es ein wenig, dass unsere beiden Mikrocontroller-Benchmarks ihn deutlich hinter dem RP2350 sehen. Das kann zwei Gründe haben: Zunächst können wir das Optimierungsziel des Compilers in App Lab weder einsehen noch einstellen. Es ist also denkbar, dass der STM32U585 mehr könnte. Der zweite Grund könnte das Echtzeitbetriebssystem Zephyr sein, das auf dem Mikrocontroller läuft und die Sketches ausführt.

Beim Mikrocontroller gibt es zudem ein paar Details zu beachten: Anders als bei bisherigen Unos arbeitet er mit einer Versorgungsspannung von 3,3 statt 5 V. Die digitalen Eingänge sind zwar 5-V-tolerant – das stellt die Kompatibilität zu bestehenden Shields sicher -, die Analog-Digital-Wandler vertragen allerdings maximal 3,6 V. Dafür sind deutlich mehr GPIOs nutzbar: Sie werden nicht nur über die gewohnten Buchsenleisten, sondern auch über die zwei 60-poligen Steckverbinder auf der Unterseite herausgeführt.

Ein besserer Raspberry Pi 3

Anders als beim Mikrocontroller ist beim SoC bereits von vornherein klar, dass der Arduino Uno Q nicht mit anderen aktuellen Single-Board-Computern (SBC) mithalten kann.

Die vier Cortex-A53-Kerne des Dragonwing QRB2210 takten zwar mit 2 GHz, sind aber technisch auf dem Stand des Raspberry Pi 3. Von ihm haben wir das B+-Modell mit 1,4 GHz Kerntakt in den Vergleich aufgenommen, mit dem Spacemit K1 (Test) zusätzlich einen RISC-V-Prozessor.

Entsprechend fallen auch die Benchmarks aus. Teils kann sich der Uno Q dank seines schnelleren Speichers deutlicher vom Raspberry Pi 3 absetzen, als es der reine Unterschied der Kerntakte erwarten lässt.

Dank Kryptografie-Erweiterung lässt er im entsprechenden Test des Geekbench 5.4 die Konkurrenz zudem weit hinter sich. Die alte Version dieses Benchmarks mussten wir wählen, da neuere Varianten aufgrund ihrer Speicheranforderungen nicht auf dem Raspberry Pi 3 und Arduino Uno Q laufen – auch für einen Multicore-Benchmark ist bei beiden der RAM zu knapp.

Beschleunigte KI abseits von Bricks ist nicht trivial

Noch nicht testen konnten wir bislang die beschleunigte KI-Leistung des QRB2210. Mit Resnet50 haben wir zwar ein Modell zur Bilderkennung aufgenommen, es lief allerdings nur auf den CPU-Kernen. Als Beschleuniger dient die Adreno-GPU, die eine ordentliche Leistung abliefert. Sie kann zudem mit OpenCL programmiert werden. Im Rahmen unseres gesetzten Testzeitraums ist es uns allerdings noch nicht gelungen, das KI-Modell hier zur Ausführung zu bringen. Das werden wir in einem späteren Test angehen.

Positiv hervorzuheben am Arduino Uno Q ist die Leistungsaufnahme: Sie liegt im Idle bei 0,4 W, bei GPU-Last im Vulkan-Benchmark vkmark bei maximal rund 1,5 W, der High Performance Linpack (HPL) kam in der Spitze auf 2,7 W. Lediglich beim Start des Systems sind kurzzeitig mit bis zu 3,4 W noch höhere Werte zu sehen – mutmaßlich, da hier zur hohen CPU-Last noch das eMMC-Modul aktiv ist. Beim HPL erreichte das Gehäuse des SoC in der Spitze eine Temperatur von 55° C – was absolut in Ordnung ist.

Für ein zentrales Verkaufsargument des Arduino Uno Q hätten wir uns allerdings mehr Prozessorleistung gewünscht.

Als Standalone-Entwicklungssystem nutzbar, aaaaaber...

Arduino bewirbt den Uno Q damit, dass er als eigenständiges Entwicklungssystem nutzbar sei. Dazu schließen wir ein USB-C-Hub mit Display-Ausgang und Energieversorung per USB-C Power Delivery an. Wir haben hier ein Anker 332 genutzt, das problemlos funktionierte. Das auf dem QRB2210 ausgeführte Debian startet dann die grafische Oberfläche Xfce und App Lab.

Die Leistungsdifferenz zum Raspberry Pi 4 – unserer Meinung nach der erste SBC, der gut als PC-Ersatz nutzbar war – lässt bereits erwarten, dass das nicht die beste Erfahrung sein wird. Genau das zeigt dann auch der Praxistest. Fenster bewegen sich recht zäh, die Hervorhebung von Elementen in App Lab beim Mouseover ist merklich verzögert.

Bei unserem Testsystem wird zudem der kleine RAM zum Problem. Allein App Lab belegt rund 350 MByte, für die grafische Oberfläche kommt noch einmal ähnlich viel hinzu. Zwar empfiehlt Arduino für die Nutzung als Standalone-Entwicklungssystem die noch nicht verfügbare 4-GByte-Variante. Aber auch hier kann der RAM schnell knapp werden, wenn einige Browsertabs geöffnet sind und eine App läuft – wobei all dies nicht für ein flüssigeres System sorgt.

Krach mit der Open-Source-Community

Rund um die Einführung des Arduino Uno Q gab es einige Turbulenzen: Die Übernahme durch Qualcomm sorgte bereits für Verunsicherung, wie es mit dem Open-Source-Gedanken bei Arduino weitergeht. Hinzu kam noch eine Änderung der Nutzungsbedingungen(öffnet im neuen Fenster).

Bei Adafruit gingen alle Warnlampen an, in einem Post bei Linkedin(öffnet im neuen Fenster) beklagten die Maker, Arduino sei auf dem Weg zu einer geschlossenen Plattform. Denn das Unternehmen räumt sich das Nutzungsrecht an Beiträgen von Nutzern auf der Plattform ein, verbietet Reverse Engineering und behält sich das Recht vor, die Nutzung der bereitgestellten KI-Funktionen zu überwachen.

Arduino sieht das selbstverständlich anders(öffnet im neuen Fenster): Die Änderungen seien teils erforderlich gewesen, um US-Gesetzen zu entsprechen – so ist etwa ein kompletter Abschnitt zu Export- und Handelskontrollen hinzugekommen -, die neuen KI-Features einzubeziehen und den Betrieb der Plattform für Arduino rechtssicher zu gestalten. Die Nutzungsrechte an der Plattform lasse man sich nur einräumen, um sie anderen Nutzern bereitstellen zu können, ohne rechtliche Probleme befürchten zu müssen(öffnet im neuen Fenster). Das Reverse-Engineering-Verbot betreffe zudem nur die Clouddienste.

Die Kritiker von Adafruit beruhigt das allerdings nicht, schließlich mache Arduino die Clouddienste zu einem immer zentraleren Bestandteil der Plattform. Und KI ist die zentrale Neuerung des Uno Q – wer hier nicht von Arduino auf Einhaltung der durchaus sinnvollen Verbote überwacht werden will, hat genau zwei Möglichkeiten: entweder nicht nutzen, was den Uno Q quasi sinnlos macht, oder die benötigten Modelle selbst auf den SBC bringen, was wiederum deutlich mehr Einarbeitung erfordert.

Grundsätzlich ist die Argumentation beider Seiten nachvollziehbar, für Interessenten stellt das aber eine weitere Schwierigkeit bei der Entscheidung für oder gegen den Uno Q dar. Und damit ist es Zeit für ein Fazit.

Arduino Uno Q: Verfügbarkeit und Fazit

Aktuell gibt es den Arduino Uno Q beim Hersteller selbst sowie bei einer Reihe anderer Anbieter in der 2-GByte-Variante. Hier ist ein 16 GByte fassendes eMMC-Modul verbaut, das Modell kostet rund 48 Euro. Das für rund 65 Euro angekündigte 4-GByte-Modell mit 32 GByte eMMC-Speicher ist aktuell noch nicht verfügbar.

Gleiches gilt für eine Zusatzplatine, welche die Nutzung der über die neuen, 60-poligen Steckverbinder auf der Unterseite herausgeführten Signale ermöglicht. Hier ist auch noch kein Preis bekannt, die Platine wäre allerdings erforderlich, um die Möglichkeiten des QRB2210 voll auszuschöpfen. Aktuell lässt sich dessen Bildsignalprozessor nicht nutzen, da eine Anbindung von Kameras per MIPI CSI (Camera Serial Interface) nicht möglich ist.

Um USB-Geräte anzubinden, ist zusätzlich ein USB-C-Hub erforderlich, der mittels USB-C Power Delivery mit Energie versorgt werden kann. Für den Betrieb genügt allerdings ein ausreichend leistungsfähiges 5-V-USB-Netzteil – es muss kein Modell sein, das Power Delivery unterstützt.

Fazit

Selten ist uns das Fazit zu einem SBC oder Mikrocontroller-Board so schwergefallen wie beim Arduino Uno Q. Das Konzept hat definitiv seinen Charme und ist gewohnt einsteigerfreundlich umgesetzt. Auch die neue IDE App Lab finden wir gelungen, die vielfältigen Möglichkeiten, den Uno Q damit zu nutzen – per USB, per WLAN oder direkt auf dem SBC – sind ein praktisches Feature. Wir freuen uns definitiv auf weitere Projekte mit dem Uno Q.

Trotz des Bemühens, das System einfach zu halten, liegt die Einstiegshürde dennoch höher als bei den alten Arduinos. Das liegt ganz einfach im komplexeren Gesamtsystem begründet. Schade finden wir, dass die Leistung des Systems ein Kompromiss geblieben ist. Klar: Dadurch bleibt der Preis erst einmal (relativ) niedrig, diese Tatsache verkleinert aber auch die Nische, in welcher der Uno Q seinen Platz findet.

Für viele Interessenten dürfte sich ganz einfach die Frage nach dem Sinn des Arduino Uno Q stellen. Selbst viele der Beispielanwendungen beantworten sie nicht. Ein IoT-Gerät etwa mit browserbasierter Schnittstelle ist mit dem Uno R4 WiFi oder einem Raspberry Pi Pico W ebenso umsetzbar. Mit Micropython ist das auch sehr einfach (g+). Als reiner SBC aber lohnt sich der Uno Q auch nicht – hier gibt es beim Raspberry Pi 4 mehr Leistung. Da für diesen nicht noch zusätzlich ein USB-C-Hub angeschafft werden muss, ist der Pi sogar die günstigere Variante.

Kein Arduino – und doch ein Arduino

Das soll aber nicht heißen, dass der Arduino Uno Q ein sinnloses Produkt ist. Sinn ergibt er immer dann, wenn die Kombination aus Echtzeitfähigkeit eines Mikrocontrollers sowie der Rechenleistung und Speicherausstattung eines SoC benötigt wird. Damit bleiben wenige Anwendungsfälle, in denen der Arduino Uno Q wirklich erste Wahl wäre. Stärkstes Argument ist damit das Arduino-Ökosystem, das etwa mit den Modulino-Erweiterungen externe Zusatzkomponenten einfacher anbindet als der Raspberry Pi Pico.

Und damit bleibt der Uno Q doch ein Arduino, obwohl er so ganz anders ist als seine Vorgänger. Einsteiger und alle, die schnell Projekte realisieren möchten, machen mit einem Arduino grundsätzlich nichts verkehrt. Vor der Anschaffung sollte aber die Frage stehen, ob man die neuen Möglichkeiten auch nutzt – andernfalls reicht auch ein Uno R4. Wer maximal flexibel sein möchte oder bereits KI-Projekte im Kopf hat, greift hingegen zum Uno Q.


Relevante Themen