Arduino-Updates: Neuer ESP32-Core, aktualisierte Version von Arduino CLI

Wer seine Software unter Nutzung der Arduino-Programmierumgebung realisiert, darf sich auf Anpassungen freuen: Breaking Changes an der Arduino CLI erfordern Anpassungen vorhandener Buildskripte, während der ESP32-Kern neue Varianten von Espressifs kombinatorischem Mikrocontroller zu unterstützen weiß.

von Tam HANNA

Worum geht es hier?

Die auf dem Wiring-Programmiersystem basierende Arduino IDE hat sich im Laufe der letzten Jahre als eine Art Cross-Plattform-Standard im Bereich der Mikrocontroller etabliert. Die nach der Einleitung des Projekts festgelegten Designentscheidungen erwiesen sich teilweise als suboptimal, weshalb man seither an Optimierungen arbeitet. Einige davon wollen wir in diesem Artikel kurz vorstellen.

ESP32 ohne ESP-IDF

Wer die maximale Leistung von Espressif-Mikrocontrollern in Anspruch nehmen möchte, setzt seit Jahr und Tag auf die als ESP-IDF bezeichnete Programmierumgebung. Diese mag durchaus komfortabel sein – insbesondere im Makerbereich schätzt man die Arduino-Umgebung allerdings ob ihrer Möglichkeit, unterm Strich doch kompakteren Code zu generieren.
Der ESP 32 wird dabei seit einiger Zeit durch ein als Arduino-ESP32 bezeichnetes Modul unterstützt, das seit dem 1. September in Version 2.0 verfügbar ist.
Die mit Abstand wichtigste Neuerung der moderneren Variante ist, dass die im Hintergrund arbeitende Version von ESP-IDF aktualisiert wurde. Nutzte die Version 1.X des Arduino-ESP-Plugins ESP-IDF noch in Version 3.3, so vollzieht die „neueste“ Version die in ESP-IDF erfolgten Neuerungen nach und basiert auf einer brandaktuellen Version. Das ist relevant, weil es Unterstützung für ESP32-S2, ESP32-C3 und ESP32-S3 ermöglicht – wie unter https://www.mikrocontroller.net/topic/523923#new beschrieben ist sind diese neueren Versionen des Chips nur für IDF-Versionen ansprechbar, deren Toolchain auf CMake basiert.
Spezifischerweise nennt Espressif im unter https://github.com/espressif/arduino-esp32/releases bereitstehenden Change Log folgende Verbesserungen:

1Support for ESP32S2.
2 Support for ESP32C3.
3 Upload over CDC.
4 Support for the KSZ8081 (Ethernet PHY).
5 LittleFS update for partition label and multiple partitions.
6 Added support for RainMaker.
7 BLE5 features for ESP32C3 (ESP32S3 ready).
8 ESPTOOL update.
9 Added FTM support.
10 Online Documentation added. See here.
11 USB MSC and HID support (ESP32S2 only).
12 UART refactoring (SerialHardware).
13 New examples.
14 Boards added.
15 Bugs fixed.

Änderungen auf Kommandozeile

Mit der Arduino CLI – hinter der Abkürzung verbirgt sich der Begriff Command Line Interface – steht seit einiger Zeit ein Werkzeug zur Verfügung, das die Auslösung von Build- und Deploymentprozessen auf Kommandozeilenebene erlaubt. Mit Version 0.19.0 führte das Entwicklerteam Änderungen an der inneren Struktur durch.
Neben Stabilitätsverbesserungen bringt die neue Version ein als Pluggable Discovery bezeichnetes Feature mit. Die unter https://arduino.github.io/arduino-cli/0.19/platform-specification/#pluggable-discovery im Detail beschriebene Programmierschnittstelle ermöglicht das Anmelden zusätzlicher Boards wie der Teensy-Serie, die sich zudem über neue Interfaces ansprechen lassen:

1. . . the possibility to support more and more boards (such as the Teensy), and also new ways of uploading to boards, like via WiFi, Bluetooth, SSH, CAN bus and anything that comes to mind . . .

Leider gingen diese Anpassungen an der Systemstruktur mit umfangreichen Änderungen im Verhalten der Werkzeuge einher. Die unter https://arduino.github.io/arduino-cli/0.19/UPGRADING/ bereitstehende Änderungsliste zeigt beispielsweise Veränderungen im Aufbau der von Kommandos zurückgelieferten JSON-Strings – wartet ein Skript auf eine bestimmte Ausgabezeile, so scheitert es nach dem Update.
Analoge Änderungen finden sich auch in der Go-Bibliothek, die die Einbindung bzw. Steuerung von Arduino-Deployments unter Nutzung der Programmiersprache Go erlauben.

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More