Die Chipkrise hat auch Raspberry Pi hart getroffen. Die kleinen Single Board Computer sind kaum noch zu normalen Preisen, geschweige denn zur unverbindlichen Preisempfehlung, bekommen. Oft ist auch ein Raspberry Pi 4 mit seinem Broadcom BCM2711B0 SBC und der Quad-Core ARM Cortex-A72 CPU ein bisschen Overkill. Gerade IoT- oder Edge-AI-Projekte brauchen nicht viel mehr als ein paar MHz Takt und eine Hand voll KB Arbeitsspeicher. Deswegen ist der RP2040 von Raspberry Pi seit dem Raspberry Pi Pico von 2021 so beliebt. Daneben gibt es natürlich den Evergreen von Espressif, den ESP32 Chip, der unterdessen in nahezu allen Smart-Home-Geräten steckt, die wir so haben. Übrigens auch im Blueair DustMagnet 5240i. Klar, denn die MCUs sind gut dokumentiert, stromsparend und anschlussfreudig. Um so etwas wie ein Relais via WLAN ein- und auszuschalten, reichen sie mehr als aus. Doch was, wenn es mal mehr sein soll? Wir haben uns darum den UDOO Key angeschaut, der sowohl den RP2040 von Raspberry Pi als auch den ESP32 von Espressif auf einem Board mit zig Anschlussmöglichkeiten vereint.
Inhaltsverzeichnis
Lieferumfang des UDOO KEY RP2040 + ESP32
Im Karton ist neben de UDOO KEY selbst eine englischsprachige Kurzanleitung, zwei silberne Sticker mit Konformitäts-Logos und Seriennummer, sowie zwei mal 20 Stiftleiste und ein mal drei Pin-Header zum selber auflöten. Zudem sind zwei Jumper mit dabei.
Hardware und Eigenschaften
Kommen wir zum interessanteren Teil. Der Udoo Key besteht wie bereits erwähnt aus einem RP2040 und einem ESP32 Mikrocontroller. Dabei ist der RP2040 von Raspberry Pi Ltd. in der bekannten Konfiguration des Raspberry Pi Pico (nicht Pico W, Pico H oder Pico WH) vorzufinden. Hinzu kommt aber eine LED sowie zwei Tasten: Boot select und Reset. Die 43 Anschlüsse sind in der bekannten Breakout-Board-Form vorhanden und können so direkt angelötet oder eben mit der Stiftleiste versehen werden. Das Pinout-Diagram von Raspberry Pi für den RP2040 im RPi Pico ist also hier ebenfalls gültig.
Im oberen Teil des UDOO KEY ist indes ein ESP32 verbaut, der WLAN und Bluetooth bereitstellt und noch einiges mehr. Er ist mit einem Olimex UEXT Anschluss ausgestattet und kann so direkt an diverses Zubehör angeschlossen werden. Zudem ist hier eine USB-Typ-C Buchse linksseitig verlötet, mit der das IoT-Gadget nicht nur mit Strom (5 V bei maximal 2.5 A) versorgt, sondern auch direkt programmiert werden kann.
Weiter finden wir auf dem ESP32-Teil den I2C-Bus als dreipolige Stiftleiste unterhalb des Olimex-Anschlusses und über dem USB-C-Anschluss zwei Pins zur Auswahl des Seriellen-Modus vorhanden. Die beiden Pins direkt neben dem Olimex UEXT-Port wählen den Boot-Modus des ESP32 aus.
Zwei LED und eine Taste für den ESP32 sind ebenfalls verbaut.
Ebenfalls ist eine 9-Axen IMU, eine inertiale Messeinheit (auf Englisch: Inertial Measurement Unit) auf dem PCB untergebracht, die Beschleunigungssensoren und Drehratensensoren kombiniert, sowie ein Mikrofon vorhanden. Diese beiden Bauteile sind aber nur beim UDOO KEY Pro vorhanden. Ohne Pro gibt es nur den Temperatursensor der RP2040. Es liesse sich aber relativ einfach ein entsprechender Chip nachrüsten, wenn man solche Sensoren für ein Projekt doch noch bräuchte.
Alle Bauteile sind auf der Oberseite angebracht, so dass auf der relativ flachen Unterseite die wichtigsten Anschlüsse nochmal beschriftet und deren Pinout aufgedruckt sind. Leider nicht vom I2C-Bus. Aber dieser ist in der ausführlichen Dokumentation des Herstellers zu finden.
Der UDOO Key des italienischen Unternehmens SECO SPA ist 130 x 40 mm gross und wiegt 23 Gramm. Die Platine selbst ist Schwarz gehalten und verfügt über die für das Raspberry Pi Pico-Board üblichen Öffnungen für Befestigungen und Gehäuse sowie zwei weitere entsprechende Bohrungen im oberen Teil neben dem ESP32 Chip.
Raspberry Pi RP2040
Der RP2040-Mikrocontroller wurde von Raspberry Pi im Vereinigten Königreich entwickelt und beinhaltet einen Dual-Core Arm Cortex M0+ Prozessor, der mit einem Takt bis zu 133 MHz läuft und auf 264 kiB SRAM und 2 MiB integrierter Flash-Speicher zurückgreifen kann. Er kann US 1.1 als Gerät und als Host und kann mittels MicroPython bequem per Drag-and-Drop programmiert werden. Dazu meldet sich das Gerät nämlich als Massenspeicher über USB am PC oder Mac an.
Neben einem stromsparenden Sleep- und Ruhemodus verfügt der RP2040 auch über 26 GPIO-Multifunktionspins, zwei mal SPI und zwei I2C, zwei UART und drei mal einen 12-Bit-ADC sowie 16 steuerbare PWM-Kanäle. Auch gibt es acht programmierbare E/A-Zustandsautomaten (PIO).
Der Raspberry Pi hat zudem eine Präzise Uhr und Timer auf dem Chip sowie einen Temperatursensor verbaut und kann dank beschleunigter Gleitkomma-Bibliotheken super einfach mit TinyML und TensorFlow Lite für Offline-KI-Projekte genutzt werden.
Bilder: PocketPC.ch / Jeanrenaud
ESP32
Der verbaute ESP32 WROVER-E kommt mit einem Dual-Core Xtensa LX6 Prozessor von Cadence (ehemals Tensilica), der von 160 MHz bis 240 MHz taktet. Das SoC kann auf 160 KiB statisch zugewiesenen und 160 KiB dynamisch zugewiesenen RAM zugreifen. Zudem sind 16 MiB Flash-Speicher und 8 MiB PSRAM, WLAN, Bluetooth sowie BLE mit an Bord.
Testeindruck zum UDOO KEY
Das Programmier-Board mit den zwei Mikrocontrollern macht einen hochwertigen und vergleichsweise soliden Eindruck. Alle SMD-Bauteile sind sauber verlötet und auch der 10-polige UEXT Anschluss und die Stiftleisten sind ordentlich und gerade verbaut. So soll das sein.
Der UDOO Key lässt sich einfach und vergleichsweise problemlos einrichten. Die Verbindung via USB-C startet beide Chipsätze und alle angeschlossenen Geräte. Im Deep Sleep indes verbraucht er nahezu keinen Storm, nämlich 5 µA für den ESP32 und 1.32 µA für den RP2040.
IMU Zugriff
Mittels Steckbrücke, landläufig Jumper genannt, wird ausgewählt, welcher Chipsatz gerade im Zugriff auf den IMU hat. Während der Temperatursensor immer exklusiv beim RP2040 verbleibt, kann der ESP32 Zugriff auf ´die Beschleunigungs- und Lagesensorik bekommen, wenn kein Jumper gesteckt ist oder wenn Pin 2 und Pin 3 verbunden werden. Verbindet man indes Pin 1 und Pin 2, bekommt der RP2040 die IMU zugewiesen.
Verbindung zwischen den Mikrocontrollern
Doch damit nicht genug! Denn die beiden MCUs laufen nicht einfach nebeneinander auf einem gemeinsamen Board vor sich hin, sie können auch miteinander Kommunizieren.
Diese Verbindung nutzt GPIO0 (TX) und GPIO1 (RX) des RP2040 und am ESP32 IO19 (RX) und IO22 (TX). Im Schaltplan sind diese Verbindungen mit RPI_UART_TX und RPI_UART_RX bezeichnet. Zudem ist GPIO0 des RP2040 mit IO19 des ESP32 verbunden und umgekehrt der GPIO1 des RP2040 mit IO22 des ESP32. Dank dieser Verbindung können Sie zwischen den MCUs einen beliebigen Strom von Bytes austauschen.
Manchmal muss der RP2040 neu gestartet werden, ohne dass man an das Gerät kommen kann. Für diesen Remote Reset kann man bequem den ESP32 und dessen WLAN-Zugang benutzen. Der Pin Nummer 10 auf der P2 Stiftleiste (RPI_RESET) ist mit dem Pin IO23 des ESP32 verbunden. Durch Setzen des Ausgangspegels auf LOW wird die Ausführung des RP2040 deaktiviert, während durch Setzen des Ausgangspegels auf HIGH die Ausführung des RP2040 wiederhergestellt wird.
Um also den Raspberry-Mikrocontroller vom Espressif aus zurückzusetzen, setzt man einfach Pin 10 auf LOW und danach auf HIGH.
Zudem können wir den RP2040 OTA Programmieren, indem die SWD-Leitungen mit den ESP-Pins verknüpft sind. IO2 des ESP32 ist mit SWDI0 des RP2040 und IO4 des ESP32 mit SWCLK des RP2040 verbunden.
Programmieren und Anschliessen
Der ESP32 kann mit allen gängigen Werkzeugen programmiert werden. Neben dem offiziellen ESP-IDF ist hier auch MicroPython und die Arduino IDE möglich. Ganz nach Belieben und Einsatzgebiet.
Der RP2040 ist jedoch am einfachsten mit MicroPython zu programmieren, gerade weil wir hier bequem Zugriff auf TinyML als Machine Learning Framework bekommen und viele TensorFlow-Lite Projekte zum Lernen und Weiterentwickeln frei verfügbar sind. Natürlich geht auch das Pico C SDK von Rasperry Pi hier problemlos.
Weiter unterstützt der UDOO KEY auch von Haus aus Clea. Das ist die eigene Plattform von Seco, um KI-Modelle und Anwendungen auf mehrere IoT-Geräte via Over-The-Air (OTA) Updates einzuspielen. Dieses AI-as-a-Service ist natürlich nicht kostenlos. Clea zielt aber auch nicht auf Hobby-Coder und Bastler ab. Hierbei geht es um Unternehmen, die beispielsweise Snackautomaten mit KI ausstatten um personalisiert Werbung oder zielgenaue Sonderangebote auszuspielen.
Preis und Fazit
Der UDOO KEY war bislang nur via Kickstarter zum Preis von knapp 9 US-Dollar erhältlich. Der Hersteller SECO plant für den UDOO Key Pro eine unverbindliche Preisempfehlung (UVP) von etwa 20 Euro bzw. SFr. anzupeilen. Es gab bei Kickstarter aber auch KI Vision Kits zu backen, bei dem eine 8 MP USB-Kamera und das UDOO VISION X5 mit dabei war oder ein Grove Kit mit 14 Modulen von SEED Studio inklusive LCD.
Insgesamt ist der UDOO KEY ein spannendes kleines Ding. Einen Raspberry Pio mit einem Espressif ESP32 zusammenzuschliessen ist zwar keine besonders neue Idee, aber der Hersteller SECO SPA hat hier wirklich ein gutes Stück Arbeit geliefert. Vor allem die ausführliche, englischsprachige Online-Dokumentation zum UDOO KEY und die Einfürhungsvideos inklusive sympatischem italienischem Akzent machen diese Plattform interessanter.
Das Ganze mach so eine Menge Spass und bietet viele Möglichkeiten für spannende Projekte. Natürlich könnte man sich auch einen UDOO KEY selbst zusammenstellen, aber die Verbindung zwischen den beiden MCU und die von Haus aus angeschlossene Peripherie sind wohl für viele Hobby-Engineers dann doch etwas zu komplex und zu fehleranfällig zum Nachbauen.
Video: SECO SPA