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:
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 '' natürlich besonders
Kommentare 3
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
ecki#2
Hallo allerseits,
als Neuling in Sachen SmartHome lese ich mich gerade in das Thema ein.
Hierzu habe ich 2 Fragen zu "Backup - Sichern der Original Firmware":
Frage 1:
In der ZIP-Datei "blank_1MB_2MB_4MB_mit_esptool" sind leere Dateien und das "esptool" selbst vorhanden.
In der ZIP-Datei "esp_tool_ReadFlash" mit "esp_tool" sind die leeren Dateien nicht vorhanden.
Werden diese also vom "esp_tool" selbst erzeugt oder müssen diese noch in das Verzeichnis kopiert werden?
Frage 2:
Das Gerät wird vor dem Auslesen in den Flashmodus gebracht. Bleibt es nach dem Auslesen im Flashmodus
und kann direkt mit der neuen Firmware versorgt werden oder ist ein Neustart in den Flaschmodus erforderlich?
Besten Dank
Ecki#2
giss69
Welches Programm mit Mac OS benutzen?
Danke!
NoitaercX
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