HowTo: ESP8266 - .bin-bestanden flashen onder Windows met de "Esptool".

Het daadwerkelijk flashen van firmwarebestanden zoals .bin-bestanden (ook wel “binaries” genoemd) naar de Wemos D1 Mini, het NodeMcu Dev-bord of een ander bord gebaseerd op de ESP8266 gebeurt volledig op de achtergrond in de Arduino IDE.

Hierachter zit eigenlijk de “esptool” aangeboden door Espressif – de fabrikant van de ESP8266. Met de juiste parameters kunt u eenvoudig voltooide .bin-bestanden overbrengen 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

U kunt de huidige versie van de betreffende “esptool” altijd vinden in de GitHub van de fabrikant op:

https://github.com/espressif/esptool

Het “probleem” hierbij is dat deze tool een Python-script/applicatie is en daarom niet direct/gemakkelijk onder Windows kan draaien.

Praktisch gezien kunnen Python-scripts ook worden “verpakt” in een compact .exe-bestand. Dit maakt de bediening ook onder Windows eenvoudiger.
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 u gewoon een .bin-bestand “gewapend” met de esptool naar de ESP8266 wilt overbrengen, betekent dit meestal dat u de esptool via de opdrachtregel en met de juiste parameters moet oproepen.

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.
Om het downloaden van de bestanden te starten, klikt u op de knop "Klonen of downloaden" en...
…klik vervolgens op “ZIP downloaden”. Meer informatie over het downloaden van bestanden uit een Git-repository vindt u ook 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 hebt u alle programmabestanden voorbereid die u nodig hebt om te flashen. Wat je nog steeds mist, is het .bin-bestand dat je naar je ESP wilt overbrengen. Deze kun je - weergegeven in de afbeelding - bijvoorbeeld uit de map “bin” van de ESPEasy Git halen. Zowel daar als in Tasmota Git worden volledig gecompileerde “binaire bestanden” (zo worden de .bin-bestanden genoemd) voorbereid en aangeboden. Omdat deze binaire bestanden altijd specifiek voor een controllertype met de bijbehorende geheugengrootte en configuratie zijn samengesteld, is het belangrijk om hier het juiste bestand te selecteren. Voor een Wemos D1-Mini kunt u bijvoorbeeld het bestand “ESP_Easy_mega-20190803_custom_ESP8266_4M.bin” selecteren. Wees niet in de war door het feit dat de nummerreeks tussen “ESP_Easy_mega-” en “_custom_ESP8266_4M.bin” verandert in nieuwere versies. Dit deel komt overeen met de datum waarop het binaire bestand is gemaakt. Kopieer nu het geselecteerde binaire bestand en plak het in...
...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 ...
...in het keuzemenu hieronder kunt u het binaire bestand selecteren dat u naar uw ESP wilt overbrengen. Alle binaire bestanden die zich in dezelfde map bevinden als het programma FlashESP8266.exe worden hier vermeld. Daarom vind je hier ook het binaire bestand dat je eerder vanuit de map “bin” naar de uitgepakte programmamap hebt gekopieerd.

Nu hoeft u alleen maar op de knop “Flash” te klikken en het geselecteerde binaire bestand wordt naar uw ESP overgebracht.

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 nummer “921600” komt overeen met de baudrate waarop uw ESP is geprogrammeerd. Dit kan per model verschillen. Typische baudrates zijn “9600”, “115200” of “921600”. Als de ene baudrate niet werkt, kunt u eenvoudig een andere proberen.
  • Het onderdeel “COM32” komt overeen met de COM-poort waaronder uw aangesloten ESP bereikbaar is.
  • “0x00000” komt overeen met het geheugengebied van waaruit het binaire bestand naar het ESP-geheugen moet worden geschreven. Normaal gesproken moet u deze waarde niet wijzigen.
  • Nu is het onderdeel “C:ESPEasy.ino.bin” belangrijk. Hier moet het pad naar uw binaire bestand worden opgegeven. Als u uw binaire bestand naar uw C:-station hebt gekopieerd en het “ESPEasy.ino.bin” hebt genoemd, kan deze waarde blijven zoals deze 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 lang met ESPeasy, dus ik ken de standaard plugins. Nu wil ik jouw “HowTo: pxlBlck – pxlBlck_8x8” implementeren.
    Tijdens de OTA-firmware-update met “ESP8266_ESPEasy_incl_pxlBlck_4M.bin” kwam er echter zoiets als “Magic Bit ontbreekt” naar voren en als ik het via USB doe met de officiële ESPeasy-flasher, zendt het 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 “standaardpartities”. Ik moet eerlijk bekennen dat ik de installatie via OTA nog niet geprobeerd of gebruikt heb en er dus nog niet veel over kan zeggen, sorry. :/ Ik zou het eens nader 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. Bekijk hoe je reactie-gegevens worden verwerkt.