Forum: Mikrocontroller und Digitale Elektronik Arduino-Updates: Neuer ESP32-Core, aktualisierte Version von Arduino CLI


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

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:

1
Support for ESP32-S2. 
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:

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.


: Bearbeitet durch NewsPoster
von beta-tester (Gast)


Lesenswert?

ich habe das update von 1.0.6 auf 2.0.0 erst gesehen nachdem ich den, 
wohl veralteten, "Additional Boards Manager URL" link
von: "https://dl.espressif.com/dl/package_esp32_index.json"; auf: 
"https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"; 
geändert habe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.