How to Program ESP-01 with Arduino IDE

To program an ESP-01 module with Arduino IDE, the module needs to be connected to a programmer adapter. What keeps the ESP-01 module apart from other ESP8266-based microcontroller modules is the absence of a UART interface. Hence, a programmer adapter is required or it can be wired with a USB to TTL converter to create a programmer.

Below is an schematic diagram of an ESP-01 module using a USB to TTL converter module. This is the preferred ESP-01 programmer while breadboarding because all the ESP-01 pins are accessible.

Schematic diagram of a programmer for programming an ESP-01 with Arduino IDE
ESP-01 Programmer Using a USB to TTL Converter

About the Circuit

The three (3) 10k resistors are pull-up resistors necessary to ensure that the ESP8266 pins are on their proper logic levels. The two capacitors are optional components to increase the stability of the programmer. The 220 microfarad capacitor serves as an additional ac ripple filter while the 0.1 microFarad (100 nanoFarad) capacitor is used as high-frequency filter.

The RESET and PROGRAM switches are push-button switches. Pressing and then releasing the RESET switch will boot and run the program loaded in the flash memory. Pressing and releasing the RESET switch, while at the same time holding down the PROGRAM switch, will place the ESP-01 into the UART Bootloader mode, or go into programming mode. See the table below.

Again, the sequence of switch presses in order to go into programming mode is: press and hold down the PROGRAM switch, press and release the RESET switch, and finally release the PROGRAM switch.


GPIO-2GPIO-0Boot Mode
HIGHHIGHRun program in flash

Programming using Arduino IDE

To program the ESP-01 using the Arduino IDE, the ESP8266 cores for Arduino must first be installed. Please see, How to Set up Arduino IDE for ESP8266 Programming. If you don’t have the Arduino IDE installed yet, and you’re using Windows 10, see: How to Install Arduino IDE on Windows 10.

Related Articles on How to Program ESP-01 with Arduino IDE

Arduino Reference and Resources
How to Set up Arduino IDE for ESP8266 Programming
NodeMCU V3 ESP8266 Pinout and Configuration
How to Test NodeMCU V3 Using Esptool
How to Install Arduino IDE on Windows 10
How to Save and Restore ESP8266 and ESP32 Firmware
NodeMCU ESP-32S Pin Configuration
How to Use MCP4725 Module with Arduino
How to Use ADS1220 ADC Module with Arduino

References on How to Program ESP-01 with Arduino IDE

Arduino IDE
ESP8266 on Wikipedia

2 thoughts on “How to Program ESP-01 with Arduino IDE”

  1. @Kerim Bekir, you were right, there was some typo error on the capacitor. The value in the schematic diagram is correct: 100nF or 0.1uF.

    As additional info, it is a standard practice to use a 0.1uF (100nF) and a 10uF capacitors as power supply decoupling capacitors. The bigger 10uF capacitor filters the low frequency while the smaller 0.1uF capacitor is for the high frequency. The values are adjusted depending on the situation. A good article on the topic can be found here,

Leave a Reply

Your email address will not be published. Required fields are marked *