Aktueller Stand ESP32-Arduino 2

Ein weiteres Bugfix-Release Arduino 2.0.8 wurde soeben veröffentlicht:

Werde es die nächsten Tage mal testen. Was super ist: Die optimierte Verzeichnisauflistung mit
getNextFileName(&isDir) nun offiziell enthalten!
Damit ist diese Optimierung auch nicht länger ein Hack. Wenn Alles wie gewünscht funktioniert werde ich dann einen PR dafür erstellen…

4 „Gefällt mir“

Konnte 2.0.8 jetzt mal testen aber es gibt neue Probleme. Durch diesen etwas ungeschickten Bugfix gibt es Fehler beim Komplieren. Ich habe das bereits in der PN5180 Bibliothek angepasst aber für RC522 müsste das der Autor übernehmen. Habe dazu auch ein Issue aufgemacht.
Ich sehe sowohl für 2.0.7 als auch 2.0.8 die ESP-IDF Version 4.4.4. Da hat sich also Nichts geändert.

Irgendwas ist immer - Also nur etwas für die frühen Vögel…

1 „Gefällt mir“

Beim RC522 ist halt die Frage, ob da was passiert. Er schreibt ja selbst im Repository

The development by owner miguelbalboa has ended.

Aber gut, das kann man zur Not auch forken und selbst anpassen.

1 „Gefällt mir“

Bzw, wir könnten auch die neue lib die verlinkt ist anschauen: GitHub - OSSLibraries/Arduino_MFRC522v2

Diese wird aber das gleiche problem mit 2.0.8 haben (zumindest bis espressif/arduino-esp32#8111 einfließt):

  // Get human readable code and type
  static const __FlashStringHelper *PICC_GetTypeName(PICC_Type type);
  static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

(minirant):
So ganz verstehe ich die Idee mit der Rückgabe von einem __FlashStringHelper * nicht, ich würde hier eher ein const String als Rückgabe erwarten (oder wenn es hardcore C sein soll const char* mit Warnung, dass es ein PROGMEM ist).
__FlashStringHelper ist in erster Linie ein Helper von String um zwischen const char * (liegt im RAM → String verwendet memcpy & co) und const PROGMEM char * (liegt in Flash → String verwendet memcpy_P & co). Das sieht man sehr schön in WString.cpp:170.

1 „Gefällt mir“

Die Regression mit diesem __FlashStringHelper hat wohl so genervt das es jjetzt noch ein neues Arduino-Release gibt:

Das wird wohl auch das letzte Arduino 2 Release (IDF 4.4) sein, die nächste Version 3 wird dann auf dem Espressif IDF 5 basieren. Bis dahin wird aber wohl noch einige Zeit vergehen.

Arduino 2 ist ja schon länger im DEV-Branch verfügbar und scheint reibungslos zu laufen, wer möchte kann es ausprobieren. Sobald es auch ein offizielles PlatformIO package gibt können wir dort die festgepinnten Bibliotheken wieder entfernen.

In den letzten Version 2.0.7-2.0.9 konnte ich auch keine schwankenden Web-Uploadraten mehr feststellen, meine Uploadgeschwindigkeit liegt dauerhaft bei ca. 450 KB/s

1 „Gefällt mir“

Oh, das klingt aber gut. D.h. wir haben jetzt einen gefixten Ringbuffer und dazu die schnellen Uploadraten von vorher?
Ich komme leider aktuell selbst nicht zum Testen, daher muss ich dumm fragen :woman_shrugging:.

Hi Torsten,

ich sage dazu erstmal: JA
Die Sache mit dem schwankenden Upload war ja immer etwas strange & schwer zu reprodzieren. Manchmal trat das einfach nach 5 Resets einfach so auf. Das habe ich aber nicht mehr gehabt. Insgesamt läuft Alles wie gewünscht & ich teste ja auch mit verschiedenen Platinen und Konfigurationen.

Hat noch wer Probleme mit Schwankungen/Einbruch der Uploadrate beim Hochladen aus der Web-UI?

3 „Gefällt mir“

Sommerloch-Info:

Neue & wohl letzte Runde: Arduino 2.0.10 ist veröffentlicht, ein kleines Bugfix Release basierend auf ESP-IDF 4.4.5.
Hab’s vorab getestet & es läuft Alles wie gewünscht. Sporadische Probleme mit WPA3 Verbindungen bestehen aber weiterhin:

[ 459 ]  Arduino version: 2.0.10
[ 470 ]  ESP-IDF version: v4.4.5
[ 3770 ][E][WiFiGeneric.cpp:1268] mode(): Could not set mode! 12289
[ 3770 ][E][WiFiSTA.cpp:299] begin(): STA enable failed!
[ 3801 ]  Versuche mit WLAN 'MyWLAN' zu verbinden...
[ 8564 ]  WLAN 'WLAN-89XPXA'gefunden (Signalstärke: -70 dBm, Kanal: 6, MAC-Adresse: C4:86:E9:43:F5:B8)
[ 8575 ]  WLAN 'MyWLAN'gefunden (Signalstärke: -72 dBm, Kanal: 1, MAC-Adresse: 98:9B:CB:AB:8B:63)
[ 8627 ]  WLAN 'Trenet'gefunden (Signalstärke: -89 dBm, Kanal: 6, MAC-Adresse: F4:06:8D:43:F3:8D)
[ 8723 ]  Versuche mit WLAN 'MyWLAN' zu verbinden...
[ 10673 ]  Verbunden mit WLAN 'MyWLAN' (Signalstärke: -71 dBm, Kanal: 1, MAC-Adresse: 98:9B:CB:AB:8B:63)
[ 10673 ]  Aktuelle IP: 192.168.178.72
[ 10685 ]  Synchronisiere Uhrzeit via NTP...

Ab & an öffnet sich der ESPuino dann auch im AP-Modus. Evt. müssen wir bei WPA3 Verbindungsherstellung noch länger warten oder aggressiver neu verbinden…

Wenn das dazugehörige Platform-IO Package veröffentlicht ist werde ich das zeitnah im DEV-Baranch verfügbar machen.

2 „Gefällt mir“

Haben wir eigentlich eine Möglichkeit, WPA3 zu blocken? Also im meinem Fall wäre das (vermutlich) eine feine Sache, ich habe jedoch auf die Schnelle nix gefunden.

Soweit ich weiß kann man in Arduino kann nur den minimalen Sicherheitslevel setzen, z.B.

WiFi.setMinSecurity(WIFI_AUTH_WPA2_PSK);

würde das unsichere WPA deaktivieren & erst Verbindungen ab WPA2 zulassen.

Um WPA3 komplett zu deaktivieren müsste man „Arduino als Komponente“ verwenden und z.B. CONFIG_WPA3_SAECONFIG_WPA3_SAE oder ein anderes Flag auskommentieren.

1 „Gefällt mir“

Da ich da so wie so nochmal dran weiterarbeite kann ich mir das auch gleich in diesem Zuge anschauen :slight_smile:

2 „Gefällt mir“

Bin etwas verwirrt: Unsere aktuelle Version des Packages ist größer, das Arduino darin aber kleiner?
Naja, dann warten wir am besten einfach noch auf ein neues Release :slight_smile:

2.0.10 wohl das letzte 2er Release, Version 3 ist in Arbeit und basiert dann auf ESP-IDF 5.0, das wird noch dauern & es wird ein „code-breaking“ Release sein.

Unsere aktuelle Version des Packages ist größer, das Arduino darin aber kleiner?

Meinst Du Programmgröße, RAM oder IRAM?
Jedes 2er Release hat etwas mehr IRAM geschluckt & wir sind da hart an der Grenze wenn alle Features einkompiliert werden sollen. Nur mit Mühe kann noch etwas IRAM in der FastLED Bibliothek freigeschaufelt werden. Mittelfristig funktioniert das dann nur noch über ein angepasstess Arduino-Build mt „Arduino als Komponente“.
Mein Vorschlag wäre diese Möglichkeit schon bald im DEV-Branch verfügbar zu machen, standardmäßig zunächst nicht aktiv. Nur wer Alles will kann das dann aktivieren über eine Zeile in der platform.ini…

Zur Vollständigkeit: ESP32-Arduino 2 wird bereits seit ein paar Wochen im Master-Branch verwendet: Neue Branch-Struktur.

3 „Gefällt mir“

Das Thema ist zwar schon etwas ausgelutscht aber es gibt noch Neuigkeiten:

PlatformIO hat Package 6.5.0 veröffentlicht, damit sind wir auf Arduino 2.0.14 bzw. ESP-IDF 4.4.6. Die Release Note sind eher mau für uns:

Schlechte Nachrichten für die Weiterentwicklung: PlatformIO / Espressif scheinen sich ums liebe Geld zu streiten und der PIO Support für Arduino 3 scheint zunächst eingestellt. Ob sich das noch ändert kann man noch nicht abschätzen. Den Thread dazu gibt es hier. Also Bemühungen Richtung Arduino 3 würde ich noch zurückstellen.

Wir können auch den Tasmota Core ins Auge fassen, wenn wir Arduino 3 Unterstützung brauchen. Spätestens ab Juli 2024 (bzw wenn IDF 4.x sein EOL erreicht) sollten wir zumindest mit den Tests starten :slight_smile:

Es gibt noch ein neues PlatformIO Package Version 6.6.7 mit kleineren Fixes.
Es basiert auf Arduino 2.0.16 bzw. ESP-IDF 4.4.7:

Sichtbar war für mich: Eine Warnmeldung weniger beim Build.

Das neue Package habe ich eingecheckt allerdings lief der Build nicht mehr durch, Fehler region "iram0_0_seg" overflowed by 520 bytes
Habe dann den Commit rückgängig gemacht, der Fehler bleibt aber. Habt Ihr eine Idee woran es liegen kann?

.pio Ordner mal gelöscht? Full clean gemacht?

Es geht um den automatischen Build/Test in Github, dieser läuft nicht mehr durch obwohl es rückgängig gemacht wurde. Siehe Bild oben

Ah verdammt nicht gesehen… :slight_smile:

vlt. hat die Pipeline sich da verschluckt…

  1. Lauf
    grafik

  2. Lauf
    grafik

Vielleicht mal einfach neu starten?