Arduino IDE Fehler „Failed to update esp32“ beheben – so geht’s

Wer mit der Arduino IDE und ESP32-Boards arbeitet, stößt früher oder später möglicherweise auf einen frustrierenden Fehler beim Installieren oder Aktualisieren der ESP32-Plattform. Der Update-Vorgang bricht dabei plötzlich ab und die Arduino IDE meldet, dass die Installation fehlgeschlagen ist. Besonders ärgerlich ist dies, da der Fehler auf den ersten Blick oft schwer nachvollziehbar erscheint und das Arbeiten mit dem ESP32 unmöglich macht.

Fehlermeldung

Die typische Fehlermeldung lautet dabei oftmals wie folgt:

Failed to update esp32. Error: 4 DEADLINE_EXCEEDED: net/http: request canceled (Client.Timeout or context cancellation while reading body)

oder auch:

Failed to install platform: „esp32:esp32:3.3-6-RC1′. Error: 4 DEADLINE_EXCEEDED: net/http: request canceled (Client. Timeout …

Der Grund für diesen Fehler ist in der Regel ein zu langsamer Download. Während die Arduino IDE versucht, die benötigten Dateien aus dem Internet zu laden, überschreitet der Download die erlaubte Zeitspanne und es kommt zu einem sogenannten Timeout. Infolgedessen wird der Vorgang automatisch abgebrochen. Dies kann sowohl an einer langsamen oder instabilen Internetverbindung liegen als auch daran, dass der entsprechende Update-Server stark ausgelastet ist und die Daten nur verzögert bereitstellt.

 

Problem beheben

Um das Problem dauerhaft zu beheben, muss die erlaubte Downloadzeit in der Konfiguration der Arduino IDE erhöht werden. Dafür wird die Datei „arduino-cli.yaml“ angepasst, welche die Netzwerkeinstellungen der Arduino CLI enthält. Diese Datei kann mit einem einfachen Texteditor oder einem Code-Editor wie Visual Studio Code geöffnet werden.

Windows Nutzer finden diese Datei unter dem Pfad:

C:\Users\<username>\.arduinoIDE\arduino-cli.yaml

Nutzer von macOS finden die entsprechende Datei dagegen im Verzeichnis (der Arduino-Ordner ist unsichtbar, ihr müsst daher eventuell zunächst das Anzeigen von unsichtbaren Dateien zulassen):

/Users/<username>/.arduinoIDE/arduino-cli.yaml

Nach dem Öffnen der Konfigurationsdatei sollte überprüft werden, ob ein Abschnitt mit dem Eintrag „network:“ sowie dem Parameter „connection_timeout“ vorhanden ist. Falls dieser Abschnitt noch nicht existiert, kann er wie folgt manuell ergänzt werden.

network:
	connection_timeout: 1000s

Dabei wird der Wert für „connection_timeout“ auf „1000s“ gesetzt. Ist der Eintrag bereits vorhanden, genügt es, den bestehenden Wert entsprechend zu erhöhen und ebenfalls auf 1000 Sekunden festzulegen.

Durch diese Anpassung wird die maximal erlaubte Dauer für Downloads deutlich verlängert. Dadurch erhält die Arduino IDE genügend Zeit, um die ESP32-Plattform auch bei langsamen Verbindungen oder stark ausgelasteten Servern vollständig herunterzuladen. Nach dem Speichern der Datei und einem Neustart der Arduino IDE sollte das Update in der Regel ohne weitere Probleme durchgeführt werden können.

Kommentare

8 Kommentare zu “Arduino IDE Fehler „Failed to update esp32“ beheben – so geht’s”

  1. Diego Maciel sagt:

    Thank you! This trick saves me!

  2. Joachim Kiehl sagt:

    hallo,
    nach diesem Eintrag startet Arduini IDE nicht mehr.
    Was kann ich noch machen.

    • Naumann sagt:

      möglicherweise etwas geduldig sein?

      • Rüdiger Naumann sagt:

        Arduino startete auch bei mir nicht nach zwei Tagen Geduldsprobe.
        Warum weis ich nicht und habe kurzerhand den Eintrag entfernt und nun kommt das Programm wieder hoch.
        SCHLECHTER TIPP!!

        • Stefan sagt:

          Es ist wichtig den Eintrag nicht doppelt zu haben. Falls der network-Eintrag bereits existiert muss lediglich die Anzahl der Sekunden angepasst werden – ansonsten kann die Arduino IDE nicht mehr starten.

          Mit anderen Worten – es muss sichergestellt sein, dass in der Konfigurationsdatei nur einmal der Eintrag:

          network:
          connection_timeout: 1000s

          vorhanden ist. Dann funktioniert es auch.

  3. Roland Dörrmann sagt:

    Bei mir startet Arduino auch nicht mehr 2.3.7

    • Stefan sagt:

      Dann den Befehl wieder löschen und nochmal überprüfen ob der Eintrag wirklich nur einmal in dieser Datei vorhanden ist.

      • Roland Dörrmann sagt:

        ich habe den Fehler gefunden.
        ich habe den Eintrag per Copy und Paste übernommen.
        Vor connection_timeout war ein gesetzt.
        ich habe den durch Leerzeichen ersetzt- dann hat es mit 120s funktioniert.
        Danke für die Hilfe
        Roland

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* gesponserter Link
Blogverzeichnis - Bloggerei.de