The ESP01 does not have a serial (UART) to USB converter. To upload a program to flash memory, a temporary circuit must be built using a UART to USB converter. You must then put the ESP01 module in Flash Mode by connecting the GPIO0 pin to the GND at power-up. It’s quite tedious. All these operations can be simplified using a small programmer dedicated to the ESP01 module.
Some models sold under the programmer name do not allow the ESP01 module to be put in Flash Mode, which does not help matters!
Which programmer for ESP01 to choose?
There are two main families of programmers in online merchants.
Black programmer with a large capacitor (CH340G), without Flash Mode selector
It is the most common model and often the cheapest. It is generally equipped with a CH340G USB to TTL converter which is very well supported on all platforms (Windows PC, macOS, Linux).
The only problem with this model is that it does not offer a selector to switch the ESP01 module to Flash Mode.
ESP01 programmer (model with capacitor) with USB to TTL converter CH340G without selector for setting in Flash Mode. Model available on Aliexpress.
How to modify the program to switch the ESP01 to Flash Mode
It is very easy to modify the programmer with capacitor. You just have to trust the Makers that you are to find a solution.
In any case, the GPIO0 pin must be connected to the GND pin when powering up like this
By doing a little research on the internet, we find 3 simple solutions
Insert a resistance in the gpio | Solder a jumper | Solder a button |
Source: Tech Spy | ||
Easiest solution especially if you don’t have a soldering iron handy | Very good solution, however, you will have to find a jumper | This is probably the best solution. Just press the switch while inserting the programmer into the computer’s USB port to activate Flashing Mode |
Matériel | ||
|
ESP01 Programmer with integrated selector
A priori it is the module that is preferable to buy first. It has a selector placed on the side of the board which allows the ESP01 module to be switched to Flash Mode.
However, it is quite difficult to find and the feedback is not always positive.
How to activate the boot load mode?
Whatever solution is chosen, the procedure remains the same
- Remove the programmer from the USB port
- Insert the ESP01S module into the connector respecting the direction. Usually the antenna to the USB connector.
- Activate the selector
- Insert resistance
- Or set the selector to Flash
- Or set up the jumper
- Or push the button
- Insert programmer
- Release the button
- Do nothing more for the other solutions
How do I turn off Flash Mode?
After uploading an Arduino program, the ESP01 module will restart. Depending on the modification of the program, the module will remain in Flash Mode (or not). To return to standard operation, here is what to do depending on the solution chosen.
Resistor | Jumper | Push Button | Integrated selector |
Remove the ESP01 from the holder Remove resistance Insert ESP01 in GPIO | Remove the programmer from the USB port Remove the jumper Reconnect the programmer | There is nothing to do ! | Remove the programmer from the USB port Return the selector to the UART position Reconnect the programmer |
Updates
17/09/2020 Publication of the article
- How to store data on a micro SD card. Arduino code compatible ESP32, ESP8266
- Getting started Arduino. Receive commands from the serial port (ESP32 ESP8266 compatible)
- C++ functions print•println•printf•sprintf for Arduino ESP32 ESP8266. Combine•format → serial port
- C++ String functions. concat•c_srt•indexOf•replace•subString… for Arduino, ESP32, ESP8266
- How to assign a fixed IP to an ESP32 ESP8266 or ESP01 project