Umstieg auf Arduino 3.x

Ardiuino 3 ist offiziell:

Es ist noch nicht ganz klar ob es von PIO offiziell unterstützt wird da es wohl einen Disput zwischen Espressif und PlatformIO gibt/gab. Die ewig lange Diskussion dazu findet Ihr hier. Ich gehe mal davon aus das man sich noch einigt.

Ich möchte Euch zeigen wie Ihr Arduino 3 mit ESPuino zum Laufen bekommt:

Aktueller DEV-Branch, platformio.ini::

[env]
;   platform = espressif32@^6.7.0
;   framework = arduino, espidf
platform = espressif32
framework = arduino
platform_packages = 
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0
    platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1

lib_deps =
	https://github.com/schreibfaul1/ESP32-audioI2S.git#8e8a637 ;27.05.2024
    https://github.com/FastLED/FastLED.git#4444758
;	https://github.com/tueddy/FastLED.git#3.6.0_IRAM ;save some IRAM to compile with all features (https://github.com/FastLED/FastLED.git@3.6.0)
;	https://github.com/me-no-dev/ESPAsyncWebServer.git#1d46269
;	https://github.com/me-no-dev/AsyncTCP.git#ca8ac5f
    https://github.com/mathieucarbou/ESPAsyncWebServer.git
;	https://github.com/pschatzmann/ESP32-A2DP.git#bb5bc2f

Also neues Framework eintragen und einige Bibliotheken aktualisieren (FastLED, Webserver) und Bluetooth auskommentieren.
In settings.ini Bluetooth und MQTT deaktivieren.
Es gibt dann noch einen Compilerfehler in mqtt.cpp, hier die Methode

bool publishMqtt(const char *topic, uint32_t payload, bool retained)

auskommentieren. Dann sollte es kompilieren und erfolgreich starten:

Was bereits funktioniert:
Buttons, Drehenkoder, Musik abspielen, Neopixel, aktualisierter Webserver

Was noch nicht läuft:
Arduino als Komponente, MQTT, Bluetooth

Gerne mal antesten & Meinungen hier!

2 „Gefällt mir“

Im aktuellen DEV-Branch kann man nun recht einfach zwischen Arduino 2/3 umschalten.
Dazu müssen diese Zeilen in der platform.ini angepasst werden:

;platform = espressif32@^6.9.0 ; Arduino 2.0.17
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip ; Arduino 3.0.5

Zusätzlich müssen noch diese Zeilen aktiviert werden:

board_build.embed_txtfiles =
    managed_components/espressif__esp_insights/server_certs/https_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_mqtt_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_claim_service_server.crt
    managed_components/espressif__esp_rainmaker/server_certs/rmaker_ota_server.crt

Nach einem Full-Clean + Build sollte im Log/Weboberfläche die Arduino Version 3.0.5 erscheinen.

Wäre schön, wenn ihr Arduino 3 mal testen könntet & eure Erfahrungen hier teilt.
Also Funktionstest, Bugs, Speicherverbrauch usw.

Einen guten Start in die Woche!

3 „Gefällt mir“

mqtt läuft mit einem einfachen fix mit Arduino 3.
Habe einen MR erstellt. Sollte auch Rückwärtskompatibel sein.

Muss mich selbst erst noch bisschen in MQTT einarbeiten, dann schau ich mir das gerne auch noch näher an…

1 „Gefällt mir“

Also MQTT sieht ok aus. Ich habe jetzt nicht jedes Topic getestet, aber das, was ich getestet habe, klappt. Gab auch keine Fehler beim Kompilieren. Muss es nochmal mit Arduino2 testen.

@tueddy Ich komme mir gerade noobmäßig vor, aber mit Arduino 3 kommt keine Audiowiedergabe aus dem Lautsprecher. Der Rest klappt.

EDIT: Ok, muss was Anderes sein. Unter Arduino2 geht’s auch nicht :rofl:.

Na das klingt doch gut! Audioausgabe macht bei mir keine Probleme.
Auch Bluetooth Lautsprecher/Kopfhörer funktioniert. Wüsste jetzt nicht was noch fehlt für einen Umstieg auf Arduino 3.

Ja irgendwie war es ein Problem mit der mini4L.
Beim Upgrade auf A3 musste ich .pio/build/lolin_d32_pro_sdmmc_pe löschen, da sich cmake beschwert hat, dass da schon was existiert. Ein Full clean hat das nicht behoben.

Ich finde wir können auf dev schon auf Arduino 3 umstellen (es funktioniert eigentlich fast alles) auch einfach weil es die Zukunft ist und wir uns auf dem dev-branch nicht künstlich einschränken sollten durch das Verwalten von zwei Versionen.
Wenn wir dort den Wechsel machen, dann bekommen wir auch automatisch die bessere Testtiefe und können mit aktuellen Libs uns um Probleme kümmern, anstatt immer wieder hin und her zu wechseln und Dinge doppelt zu fixen.
Wenn dann alles wirklich stabil ist und die neuen Funktionen gut getestet sind können wir irgendwann auch Arduino 3 wieder in den main bringen, aber genau dafür haben wir ja auch dev und main mal angelegt :slight_smile: .
Probleme sollten aber meiner Meinung nach eher auf Arduino 3 gelöst werden.

4 „Gefällt mir“

Konnte in letzter Zeit sehr häuftig und ohne Probleme zwischen den zwei Versionen wechseln. Aber manchmal ist das wirklich bisschen zickig die IDE mit platformio :slight_smile:

Nachdem MQTT nun auch funktioniert, werde ich nach den Feiertagen mal den DEV Branch auf Arduino 3 umstellen, aus meiner Sicht spricht nichts mehr dagegen.

7 „Gefällt mir“

Der Entwicklungszweig 20250505-1-DEV ist jetzt standardmäßig auf Arduino 3:

  • Wechsel zu Arduino 3.2.0 (ESP-IDF 5.4.1)
  • AudioI2S-Bibliothek Version 3.1.0 (07.01.2025)

Falls Probleme beim Compilieren auftreten: Evt. hilft auch das Löschen des .pio Verzeichnis im ESPuino Ordner. Danach Full-Clean + Build.

Viel Spaß beim Testen!

5 „Gefällt mir“

Ich fürchte, wir haben mit A3 wieder ein altbekanntes Problem an board. Ich bin das eben gerade ein bisschen am Testen und leider tritt jetzt wieder das Problem auf, dass LEDs auf dem Neopixel „wild“ blinken. Ich glaube als Ghost-LEDs oder so hatte ich das in der Vergangenheit mal bezeichnet. Das tritt nicht sofort auf, sondern wenn ein Track ich sage mal so 40 % etwa gelaufen ist. Also halt in der Progress-Anzeige. Im Pause-Modus zB sehe ich das nicht.

Kann das jmd nachstellen? 24 Leds habe ich hier.

Mir ist bislang kein Flackern aufgefallen, hier auch 24er Neopixel & Standard-Einstellungen. Teste es am Wochenende nochmal..

Bei mir tritt das unabhängig von Arduino 2 oder 3 gelegentlich Mal auf, hatte da aber noch nicht tiefer reingeschaut.
Zuletzt hatte ich es auf 3 nicht mehr, habe aber bei mir gerade auch paar Änderungen bezüglich des RFID-Task aktiv an denen ich teste.