HowTo: ESP8266 – Flash .bin-bestanden onder Windows met de “Esptool”.

Het eigenlijke flashen van firmwarebestanden zoals .bin-bestanden (ook wel "binaries" genoemd) naar de Wemos D1 Mini, het NodeMcu dev board of een ander board gebaseerd op de ESP8266 gebeurt volledig op de achtergrond in de Arduino IDE.

Dit is eigenlijk de "esptool" die wordt aangeboden door Espressif - de fabrikant van de ESP8266. Met de juiste parameters kun je eenvoudig afgewerkte .bin-bestanden overzetten naar de ESP8266.

Een eenvoudige en iets veeleisendere manier wordt in dit artikel beschreven.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Vereist gereedschap:
-Nee-

Benodigd materiaal:
-Nee-


De esptool

Je kunt altijd de huidige versie van de "esptool" vinden in de GitHub van de fabrikant:

https://github.com/espressif/esptool

Het "probleem" hier is dat dit hulpprogramma een Python-script/toepassing is en dus niet direct/eenvoudig onder Windows kan worden uitgevoerd.

In de praktijk kunnen Python-scripts echter ook worden "ingepakt" in een compact .exe-bestand. Dit maakt het ook gemakkelijker om onder Windows te gebruiken.
Hoe je dat doet staat in het artikel Python - Esptool.py vertalen naar Esptool.exe beschreven.
Als alternatief kun je ook (iets oudere) voorbereide versies bekijken op

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

om op terug te vallen.

Voor de rest van dit artikel hoef je de esptool niet zelf te organiseren, maar kun je gewoon het esptool.exe bestand in de volgende Git gebruiken.


Een bestaand .bin-bestand overzetten met de esptool en de ESPEasy Flasher

Als je alleen een .bin bestand wilt overbrengen naar de ESP8266 "gewapend" met de esptool, betekent dit meestal dat je de esptool moet aanroepen via de opdrachtregel en met de bijbehorende parameters.

Dit is vaak moeilijk, vooral voor minder geavanceerde gebruikers, en bovendien is het gewoon onpraktisch.

Anderen hebben dit ook opgemerkt en zijn daarom aan de slag gegaan om het flashproces van de ESP8266 zo eenvoudig mogelijk te maken.

Je kunt een van deze resultaten vinden in de volgende Git-repository

https://github.com/BattloXX/ESPEasyFlasher

zoals altijd is er ook een back-up op de Nerdiy-Git:

https://github.com/Nerdiyde/ESPEasyFlasher

Naast de esptool.exe die hierboven genoemd is, is er ook een FlashESP8266.exe in deze Git repository. Deze werkt als een grafische gebruikersinterface, die de invoer met de muis vertaalt in prameters en een opdrachtregeloproep. Wat dit precies betekent wordt uitgelegd in de volgende paragraaf. De makkelijke manier begint hier 🙂

In het Git repository dat hierboven genoemd is, kun je de bestanden zien die in het Git repository zitten.
Klik op de knop "Klonen of downloaden" om het downloaden van de bestanden te starten en...
... klik dan op "Download ZIP". Je kunt meer informatie vinden over het downloaden van bestanden van een Git repository in het artikel GitHub - Hoe kopieer ik bestanden van een Git-repository naar mijn computer
Nadat je het ZIP-bestand hebt gedownload, moet je het eerst uitpakken. Meer informatie hierover vind je in het artikel WinRar? WinZip? WinWat? - Schat ik heb de bestanden verkleind. In de uitgepakte map zou je dan de inhoud van de map moeten kunnen zien.
Nu heb je alle benodigde programmabestanden voorbereid om te flashen. Wat je nog nodig hebt is het .bin bestand dat je wilt overzetten naar je ESP. Je kunt dit - op de afbeelding - bijvoorbeeld uit de map "bin" van de ESPEasy-Git halen. Zowel daar als in de Tasmota-Git worden kant-en-klaar gecompileerde "binarys" (zo worden de .bin bestanden genoemd) voorbereid en aangeboden. Echter, omdat deze binaries altijd specifiek worden gecompileerd voor een type controller met de bijbehorende geheugengrootte en configuratie, is het belangrijk om het juiste bestand te selecteren. Voor een Wemos D1-Mini kun je bijvoorbeeld het bestand "ESP_Easy_mega-20190803_custom_ESP8266_4M.bin" selecteren. Laat je niet in de war brengen door het feit dat de opeenvolging van nummers tussen "ESP_Easy_mega-" en "_custom_ESP8266_4M.bin" verandert in nieuwere versies. Dit deel komt overeen met de datum waarop de binary is gemaakt. Kopieer nu de geselecteerde binary en plak deze in de...
...dezelfde directory waarin het .exe-bestand van de ESPEasy Flasher zich bevindt. Dit is de map waarin je eerder de programmabestanden van de esptool en Co hebt uitgepakt.
Nu kun je de ESPEasy Flasher starten door het bestand FlashESP8266.exe uit te voeren.
Het programma dat wordt geopend is heel eenvoudig. Je kunt de COM-poort selecteren waarop je je ESP hebt aangesloten. Verder ...
...kun je het binaire bestand dat je wilt overbrengen naar je ESP selecteren in het onderstaande selectiemenu. Alle binaire bestanden in dezelfde map als het FlashESP8266.exe programma staan hier vermeld. Je vindt hier dus ook de binary die je eerder vanuit de map "bin" naar de uitgepakte programmamap hebt gekopieerd.

Nu hoef je alleen nog maar op de knop "Flash" te klikken en de geselecteerde binary wordt overgezet naar je ESP.

Een belangrijke opmerking: De lijst met beschikbare COM-poorten wordt alleen bijgewerkt wanneer de toepassing opnieuw wordt opgestart. Als je je ESP hebt aangesloten terwijl het programma al liep, moet je het programma opnieuw sluiten en opnieuw openen.


Esptool oproepen via de opdrachtregel

Zoals hierboven vermeld, kun je de esptool ook direct gebruiken om een bestaande binary over te zetten naar je ESP.

Gebruik hiervoor de opdrachtregel om esptool met de opgegeven parameters als volgt aan te roepen:

esptool.exe -vv -cd nodemcu -cb 921600 -cp COM32 -ca 0x00000 -cf C:ESPEasy.ino.bin
  • Het getal "921600" komt overeen met de baudrate waarop je ESP is geprogrammeerd. Dit kan per model verschillen. Typische baudrates zijn "9600", "115200" of "921600". Als een baudrate niet werkt, kun je gewoon een andere proberen.
  • Het deel "COM32" komt overeen met de COM-poort waaronder de aangesloten ESP bereikbaar is.
  • "0x00000" komt overeen met het geheugenbereik van waaruit de binary naar het ESP-geheugen moet worden geschreven. Normaal gesproken moet je deze waarde niet veranderen.
  • Nu is het gedeelte "C:ESPEasy.ino.bin" belangrijk. Hier moet je het pad naar je binary invoeren. Als je je binary naar je C: station hebt gekopieerd en het "ESPEasy.ino.bin" hebt genoemd, kan deze waarde blijven zoals hij is.

Meer informatie:

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


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

10 comments

    1. Hallo Hans Joachim,
      kun je me daar wat meer informatie over geven? 🙂 Kun je bijvoorbeeld controleren of de driver voor de USB-naar-serieel-converter is geïnstalleerd? Welk bord heb je?
      De CH340G is op veel boards geïnstalleerd. Helaas is hiervoor onder Windows geen standaard driver voorgeïnstalleerd. Als u een apparaat in Apparaatbeheer hebt staan waaraan geen stuurprogramma kan worden toegewezen, probeer dan het stuurprogramma voor de CH340G. 🙂

  1. Dag iedereen,
    zeer goede instructies, herbouw gewoon de slotklok,
    Helaas, zoals hier beschreven, kan ik de "ESP_Easy_mega-20190803_custom_ESP8266_4M.bin" nergens vinden.
    Ik heb de ESPEasy git gedownload, maar kan dit .bin-bestand niet vinden.
    Is er iemand die mij kan helpen?

    Bij voorbaat bedankt

  2. Hallo Fab,

    coole site en nog coolere projecten! Ik ben hier voor het eerst... 🙂

    Ik werk al heel lang met ESPeasy, dus ik ken de standaard plug-ins. Nu wil ik uw "HowTo: pxlBlck - pxlBlck_8x8" implementeren.
    Tijdens de firmware-update OTA met "ESP8266_ESPEasy_incl_pxlBlck_4M.bin" kwam er echter iets als "Magic Bit is missing" naar voren en als ik het via USB doe met de officiële ESPeasy Flasher, zendt het daarna geen WLAN AP uit. Kunt u mij vertellen waar de fout zit?

    Groetjes Frans

    open boot projecten. org

    1. Hallo Frans,
      Bedankt en welkom. 🙂
      De firmware-update via OTA zal hoogstwaarschijnlijk niet werken omdat het bin-bestand met de pxlBlck-plug-in te groot is voor de meeste "standaard partities". Ik moet toegeven dat ik de installatie via OTA nog niet heb geprobeerd of gebruik en er dus nog niet veel over kan zeggen, sorry. :/ Ik zou het beter moeten bekijken.
      Start ESPEasy correct als u het installeert met de ESPEasy Flasher? Dus je ziet een uitvoer in de seriële console?
      Zo ja, dan kunt u proberen de wifi-toegangsgegevens via de seriële interface te configureren. Ik heb het hier (enigszins compact) beschreven: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
      Zo niet, laat het me weten en ik zal proberen het te reproduceren. 🙂
      Hartelijke groeten
      Fabian

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Lees hoe uw commentaargegevens worden verwerkt.