Projekt: ESP-Firmware klonen

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

Nachdem mich immer mal wieder Zuschauer und Leser gefragt haben, wie man denn auf die originale Firmware zurückkommt: Hier das Video dazu. Und zwar gibt es dazu immer prinzipiell zwei Möglichkeiten. Entweder man hat ein identisches Produkt vom Hersteller, von welchem man dann die Firmware auf ein anderes Gerät bringen möchte, oder man möchte ein Backup von der origialen Firmware machen, bevor man das Gerät mit neuer Software versorgt. Beides geht im Prinzip auf die gleiche Art und Weise. Sollte man beide Möglichkeiten nicht mehr haben (weil man nur ein Gerät hat und dieses bereits geflasht hat), kann man natürlich auch jemand anderes fragen oder eben eine bin-Datei vom Hersteller flashen (falls diese zur Verfügung gestellt wird).

Was Du brauchst?

  • Einen ESP8266 (Wemos D1, Shelly, NodeMCU, Sonoff, ...)
  • Einen FTDI oder CP2102

Video

Arduino-Kurs

Befehle

Als erstes brauchst Du ein System auf welchem Python installiert ist. Schau am besten direkt nach, wie Du das für dein Betriebssystem nachholen kannst. Dafür gibt es super Anleitungen im Netz. Dann lädst Du (wie im Video zu sehen) den aktuellen Release vom esptool herunter. Diesen findest Du unter dem folgenden Link:

https://github.com/espressif/esptool

Die Zip-Datei wird entpackt und danach kann schon getestet werden, ob alles funktioniert. Dafür wechseln wir mit dem Terminal in das entpackte Verzeichnis vom esptool und rufen die Hilfe auf:

esptool.py -h

Jetzt solltest Du viel Text sehen mit allen möglichen Parametern. Falls nicht, stimmt etwas mit der Python-Installation nicht.

Okay. Dann kann auch schon der ESP angeschlossen werden und in den Programming-Mode gebracht werden. Dafür muss GPIO0 (Null) mit Ground (GND) verbunden werden, während der ESP mit Strom versorgt wird. Bei einem Sonoff wird in der Regel dazu einfach der Button auf dem Gerät gedrückt gehalten, beim Shelly muss man das per Hand mit Jumper-Kabeln durchführen.

Als nächstes wird der Port des angeschlossenen ESP ermittelt und als Parameter im folgenden Befehl angegeben. Unter Windows steht dort wahrscheinlich COM1 oder COM5.

esptool.py --port /dev/cu.SLAB_USBtoUART read_flash 0x00000 0x100000 ~/shelly-backup.bin

Nach einem Druck auf Enter braucht es nun etwas Zeit und dann sollte im Home-Verzeichnis eine Datei namens shelly-backup.bin liegen. Diese ist nun die Basis um das Image auf andere ESPs zu flashen. Natürlich funktioniert das mit jedem ESP, aber es macht natürlich nur Sinn, vom gleichen Gerätetyp auf einen anderen zu übertragen. Also von einem Shelly die Firmware auf einen Sonoff zu spielen würden zwar technisch funktionieren, aber macht nicht unbedingt viel Sinn.

Haben wir also den zu flashenden ESP (im Programming-Mode) angeschlossen, wird der folgende Befehl ausgeführt:

esptool.py --port /dev/cu.SLAB_USBtoUART write_flash 0x00000 ~/shelly-backup.bin

Nach ein paar Sekunden Wartezeit sollte nun die neue Firmware auf dem zweiten ESP geflasht sein.

Im Falle von Shelly musste ich einmal einen Reset auf die Werkseinstellungen durchführen, da ich sonst zwei Shellies mit der gleichen Seriennummer hatte. Danach hat alles wieder gepasst. Also eins zu eins austauschen ist nicht immer ohne Komplikationen möglich oder sinnvoll. Da muss man je nach Gerätetyp einfach ausprobieren was bei rauskommt.


Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.