# Umstieg auf ESP32-Arduino 2.x

**URL:** <https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685>\
**Category:** Software\
**Created:** [4. November 2021 um 00:25 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685 "2021-11-04T00:25:57Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [14. Dezember 2021 um 21:55 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/21 "2021-12-14T21:55:54Z")

</div>

Es gab heute ein größeres Update im Arduino master, hatte gehofft das die WLAN Verbindungsprobleme behoben sind, vor allem [hier](https://github.com/espressif/arduino-esp32/commit/f5b04b919777c8b7305260cc3e8f5a6e4aede803) und [hier](https://github.com/espressif/arduino-esp32/commit/40a5c1e46193eb19a146375d40b17ed75fc07275). Es kompiliert aber die WLAN Verbindung ist genauso schlecht wie im 2.0.1 release. Da müssen wir wohl noch warten bis das wieder klappt.  
Um sicher zu sein das hier wirklich das aktuelle IDF verwendet wird habe ich in main.cpp die Ausgabe

```auto
    Serial.print(F("ESP-IDF-version (major): "));
    Serial.println(ESP_IDF_VERSION_MAJOR);
    Serial.print(F("ESP-IDF-version (minor): "));
    Serial.println(ESP_IDF_VERSION_MINOR);

```

ersetzt durch

```auto
Serial.println("ESP-IDF version: " + String(esp_get_idf_version()));

```

Dann kommt das kürzer und genauer raus:

```auto
ESP-IDF version: v4.4-beta1-183-gf23dcd3555

```

@biologist evt. kannst Du das in einem der nächsten Update ersetzen.

Fazit: Umzug noch nicht reif, abwarten und Tee trinken…

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [14. Dezember 2021 um 22:15 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/22 "2021-12-14T22:15:52Z")

</div>

> [@tueddy](#):
>
> Es kompiliert aber die WLAN Verbindung ist genauso schlecht wie im 2.0.1 release

Was genau ist schlecht?

Beim Starten von ESPuino wird ja ein Timeout für WLAN verwendet. Im Arduino Core gab es längere Zeit einen Bug, sodass nicht alle Kanäle gescannt wurden, um sich mit dem stärksten WLAN zu Verbinden. Aktuell wird das aber nun gemacht und damit braucht die initiale Verbindung deutlich länger. Eventuell hilft da schon das Erhöhen des Timeouts.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [14. Dezember 2021 um 22:32 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/23 "2021-12-14T22:32:49Z")

</div>

Ja Timeout habe ich erhöht auf 15 Sekunden. Alle Verbindungen in der FritzBox vorher gelöscht. Es kommt keine WLAN-Verbindung zustande, ESPuino wechselt dann in AP Modus, Reset, Neueingabe der WLAN Zugangsdaten hilft auch nicht… Kurzum ich kann keine Verbindung herstellen. Wechsel zurück auf 1.0.6: Verbindung ist sofort da (\<2 Sekunden). Hast Du den Master ausprobiert? Klappt das bei Dir?

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [14. Dezember 2021 um 23:03 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/24 "2021-12-14T23:03:01Z")

</div>

Bezogen auf ESPuino habe ich es noch nicht getestet, aber ich habe aktuell ESP-IDF 4.4 beta1 und Arduino als Komponente (master von heute) für ein anderes Projekt vor mir. Dort läuft Wifi ohne Probleme mit einem Unifi AP. Wir benutzen Wifi allerdings explizit ohne den Flash Storage vom Wifi-Treiber. Das könnte auch noch einen Unterschied machen. Dafür ruft man „WiFi.persistent(false);“ vor den anderen WiFi-Funktionen auf. Wer weiß schon, was er sich für zuvor gespeicherte Informationen aus dem Flash zaubert.

---

<div class="post-metadata">

**Author:** ![biologist](https://forum.espuino.de/user_avatar/forum.espuino.de/biologist/32/66_2.png) [@biologist](https://forum.espuino.de/u/biologist)\
**Post date:** [15. Dezember 2021 um 07:52 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/25 "2021-12-15T07:52:28Z")

</div>

> [@tueddy](#):
>
> @biologist evt. kannst Du das in einem der nächsten Update ersetzen.

Klar, kann ich eintragen.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [5. Januar 2022 um 22:03 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/26 "2022-01-05T22:03:33Z")

</div>

Mittlerweile ist [Arduino 2.0.2](https://github.com/espressif/arduino-esp32/releases/tag/2.0.2) veröffentlicht, bringt aber leider keine Verbesserungen im Wifi-Bereich. Es bringt wohl auch einen neuen [Bug](https://github.com/espressif/arduino-esp32/issues/6078) bei der SD-Ansteuerung mit.

@tuniii Habe hier wirklich Alles probiert, NVS gelöscht, mehrfach neu verbunden. Hatte auch einen neues jungfräuliches Board sowie neben meinen TTGO-T18 Board jetzt auch einen Lollin-D32 Pro angehängt.

Die WIFI-Verbindung ist mit Arduino 2.x in diesem Projekt nicht akzeptabel zu 1.06.

Selbst wenn es sich mit dem Router verbindet ist die Performance sehr schlecht. Also aus meiner Sicht ist das Release leider noch nicht reif. Mal schauen was da noch so kommt…

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [6. Januar 2022 um 21:01 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/27 "2022-01-06T21:01:36Z")

</div>

> [@tueddy](#):
>
> Die WIFI-Verbindung ist mit Arduino 2.x in diesem Projekt nicht akzeptabel zu 1.06.

Auch mit einem simplen Wifi-Sketch, oder hast du das nur mit ESPuino getestet?

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [6. Januar 2022 um 21:11 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/28 "2022-01-06T21:11:03Z")

</div>

Ich habe das bisher tatsächlich nur mit dem ESpuino Code getestet, denn da ist es ja entscheidend.

Aber da ich das hier reproduzierbar habe kann ich das die nächsten Tage auch einmal mit dem Minimal Sketch ausprobieren und berichten…

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [9. Januar 2022 um 21:07 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/29 "2022-01-09T21:07:14Z")

</div>

Ich konnte die Wifi-Verbindungsprobleme nun endgültig lösen mit diesem Arduino [Fix/PR](https://github.com/espressif/arduino-esp32/pull/6113). Verbindungsaufbau dann genauso gut wie in 1.0.6. Bei mir \< 3Sek und stabil. Der Fix wird wohl auch bald in einem offiziellen Release erscheinen.  
@tuniii wundert mich warum die Probleme bei Dir nicht auftreten. Du verwendest ja Arduino als Komponente, sollte da nicht der gleiche Code für den Verbindungsaufbau verwendet werden? Aber vielleicht liegt es ja auch am Router, hier eine FRITZBox 7590 mit ca. 10m Entfernung, RSSI recht gut da Altbau und kein Beton dazwischen…

Was noch bleibt ist die schlechtere SD Geschwindigkeit. Komme hier nicht über 180KB/s im SD\_MMC Modus hinaus. Habe auch diesen [Fix](https://github.com/espressif/arduino-esp32/pull/6103) eingespielt, da war auch noch was vermurkst. Das ist aus meiner Sicht noch ein Showstopper für einen Umstieg. @biologist hatte die gleich Messung, wie könnte man das noch lösen?

---

<div class="post-metadata">

**Author:** ![biologist](https://forum.espuino.de/user_avatar/forum.espuino.de/biologist/32/66_2.png) [@biologist](https://forum.espuino.de/u/biologist)\
**Post date:** [9. Januar 2022 um 22:31 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/30 "2022-01-09T22:31:23Z")

</div>

@tueddy Da muss ich dir jetzt echt mal ein großes Danke aussprechen, dass du die ganze Zeit bei den Neuigkeiten so am Ball bleibst und das hier immer berichtest 👍 👍 👍 .

> [@tueddy](#):
>
> Das ist aus meiner Sicht noch ein Showstopper für einen Umstieg. @biologist hatte die gleich Messung, wie könnte man das noch lösen?

Wenn man den Webtransfer macht, dann landet das ja über einen Ringpuffer auf der SD. Der Ringpuffer ist zum Schreibzeitpunkt immer sehr unterschiedlich gefüllt. Hier hatte ich ja mal die Idee aufgeworfen (auch im Zuge der spontanen Schreibabbrüche bei SPI-SD), dass man hier schaut, dass man immer mindestens 4k im Ringpuffer hat, so dass man immer 4k-Blöcke schreiben kann. Keine Ahnung ob das was ändert, aber wäre ggf. ein Ansatz. Ich hatte mir das immer vorgenommen zu entwickeln, aber final dann doch nie umgesetzt.  
Sonst habe ich spontan keine Ideen. Vielleicht hat @tuniii ja noch welche.

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [10. Januar 2022 um 18:59 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/31 "2022-01-10T18:59:41Z")

</div>

> [@tueddy](#):
>
> @tuniii wundert mich warum die Probleme bei Dir nicht auftreten.

Ja, der Code ist der gleiche, aber das Problem wird wohl netzwerkspezifisch sein. Wenn es ein generelles Problem wäre, dann hätte es der Bug vermutlich nicht in das Release geschafft.

Hast du irgendwo einen Branch mit deinen Änderungen (Upgrade auf den neuen Core)? Ich würde mir gerne mal den Stand anschauen.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [10. Januar 2022 um 19:29 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/32 "2022-01-10T19:29:01Z")

</div>

@tuniii ich verwende den originalen ESPuino Code und wechsle von Arduino 1.0.6 auf 2.0.2 nur durch umschalten dieser Zeilen in der Platform.ini von 1.0.6

```auto
[env]

platform = espressif32 
;platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream

platform_packages =
	;platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git
	platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#1.0.6

```

auf 2.0.2/master:

```auto
[env]

;platform = espressif32 
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream

platform_packages =
	platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git
	;platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#1.0.6

```

Den noch austehenden [Fix](https://github.com/espressif/arduino-esp32/pull/6113) für Wifi habe ich direkt im 2.0.2 Core eingebaut, danach klappt der Verbindungsaufbau auch wieder zuverlässig.  
Ich habe in der FritzBox 7590 die Verschlüsselung WPA3/WPA2 eingestellt. Neuere Geräte verbinden sich mit WPA3, ältere mit WPA2. Evt. ist das die Ursache? Ich meine aber das testweise auf reines WPA2 umgestellt zu haben…

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [11. Januar 2022 um 20:50 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/33 "2022-01-11T20:50:11Z")

</div>

Ich hab nun mal mit dem Arduino Core 2.0.2 (master) getestet.

- NeoPixel bleibt dunkel

- Das Abspielen von Musik verursacht einen Reset. Vermutlich wird das durch deine Änderung bezüglich SdCard.cpp oben behoben.

- Bei Wifi mit Timeout-Loop auf 20 starte ich sporadisch im AP, ansonsten funktioniert Wifi. Aber die häufigen Verbindungsabbrüche beim Testen mag der AP nicht unbedingt und daher kann das auch der Grund sein, warum ich sporadisch mit AP starte.

- Bei einem reinen Schreibtest komme ich mit MMC auf: Alter Core 404 kByte/s, neuer Core 440 kByte/s

- Bei einem reinen Wifi-Durchsatz-Test, ohne die Daten rauszuschreiben: Alter Core 361 kByte/s, neuer Core: 260 kByte/s

- Upload-Test über HTTP: Alter Core: 332 kBytes/s, neuer Core 229 kByte/s. Beide ca. 30 kByte/s unter dem Wifi-Durchsatz.

Der Wifi-Durchsatz scheint wohl beim neuen Core das Problem zu sein. Wie sieht es bei dir beim NeoPixel aus? Bleibt der auch dunkel?

Der neue Core bringt wohl so einige Probleme mit sich.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [16. Januar 2022 um 16:36 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/34 "2022-01-16T16:36:13Z")

</div>

Hat ein wenig gedauert bis ich das jetzt erneut testen konnte mit

```auto
ESP-IDF version: v4.4-beta1-189-ga79dc75f0a

```

Der NeoPixel läuft einwandfrei, ich verwende FastLED mit dem aktuellen Release 3.5.0

---

<div class="post-metadata">

**Author:** ![biologist](https://forum.espuino.de/user_avatar/forum.espuino.de/biologist/32/66_2.png) [@biologist](https://forum.espuino.de/u/biologist)\
**Post date:** [16. Januar 2022 um 16:55 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/35 "2022-01-16T16:55:16Z")

</div>

3.5.0 habe ich die Tage bereits gepinnt.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [19. Januar 2022 um 21:06 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/36 "2022-01-19T21:06:32Z")

</div>

Hatte jetzt mal wieder Zeit den aktuellen Master zu testen,  
die Wifi-Verbindungsprobleme und SD-Karten Bugs sind behoben.

```auto
ESP-IDF version: v4.4-beta1-308-gf3e0c8bc41

```

Das klappt Alles soweit. Der Wifi Durchsatz ist immer noch nicht das gelbe vom Ei, konnte aber die grottenschlechte Performance beim Web-Upload nicht mehr nachstellen: Die Vergleichsmessung Web-Upload einer 10MB Datei:

1.0.6: 9556012 bytes in 37632 ms ( **253 kB/s** )  
2.0.2 master: 9556012 bytes in 42208 ms ( **226 kB/s** )

Evt. wurde zugunsten des freien Speicherplatzes die Wifi-Konfiguration geändert? Habe dazu diese [Dokumentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/api/wifi.html) gefunden und gleich mal `Wifi.useStaticBuffers(true)` ausprobiert - mit mauen Ergebnis:  
ohne: 226 kB/s  
mit: 231 kB/s, ca. 20KB mehr Speicherverbrauch  
@tuniii kennst Du Dich mit der Wifi-Konfiguration aus?

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [20. Januar 2022 um 21:12 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/37 "2022-01-20T21:12:31Z")

</div>

> [@tueddy](#):
>
> 1.0.6: 9556012 bytes in 37632 ms ( **253 kB/s** )  
> 2.0.2 master: 9556012 bytes in 42208 ms ( **226 kB/s** )

MMC oder SD?

> [@tueddy](#):
>
> @tuniii kennst Du Dich mit der Wifi-Konfiguration aus?

Nicht im Detail. Ich habe bisher auch nur die Arduino-Funktionen verwendet. Es muss aber auch nicht unbedingt direkt an Wifi liegen, sondern kann auch an der Verarbeitung der entsprechenden Protokolle wie TCP liegen.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [20. Januar 2022 um 21:59 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/38 "2022-01-20T21:59:00Z")

</div>

Ich verwende nur SD\_MMC. Da ist die Performance auch wieder in Ordnung.

Hatte nochmal die korrekte Anwendung von ` Wifi.useStaticBuffers(true)` überprüft (Aufruf vor Wifi.begin), das bringt so 5-10 KB/s:

```auto
useStaticBuffers¶

This function is used to set the memory allocation mode for the Wi-Fi buffers.

static void useStaticBuffers(bool bufferMode);

    Set true to use the Wi-Fi buffers memory allocation as static.

    Set false to set the buffers memory allocation to dynamic.

The use of dynamic allocation is recommended to save memory and reduce resources usage. 
However, the dynamic performs slightly slower than the static allocation. 
Use static allocation if you want to have more performance and if your application is multi-tasking.

By default, the memory allocation will be set to dynamic if this function is not being used.

```

Reicht abeer nicht an die Geschwindigkeit von Arduino 1.0.6 heran. Auch spielen mit den Prioritäten zwischen WebServer- und SD-Task brachte keine Ergebnisse. Bin da erstmal mit meinem Latein am Ende…

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [5. Mai 2022 um 08:39 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/39 "2022-05-05T08:39:25Z")

</div>

Es gibt ein neues Arduino Release:

> **[Release ESP32 Arduino 2.0.3 based on ESP-IDF 4.4.1 · espressif/arduino-esp32](https://github.com/espressif/arduino-esp32/releases/tag/2.0.3)**
>
> Arduino ESP32 Version 2.0.3
> The Arduino ESP32 version 2.0.3 based on the ESP-IDF v4.4 introduces the support for the ESP32-S3, new boards support, new APIs and refactoring improvements, and bug fix...

WiFi & SD-Kartenprobleme sind behoben, es kompiliert Alles fein.  
Der Wifi-Durchsatz ist aber immer noch unterirdisch:

```auto
2.0.3:

ESP-IDF version: v4.4.1-1-gb8050b365e
3956316 bytes in 27169 ms (145 kB/s)
6346838 bytes in 34402 ms (184 kB/s)

```

2.0.3 mit WiFi.useStaticBuffers(true):

```auto
3956316 bytes in 24857 ms (159 kB/s)
6346838 bytes in 32772 ms (193 kB/s)

```

Unsere aktuelle Version 1.0.6:

```auto
ESP-IDF version: v3.3.5-1-g85c43024c
3956316 bytes in 16301 ms (242 kB/s)
6346838 bytes in 26726 ms (237 kB/s)

```

Also keine Verbesserungen ☹

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [19. August 2022 um 21:43 UTC](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685/40 "2022-08-19T21:43:44Z")

</div>

Ich habe mal das aktuelle Arduino Release 2.0.4 getestet und komme bei gleichen Testbedingungen wie zuvor auf sehr gute Web-Upload Raten:

```auto
Arduino 2.0.4 (PlatformIO Package 5.1.0):

ESP-IDF version: v4.4.1-472-gc9140caf8c
3956316 bytes in 10521 ms (376 kiB/s)
2557616 bytes in 7253 ms (352 kiB/s)
6346838 bytes in 16536 ms (383 kiB/s)

```

In Platform.ini dies eintragen:

```auto
[env]
platform = espressif32@<=5.1.0
;platform = espressif32@<=3.5.0

```

Die Bremse aus den letzten 2.x Releases scheint raus zu sein. Ich komme jetzt auch auf etwas höhere Upload-Raten als 1.0.6. Mit `WiFi.useStaticBuffers(true);` habe ich sogar über 400kB/s erreicht.

Kann jemand die verbesserte WiFi-Performance bestätigen?

[Vorherige Seite](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685.md?page=1)

[Nächste Seite](https://forum.espuino.de/t/umstieg-auf-esp32-arduino-2-x/685.md?page=3)
