Bei Problemen - ESP8266/ESP8285 Flash-Speicher Löschen

  • In diesem Abschnitt findet man Lösungsansätze

    zur Problembehebung bei ESP8266 / ESP8285-Geräten.

    I - Flash-Speicher komplett löschen mit blank.bin

    • bei WLAN-Schaltern, Steckdosen, Lampen... mit ESP8266 / ESP8285 Chip wie Sonoff, Shelly, usw.
    • bei 'unerklärlichem' Verhalten und Fehlern nach Firmware-Wechsel
    • bei WLAN-, Update-, Flash-, Konfig-Problemen usw.

    I.I - Vorbereitung

    Die dazu benötigten Dateien: --> blank_1MB_2MB_4MB_mit_ESPtool.zip


    und eine .bin der folgenden:


    Die hier beschriebene Methode zum Löschen des Speichers und anschließendem

    Neu-Beschreiben funktioniert NUR per Hardware Flasher (OTA ist nicht möglich).


    Wie für das Flashen von Tasmota, wird auch hier ein FTDI-, CP2102-, CH340-,... Adapter benötigt,

    mit der üblichen Verdrahtung (TX, RX, GND,...).


    Genauso muss das Gerät für das Löschen in den Flash-Modus versetzt werden,

    z.B. Taste während dem Anstecken gedrückt halten oder GPIO0 auf GND legen.

    I.II - Löschen mit blank_1M.bin / blank_2MB.bin / blank_4MB.bin

    'Löschen' bedeutet hier Überschreiben des gesamten Flash-Speichers

    mit einer .bin Datei, in der nur 'FF' Bytes enthalten sind.


    Je nach Gerät ist unterschiedlich großer Flash-Speicher verbaut,

    entsprechend sollte die blank .bin gewählt werden.


    Bei den meisten Sonoff wird 1MB Flash verwendet.

    Shelly 1 und Shelly 2 verwenden 2MB Flash.

    Bei Sonoff POW v2.0 / WeMos D1 / NodeMCU z.B. 4MB Flash.


    Die Größe des Flash-Speichers lässt sich z.B. mit esptool.py feststellen:

    esptool.py flash_id

    I.III - Löschen per ESPEasy Flasher (esptool.exe bzw. FlashESP8266.exe) unter Windows

    • die Datei FlashESP8266.exe (GUI zu esptool.exe) starten
    • COM-Port sollte schon passend vorgewählt sein
    • Firmware blank_1MB.bin / blank_2MB.bin / blank_4MB.bin auswählen
    • Flash Button drücken


    Danach kann sofort eine Firmware .bin (Tasmota, ESPEasy, ESPurna...) gewählt werden,

    um sie genau so zu flashen (links weiter oben).

    II - Löschen per esptool.py

    Das Löschen des Flash-Speichers ist auch mit esptool.py möglich:


    esptool.py erase_flash mit automatischer COM-Port Erkennung oder

    esptool.py --port COM5 erase_flash COM-Port entsprechend anpassen


    III - Löschen per NodeMCU PyFlasher

    NodeMCU PyFlasher ist eine einfach zu benutzende GUI zu esptool.py für Windows und Mac.

    Zum Beschreiben und auch zum Löschen von ESP82xx Boards geeignet mit der Einstellung:

    • yes, wipes all data


    Wichtig! Konfiguration Flash mode • Dual Output (DOUT)

    mehr dazu: https://github.com/arendst/Son…lashing#nodemcu-pyflasher



    IV - Hinweise zum Lösungsansatz

    Die Methode (Flash-Speicher vollständig löschen und anschließend neue .bin aufspielen)

    ist meistens der schnellste Weg, um zu einem definierten Punkt zurückzukehren,

    bei dem gesichert ist, dass es zu 100% funktioniert bzw. funktionieren müsste (Firmwaretechnisch).


    Bei der Fehlersuche hat es sich deshalb bewährt, diesen als 1. Schritt zu wählen.


    Beim Wechsel zwischen Firmware-Versionen, bei Änderungen des Core 2.3.0/2.4.2/2.5.0,

    beim Wechsel zwischen 1MB, 2MB, 4MB Firmware usw. usw.

    bleiben (ohne Löschen) Reste im Speicher vorhanden, die sich gegenseitig stören und

    zu 'unerklärlichen' Phänomen führen können.


    Andere Methoden (wie CFG_HOLDER...) sind meistens zeitaufwändiger und manchmal

    auch nicht zielführend, da nur Teile des Speichers gelöscht oder überschrieben werden.

    V - Probleme und weitere Lösungsvorschläge

    V.I - WLAN und MQTT Probleme:

    • 1. Schritt, wie schon beschrieben, Flash komplett löschen und eine vorkompilierte Tasmota .bin flashen (z.B. sonoff-DE.bin)
    • Core 2.4.2 sollte man meiden
    • bei MQTT Verbindungsabbrüchen (unter Core 2.5.0) versuchsweise Sleep 0 einstellen
    • Empfehlung: mit Core STAGE pre-2.6 versuchen
    • sonst u.a. WLAN Kanalwahl überprüfen / Mesh ausschalten / Repeater deaktivieren / Fixe IP...

    V.II - WLAN verbindet sich nicht:

    • Ursache können Sonderzeichen und Leerzeichen in WLAN SSID und Passwort sein.
    • Probleme kann es auch durch aktiviertes 5GHz WLAN mit identischer SSID / Mixed Mode etc. geben.

    V.III - WLAN funktioniert nach einiger Zeit nicht mehr:

    • dies kann zum einen Hardware-Fehler bedeuten --> Lötverbindungen kontrollieren und nachlöten, Elkos, Überhitzung...
    • zum anderen könnten Störungen durch Interferenzen mit anderen/neuen Geräten etc. die Ursache sein.

    V.IV - Relais-Klicken und LED-Blinken im Sekunden-Takt:

    • ist ein Zeichen für fehlerhafte oder nicht vollständig geflashte .bin --> Löschen und neu Flashen

    V.V - Problem mit zu wenig Speicher (iRAM):

    • das Gerät startet zwar und lässt sich z.B. über Taste schalten, kurz darauf folgen aber Resets mit Neustart
    • oder es stehen bestimmte Funktionen nicht zur Verfügung (fehlende Menüpunkte in Tasmota).
    • Lösung: vorkompilierte Tasmota .bin flashen oder Funktionen von Tasmota in my_user_config.h bzw. user_config_override.h deaktivieren.



    Weitere Infos zu Fehlerbehebung:

    https://github.com/arendst/Son…mota/wiki/Troubleshooting




    P.S.:

    Kommentare zu Korrekturen und Verbesserungsvorschlägen sind SEHR willkommen

    und werden von mir mit Sicherheit überdacht.


    Wenn dir der Beitrag geholfen hat, freut mich ein ':thumbup:' natürlich besonders :)

Teilen