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:
2 • Support for ESP32–C3.
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 ESP32–C3 (ESP32–S3 ready).
8 • ESPTOOL update.
9 • Added FTM support.
10 • Online Documentation added. See here.
11 • USB MSC and HID support (ESP32–S2 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:
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