Zum Hauptinhalt Zur Navigation

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 News 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
Inhalt
  1. Arduino Uno Q im Test: Dies ist kein Arduino
  2. Leistung zwischen allen Stühlen
  3. Als Standalone-Entwicklungssystem nutzbar, aaaaaber...
  4. Arduino Uno Q: Verfügbarkeit und Fazit

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.


Relevante Themen