Zephyr OS Update auf v4.2: Neue Architektur, USB Video und mehr Power
Das Zephyr Project hat wieder einmal geliefert und Version 4.2 seines beliebten Echtzeitbetriebssystems (RTOS) veröffentlicht. Wir hier nutzen Zephyr OS, wenn wir agil Hardware entwickeln für unsere Kunden. Dieses Release steckt voller Neuerungen, die Entwicklern mehr Möglichkeiten und eine verbesserte Benutzererfahrung bieten. Schauen wir uns die Highlights der Version 4.2 genauer an!
Zephyr OS wird auf Github gehostet, hier ist das Zephyr OS Repository. Mit dem Befehl git pull https://github.com/zephyrproject-rtos/zephyr.git
kannst du das aktuelle Zephyr-Repository auf deinen lokalen Computer aktualisieren. Es gibt auch einen Getting Started Guide, der dir dabei helfen wird, Zephyr zu installieren und zu konfigurieren.

Wichtig für die komplette Nutzung aller Features in Zephyr OS 4.2 ist, das auch das Zephyr-SDK geupdatet werden sollte. Und zwar auf mindestens SDK-Version 0.17.2.
Die wichtigsten Neuerungen in Zephyr 4.2
Erste Unterstützung für Renesas RX Architektur
Ein Meilenstein dieses Releases: Zephyr unterstützt jetzt erstmals die Renesas RX CPU-Architektur. Diese leistungsstarken und stromsparenden 32-Bit-Mikrocontroller sind besonders in der Industrie und im Automotive-Bereich weit verbreitet. Der Einstieg wird durch ein QEMU-basiertes Board-Target erleichtert. Hier findet ihr das Renesas Zephyr Wiki.
USB Video Class (UVC) Support
Ein lang ersehntes Feature ist da! Mit der neuen Unterstützung für die USB Video Class (UVC) kann sich dein Zephyr-Gerät jetzt als Standard-USB-Webcam ausgeben. In Kombination mit Sensor-Support und KI-Frameworks sind die Möglichkeiten für smarte Kameras und andere Videoanwendungen riesig.
Mit der Einführung von UVC-Support eröffnen sich komplett neue Anwendungsfälle für Zephyr, von einfachen Webcams bis hin zu komplexen Smart-Kameras mit KI-Integration.
Twister Power Harness: Den Stromverbrauch im Griff
Optimierung ist alles. Mit dem neuen Twister Power Harness können Entwickler den Stromverbrauch ihrer Anwendungen jetzt automatisiert überwachen und testen. Das Framework misst den Verbrauch und gleicht ihn mit den erwarteten Werten ab – ein mächtiges Werkzeug für energieeffiziente IoT-Geräte.
Die Möglichkeit, den Stromverbrauch automatisiert zu testen, ist ein entscheidender Vorteil für die Entwicklung von batteriebetriebenen Geräten und hilft, die Energieeffizienz auf ein neues Level zu heben.
Voller Support für MQTT 5.0
Das IoT-Protokoll MQTT ist in der Embedded-Welt allgegenwärtig. Zephyr 4.2 bringt die volle Unterstützung für die neueste Spezifikation MQTT 5.0, die viele Verbesserungen gegenüber den Vorgängerversionen bietet und die Kommunikation in IoT-Netzwerken robuster macht.
Änderungen an den APIs
Geänderte Handler-Signaturen: Die Signaturen der net_mgmt Event- und Request-Handler wurden angepasst. Der Event-Wert ist jetzt ein uint64_t statt uint32_t.
Entfernte Architekturen und APIs: Die NIOS2-Architektur sowie die veralteten Netzwerk-Buffer-APIs (net_buf_put(), net_buf_get()) und das kscan-Subsystem wurden entfernt. Auch die Kconfig-Option CONFIG_CRYPTO_TINYCRYPT_SHIM ist nicht mehr verfügbar.
Veraltete (Deprecated) Optionen: Einige Optionen und APIs sind noch vorhanden, werden aber in Zukunft entfernt:
- Scheduler: CONFIG_SCHED_DUMB wurde durch CONFIG_SCHED_SIMPLE ersetzt.
- Board-Namen: Neue Revisions-Syntax, z.B. arduino_uno_r4@minima.
- TLS Credential: TLS_CREDENTIAL_SERVER_CERTIFICATE wurde durch TLS_CREDENTIAL_PUBLIC_CERTIFICATE ersetzt.
Neue und erweiterte APIs:
- ZBus: Die Kommunikationsbibliothek ZBus ist jetzt stabil (v1.0.0) und unterstützt Observer-Verwaltung ohne Heap.
- Bluetooth: Viele Erweiterungen für Bluetooth Audio (BAP, CAP, CSIP) und Verbesserungen für Bluetooth Classic (HFP, L2CAP). LE Connection Subrating ist jetzt stabil.
- Netzwerk: Unterstützung für MQTT 5.0 (CONFIG_MQTT_VERSION_5_0), überarbeitetes OpenThread-API, neue Optionen und APIs für Sockets, Wi-Fi, DNS, HTTP und CoAP.
- Grafik: LVGL auf Version 9.3 aktualisiert, Unterstützung für mehrere Displays.
- Kernel/System: Neue Zeitfunktionen (timespec_..., sys_clock_gettime()), neue asynchrone Energieverwaltungsfunktionen.
- Treiber/Subsysteme: Neue Video-Steuerelemente und Pixelformate, neue API display_clear() zum Löschen des Bildschirminhalts, neue Funktion flash_area_copy() zum Kopieren von Flash-Bereichen.
Weitere wichtige Verbesserungen
Neben den großen Features gibt es viele weitere nützliche Updates:
- Erweiterte Hardware-Unterstützung: Sage und schreibe 96 neue Boards und 22 neue Shields werden jetzt unterstützt, darunter viele neue RISC-V-Boards
- Stabile Zbus-API: Die Zbus-Bibliothek für die synchrone Kommunikation zwischen Threads hat die Version 1.0.0 erreicht und gilt nun als stabil.
- Bluetooth Classic HFP: Das Hands-Free Profile (HFP) wurde für Bluetooth Classic hinzugefügt, sowohl für Audio Gateway (AG) als auch für Hands-Free (HF) Rollen.
- viele neue Code-Beispiele und Treiber für alle möglichen Anwendungsgebiete
- Einfacheres Devicetree-Debugging: Die
zephyr.dts
-Datei enthält jetzt Kommentare, die die Quelle jedes Knotens anzeigen, was die Fehlersuche erheblich erleichtert.
/ {
#address-cells = < 0x1 >; /* in zephyr/dts/common/skeleton.dtsi:10 */
#size-cells = < 0x1 >; /* in zephyr/dts/common/skeleton.dtsi:11 */
model = "Wio Terminal"; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:15 */
compatible = "seeed,wio-terminal"; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:16 */
/* node '/chosen' defined in zephyr/dts/common/skeleton.dtsi:12 */
chosen {
zephyr,flash-controller = &nvmctrl; /* in zephyr/dts/arm/atmel/samd5x.dtsi:52 */
zephyr,entropy = &trng; /* in zephyr/dts/arm/atmel/samd5x.dtsi:51 */
zephyr,sram = &sram0; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:19 */
zephyr,flash = &flash0; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:20 */
zephyr,code-partition = &code_partition; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:21 */
zephyr,display = &ili9341; /* in zephyr/boards/seeed/wio_terminal/wio_terminal.dts:22 */
zephyr,console = &board_cdc_acm_uart; /* in zephyr/boards/common/usb/cdc_acm_serial.dtsi:9 */
zephyr,shell-uart = &board_cdc_acm_uart; /* in zephyr/boards/common/usb/cdc_acm_serial.dtsi:10 */
zephyr,uart-mcumgr = &board_cdc_acm_uart; /* in zephyr/boards/common/usb/cdc_acm_serial.dtsi:11 */
zephyr,bt-mon-uart = &board_cdc_acm_uart; /* in zephyr/boards/common/usb/cdc_acm_serial.dtsi:12 */
zephyr,bt-c2h-uart = &board_cdc_acm_uart; /* in zephyr/boards/common/usb/cdc_acm_serial.dtsi:13 */
};
}
Die kontinuierliche Erweiterung der Hardware-Unterstützung und die Stabilisierung wichtiger APIs wie Zbus zeigen das Engagement der Community, Zephyr zu einer robusten und vielseitigen Plattform für die Embedded-Entwicklung zu machen.

Fazit
Zephyr OS 4.2 ist ein Release, das die Plattform an vielen Fronten voranbringt. Die Unterstützung für die Renesas RX-Architektur öffnet Zephyr die Tür zu neuen Anwendungsfeldern, während Features wie UVC und der Power Harness Entwicklern mächtige Werkzeuge an die Hand geben.
Weitere Informationen findest du in der offiziellen Ankündigung auf der Zephyr Project Webseite und in den detaillierten Release Notes.
Wir haben auch einen Blogpost zum Einstieg in Zephyr OS geschrieben: Erste Schritte in Zephyr OS.
Viel Spaß beim Entwickeln! Im Blogpost zum Update v4.2 bei Zephyr Project findet ihr auch ein Video, das alles erklärt. Wir sind aber Text-Fuzzis, also läuft es hier nicht, sondern da.