The actual flashing of firmware files such as .bin files or "binarys" on the Wemos D1 Mini, the NodeMcu dev board or any other board that is based on the ESP8266 takes place completely in the background of the Arduino IDE.
Behind it is actually the "esptool" offered by Espressif - the manufacturer of the ESP8266. With the right parameters, you can easily transfer finished .bin files to the ESP8266 without having to rely on the Arduino IDE.
A simple and a slightly more challenging how to do that is described in this article.
Hints for our lovely english readers: Basically, many of the articles on Nerdiy.de are translations from the original german articles. Therefore, it may happen here and there that some illustrations are not available in english and that some translations are weird/strange/full of mistakes or generally totaly wrong. So if you find some obvious (or also not obvious) mistakes don't hesitate to leave us a hint about that in the comment section.
Also please don't get confused, that instead of a "dot" often a "comma" is used as decimal separator. 🙂
Safety instructions
I know the following hints are always a bit annoying and seem unnecessary. But unfortunately, many people who knew it "better" from carelessness lost their eyes, fingers or other things or hurt themselves. In comparison, a loss of data is almost not worth mentioning, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Even the coolest project is worth no injury or other annoyance. https://www.nerdiy.de/en/sicherheitshinweise/
Affiliate links / advertising links
The links to online stores listed here are so-called affiliate links. If you click on such an affiliate link and store via this link, Nerdiy.de receives a commission from the online store or provider concerned. The price doesn't change for you. If you do your purchases via these links, you will support Nerdiy.de in being able to offer further useful projects in the future. 🙂
Requirements
Tools required:
-no-
Required material:
-no-
The esptool
You can always find the current version of the addressed "esptool" in the manufacturer's git at:
https://github.com/espressif/esptool
"Problem" is that this tool is a Python script / application and therefore cannot be run directly / easily under Windows.
Conveniently, Python scripts can also be "packed" into a compact .exe file. This also makes handling under Windows easier.
How to do this is described in the article Python - Pack Esptool.py into Esptool.exe.
Alternatively, you can also use the (somewhat older) prepared releases at
https://github.com/igrr/esptool-ck/releases
For the rest of this article you don't have to organize the esptool yourself but you can also simply use the esptool.exe file in the following git.
Transfer an existing .bin file with the esptool and the ESPEasy Flasher
If you only want to "armed" with the esptool to transfer a .bin file to the ESP8266, this usually means that you have to call the esptool from the command line and with the appropriate parameters.
This is often difficult for less advanced users and, apart from that, it is simply impractical.
Others have already noticed this and therefore worked on how to make the flash process of the ESP8266 as simple as possible.
You can find one of these results in the following git at
https://github.com/BattloXX/ESPEasyFlasher
as always there is a backup on the Nerdiy-Git:
https://github.com/Nerdiyde/ESPEasyFlasher
In addition to the esptool.exe mentioned in this git, there is also a FlashESP8266.exe. The latter functions like a graphical user interface, which translates the inputs made with the mouse into parameters and a command line call. Exactly what that means is explained in the next paragraph. The easy way starts right here. 🙂









Now all you have to do is click on the "Flash" button and the selected binary will be transferred to your ESP.
Another important note: The list of available COM ports is only updated when the application is restarted. If you have connected your ESP when the program was already started, you have to close it and open it again.
Call Esptool from the command line
As mentioned, you can also use the esptool directly to transfer an existing binary to your ESP.
To do this, you must use the command line to call the esptool with the specified parameters as follows:
esptool.exe -vv -cd nodemcu -cb 921600 -cp COM32 -ca 0x00000 -cf C:ESPEasy.ino.bin
- The number "921600" corresponds to the baud rate with which your ESP is programmed. This can vary from model to model. Typical baud rates are "9600", "115200" or "921600". If one baud rate doesn't work, you can simply try another one.
- The "COM32" part corresponds to the COM port under which your connected ESP can be reached.
- "0x00000" corresponds to the memory area from which the binary should be written to the ESP memory. Usually you shouldn't change this value.
- The part "C: ESPEasy.ino.bin" is important now. The path to your binary must be specified here. If you have copied your binary to your C: drive and called it "ESPEasy.ino.bin", this value can remain the same.
Additional information
https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool
Have fun with the project
I hope everything worked as described. If not or you have any other questions or suggestions, please let me know in the comments. Also, ideas for new projects are always welcome. 🙂
P.S. Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you appreciate that I share this information with you, I would be happy about a small donation to the coffee box. 🙂
Hello,
everything great, but unfortunately the COM port is not recognized. Can you help me please.
Achim
Hello Hans-Joachim,
can you give me some more info 🙂 Can you check for example if the driver for the USB-Serial converter is installed? Which board do you have?
The CH340G is installed on many boards. Unfortunately, there is no pre-installed standard driver for this under Windows. If you have a device in the device manager that cannot be assigned a driver, try using the driver for the CH340G. 🙂
Hello all,
very good tutorial, just rebuild the slotclock,
Find only, as described here, the "ESP_Easy_mega-20190803_custom_ESP8266_4M.bin" unfortunately nowhere.
Downloaded the ESPEasy git, but can't find this .bin file.
Can anyone help me here ?
Thanks in advance
Hey Lukas,
the bin file listed here is only meant as an example 🙂 But the bin file for the SlotClock can be found here: https://github.com/Nerdiyde/pxlBlck/tree/main/plugin/bin
In the article https://nerdiy.de/howto-pxlblck-das-pxlblck-plugin-installieren-und-konfigurieren/ you can also find more info about it 🙂 .
Best regards
Fabian
Hello,
what is the WLAN password for this image "ESP8266_4M_17.02.2021.bin"?
Thanks a lot
Hi Jürgen,
This should be the default password ("configesp"). Otherwise you can configure the access data via the serial interface. I have summarized information about this here: https://nerdiy.de/howto-espeasy-firmware-flashen/
Best regards
Fabian
However, the tool is now no longer in the package as .exe, but as .sln.
Unfortunately, it is not that easy to start now.
Hey Enrico,
right, in the backup of me (the link below: https://github.com/Nerdiyde/ESPEasyFlasher), however, the .exe file is still present 🙂
Best regards
Fabian
Hello Fab,
cool site and even cooler projects! Am here for the first time... 🙂
I've been working with ESPeasy for a while, so I know the standard plugins. Now I would like to implement your "HowTo: pxlBlck - pxlBlck_8x8".
However, the firmware update OTA with "ESP8266_ESPEasy_incl_pxlBlck_4M.bin" came something like "Magic Bit is missing" and when I do it via USB with the with the official ESPeasy Flasher, it does not emit WLAN AP afterwards. Can you tell me where the error is?
Greetings Franz
open-boat-projects. org
Hi Franz,
thank you and welcome 🙂
The firmware update via OTA probably won't work because the bin file with the pxlBlck plugin is too big for most "standard partitions". I must admit that I have not yet tried the installation via OTA or use and therefore can not say so much about it, sorry. :/ I would have to take a closer look.
Does ESPEasy start correctly when you install it with the ESPEasy Flasher? So you see an output in the serial console?
If yes, you could try to configure the wifi access data via the serial interface. I have described this (somewhat compactly) here: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
If not, please let me know and I'll try to recreate it 🙂 .
Best regards
Fabian