Backup - Sichern der Original Firmware (Sonoff, Shelly & andere ESP8266-Geräte)

  • Dieser Abschnitt beschreibt, wie man die original Firmware von ESP8266/ESP8285-Geräten sichern kann,

    um sie gegebenenfalls wieder einzuspielen.

    I - Backup - Original Firmware sichern

    • bei WLAN-Schaltern, Steckdosen, Lampen... mit ESP8266 / ESP8285 Chip wie Sonoff, Shelly, usw.
    • falls man, z.B. nach einem Tasmota-Flash, wieder zur Original Software (evtl. mit Cloud) zurückkehren möchte.

    I.I - Vorbereitung

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

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

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

    I.II - Backup mit Python und esptool.py

    Quelle: https://github.com/espressif/esptool


    Installation z.B.:

    C:\Python27\Scripts>pip install esptool


    Bei den meisten Sonoff wird 1MB Flash verwendet, die Befehlszeile lautet dann:

    esptool.py --p COM5 --baud 115200 read_flash 0x00000 0x100000 Backup_1MB.bin


    Shelly 1 und Shelly 2 verwenden z.B. 2MB Flash:

    esptool.py --p COM5 --baud 115200 read_flash 0x00000 0x200000 Backup_2MB.bin


    Bei Sonoff POW v2.0 z.B. oder fürs Backup von WeMos D1 / NodeMCU mit 4MB Flash:

    esptool.py --p COM5 --baud 115200 read_flash 0x00000 0x400000 Backup_4MB.bin


    Der serielle COM-Port muss angepasst werden und die Baud-Rate kann bei Fehlern runtergesetzt werden (z.B. auf --baud 38400).


    I.III - Backup mit esp_tool.exe unter Windows

    esp_tool.exe und angepasste Batch-Files für 1MB, 2MB und 4MB befinden sich in der Zip-Datei im Anhang:

    esp_tool_ReadFlash.zip


    Die Befehlszeile für eine 2MB Flash Sicherung lautet dann z.B.:

    esp_tool.exe -pCOM5 -b115200 -a0x0000 -s0x200000 -or Backup_2MB.bin


    Der serielle COM-Port muss auch hier und in den .bat Files angepasst werden.

    Die Baud-Rate sollte bei Fehlern auf einen niedrigeren Wert eingestellt werden (z.B. auf -b38400).


    Der Auslesevorgang dauert je nach Flashspeicher und Baud-Rate eine ganze Weile,

    es erfolgt keine Rückmeldung über den Lesefortschritt.


    I.IV - Zurückspielen der gesicherten bin-Datei

    Erfolgt genauso wie das Flashen sonst auch.

    Dafür empfehle ich esptool.exe bzw. FlashESP8266.exe


    I.V - Weitere Funktionen von esptool.py

    esptool.py flash_id --> ID und Größe des Flash-Speichers feststellen


    esptool.py erase_flash --> vollständiges Löschen des Flash-Speichers


    I.VI - Kopier-Schutz

    Die original Firmware ist u.a. bei allen Sonoff mit der ESP ID / MAC-Adresse 'verheiratet' und geschützt.

    Das bedeutet, dass die ausgelesene Firmware nur auf dem gleichen Gerät nach dem Einspielen auch wieder funktioniert.


    Bei Shelly ist dies (noch) nicht der Fall.




    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

Kommentare 2

  • Welches Programm mit Mac OS benutzen?


    Danke!

    • Hi, kenne mich mit macOS nicht wirklich aus, sollte aber

      genauso mit esptool.py funktionieren (wie auch unter Linux).


      Python und pySerial, sowie Treiber für FTDI etc. müssen installiert sein.


      esptool installieren:

      git clone https://github.com/themadinventor/esptool.git

      cd esptool

      sudo python setup.py install


      FTDI... USB-Anschluss feststellen:

      /dev/tty.*


      dann lautet die Befehlszeile fürs Auslesen mit angepasstem Port z.B. so:

      sudo python esptool.py --p /dev/tty.usbserial-FTABC01D --baud 115200 read_flash 0x00000 0x100000 Backup_1MB.bin