HowTo: ESP8266 – mit dem “Esptool” .bin-Dateien unter Windows flashen

Das eigentliche flashen von Firmware-Datein wie .bin-Datein (auch “binarys” genannt) auf den Wemos D1 Mini, das NodeMcu Dev-Board oder jegliches anderes Board, dass auf dem ESP8266 basiert, geschieht in der Arduino IDE komplett im Hintergrund.

Dahinter verbirgt sich nämlich eigentlich das von Espressif – dem Hersteller des ESP8266 – angebotene “esptool”. Mit den richtigen Parameter aufgerufen könnt Ihr damit auch ganz leicht fertige .bin-Dateien auf den ESP8266 übertragen.

Ein einfacher und einen etwas anspruchsvollerer Weg ist in diesem Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Benötigtes Werkzeug:
-keins-

Benötigtes Material:
-keins-


Das esptool

Die aktuelle Version des angesprochenen “esptool” findet Ihr immer im GitHub des Herstellers unter:

https://github.com/espressif/esptool

“Problem” dabei ist, dass dieses Tool eine Python Skript/Anwendung ist und somit nicht direkt/einfach unter Windows ausgeführt werden kann.

Praktischerweise lassen sich Python-Skripte aber auch zu einer kompakten .exe-Datei “zusammenpacken”. Dadurch wird auch die Handhabung unter Windows leichter.
Wie das geht ist in dem Artikel Python – Esptool.py in Esptool.exe übersetzen beschrieben.
Alternativ könnt Ihr auch auf (etwas ältere) vorbereitete Releases unter

https://github.com/igrr/esptool-ck/releases

zurückgreifen.

Für den weiteren Verlauf dieses Artikels müsst Ihr das esptool aber nicht selber organisieren sondern könnt auch einfach auf die esptool.exe Datei im folgenden Git zurückgreifen.


Eine vorhandene .bin-Datei mit dem esptool und dem ESPEasy Flasher übertragen

Wenn man lediglich mit dem esptool “bewaffnet” eine .bin-File auf den ESP8266 übertragen will hat dies normalerweise zur Folge, dass man das esptool über die Kommandozeile und mit den entsprechenden Parametern aufrufen muss.

Dies ist gerade für nicht so fortgeschrittene Benutzer oft schwierig und davon abgesehen auch einfach unpraktisch.

Dies haben auch schon andere festgestellt und deshalb daran gearbeitet wie man den Flash-Prozess des ESP8266 so einfach wie möglich gestalten kann.

Eines dieser Ergebnisse findet Ihr im folgenden Git-Repository unter

https://github.com/BattloXX/ESPEasyFlasher

wie immer gibt es dazu auch einen Backup auf dem Nerdiy-Git:

https://github.com/Nerdiyde/ESPEasyFlasher

In diesem Git-Repository gibt es neben der angesprochenen esptool.exe auch noch eine FlashESP8266.exe. Letztere funktioniert dabei wie eine grafische Benutzeroberfläche, welche die mit der Maus getätigten Eingaben in Prameter und einen Kommandozeilen-Aufruf übersetzt. Was das genau bedeutet Ist im nächsten Absatz erklärt. Der einfache Weg startet genau hier. 🙂

Im angesprochenen Git-Repository könnt Ihr die Dateien sehen die im Git-Repository enthalten sind.
Um den Download der Dateien zu starten klickt Ihr auf den “Clone or Download”-Button und…
… dann auf “Download ZIP”. Weitere Infos zum Download von Dateien aus einem Git-Repository findet Ihr auch im Artikel GitHub – Wie kopiere ich Dateien aus einem Git-Repository auf meinen Computer
Habt Ihr die ZIP-Datei heruntergeladen, müsst Ihr diese nun zunächst entpacken. Infos dazu findet Ihr im Artikel WinRar? WinZip? WinWas? – Liebling ich habe die Dateien geschrumpft. In dem entpackten Ordner solltet ihr dann den abgebildeten Ordnerinhalt sehen können.
Nun habt Ihr alle benötigten Programmdatein zum flashen vorbereitet. Was Euch noch fehlt ist die .bin-Datei die Ihr auf Euren ESP übertragen wollt. Diese bekommt Ihr – Im Bild abgebildet – zum Beispiel aus dem Ordner “bin” des ESPEasy-Gits. Sowohl dort als auch im Tasmota-Git werden fertig kompilierte “binarys” (so nennt man die .bin-Dateien) vorbereitet und angeboten. Da diese binarys aber immer speziell für einen Controllertyp mit entsprechender Speichergröße und Konfiguration kompiliert wurden ist es hier wichtig die korrekte Datei auszuwählen. Für einen Wemos D1-Mini könnt Ihr zum Beispiel die Datei “ESP_Easy_mega-20190803_custom_ESP8266_4M.bin” auswählen. Lasst euch dabei nicht davon irritieren, dass sich die Zahlenfolge zwischen “ESP_Easy_mega-” und “_custom_ESP8266_4M.bin” bei neueren Versionen ändert. Dieser Teil entspricht dem Datum an dem die binary erstellt wurde. Kopiert Euch nun die ausgewählte binary und fügt sie im…
…gleichen Verzeichnis ein in dem auch die .exe-Datei des ESPEasy Flashers liegt. Dies ist also das Verzeichnis in das Ihr zuvor die Programmdatein des esptools und Co entpackt habt.
Nun könnt Ihr den ESPEasy Flasher starten indem Ihr die FlashESP8266.exe-Datei ausführt.
Das nun geöffnete Programm ist sehr simpel gehalten. Es gibt dort die Möglichkeit den COM-Port auszuwählen an dem Ihr Euren ESP angeschlossen habt. Außerdem …
…könnt Ihr in dem Auswahl-Menü darunter die binary-Datei auswählen die Ihr auf Euren ESP übertragen wollt. Hier werden alle binarys aufgelistet, die sich in dem gleichen Ordner wie das Programm FlashESP8266.exe befinden. Deswegen findet Ihr hier auch die binary die Ihr zuvor aus dem “bin”-Ordner in den entpackten Programmordner kopiert habt.

Nun müsst Ihr nur noch auf den “Flash”-Button klicken und schon wird die ausgewählte binary auf Euren ESP übertragen.

Ein wichtiger Hinweis noch: Die Liste der verfügbaren COM-Ports wird erst durch einen Neustart der Anwendung aktualisiert. Habt Ihr also Euren ESP angeschlossen als das Programm schon gestartet war, müsst Ihr es noch einmal schließen und wieder neu öffnen.


Esptool über die Kommandozeile aufrufen

Wie angesprochen könnt Ihr das esptool auch direkt dazu nutzen eine vorhandene binary auf Euren ESP zu übertragen.

Dazu müsst Ihr mithilfe der Kommandozeile das esptool mit angegebenen parametern wie folgt aufrufen:

esptool.exe -vv -cd nodemcu -cb 921600 -cp COM32 -ca 0x00000 -cf C:ESPEasy.ino.bin
  • Dabei entspricht die Zahl “921600” der Baudrate mit der Euer ESP programmiert wird. Dies kann von Modell zu Modell variieren. Typische Baudraten sind “9600”, “115200” oder “921600”. Falls eine Baudrate nicht funktioniert könnt Ihr es auch einfach mit einer anderen probieren.
  • Der Teil “COM32” enspricht dem COM-Port unter dem Euer angeschlossener ESP erreichbar ist.
  • “0x00000” entspricht dem Speicherbereich ab dem die binary in den Speicher des ESP geschrieben werden soll. Für gewöhnlich solltet Ihr diesen Wert nicht verändern.
  • Wichtig ist nun noch der Teil “C:ESPEasy.ino.bin” Hier muss der Pfad zu Eurer binary angegeben sein. Habt Ihr Eure binary auf Euer Laufwerk C: kopiert und “ESPEasy.ino.bin” genannt, kann dieser Wert auch so bestehen bleiben.

Weiterführende Informationen:

https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool


Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

10 Kommentare

    1. Hallo Hans-Joachim,
      kannst du mir ein paar mehr INfos dazu geben? 🙂 Kannst du zum Beispiel mal prüfen ob der Treiber für den USB-Seriell converter installiert ist? Welches Board hast du denn?
      Auf vielen Boards ist der CH340G verbaut. Für diesen gibt es leider keinen vorinstallierten Standardtreiber unter Windows. Falls du bei dir im Geräte-Manager ein Gerät hast, dem kein Treiber zugeordnet werden kann, versuch es doch mal mit dem Treiber für den CH340G. 🙂

  1. Hallo zusammen,
    sehr gute Anleitung, baue gerade die Slotclock nach,
    Finde nur, wie hier beschrieben, die „ESP_Easy_mega-20190803_custom_ESP8266_4M.bin“ leider nirgends.
    Habe das ESPEasy-Git herunter geladen, finde jedoch nicht diese .bin-Datei.
    Kann mir hier jemand weiterhelfen ?

    Danke im voraus

  2. Das Tool liegt jetzt aber nicht mehr als .exe im Paket, sondern als .sln.
    So einfach starten lässt sich dies jetzt leider nicht mehr.

  3. Hallo Fab,

    coole Seite und noch coolere Projekte! Bin zum ersten mal hier… 🙂

    Arbeite schön länger mit ESPeasy, kenne also die Standartplugins. Nun würde ich gern dein “HowTo: pxlBlck – pxlBlck_8x8” umsetzen.
    Allerdings kam beim Firmwareupdate OTA mit “ESP8266_ESPEasy_incl_pxlBlck_4M.bin” sowas wie “Magic Bit is missing” und wenn ich es per USB mit dem mit dem offiziellen ESPeasy Flasher mache, strahlt es anschließend keinen WLAN-AP aus. Kannst du mir sagen wo der Fehler liegt?

    Grüße Franz

    open-boat-projects. org

    1. Hi Franz,
      vielen Dank und herzlich willkommen. 🙂
      Das Firmwareupdate via OTA klappt sehr wahrscheinlich nicht, weil die bin-Datei mit dem pxlBlck-Plugin zu groß für die meisten “Standard-Partitionen” ist. Ich muss zugeben, dass ich die Installation per OTA noch nicht ausprobiert habe bzw. nutze und deswegen gar nicht soviel dazu sagen kann, sorry. :/ Müsste ich mir mal genauer angucken.
      Startet ESPEasy denn korrekt wenn du es mit dem ESPEasy Flasher installierst? Also sieht du eine Ausgabe in der seriellen Konsole?
      Falls ja könntest du mal probieren die Wifi Zugangsdaten über die serielle Schnittstelle zu konfigurieren. Ich habe das (etwas kompakt) hier beschrieben: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
      Falls nicht gib mir gerne bescheid dann versuche ich das mal nachzustellen. 🙂
      Beste Grüße
      Fabian

Kommentar hinterlassen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.