How to Program ESP8266 with Arduino UNO

Here, learn how to Program ESP8266 with Arduino Board. You just need to install the ESP8266 board and make the circuit as per the below-given instructions. For basics and features of ESP8266 click here. We are using the Blink LED program as a sample program.

Step 1: Required Components

ESP8266 Module x 1
Arduino UNO Board x 1
3.3V Linear Voltage Regulator (LD1117) x 1
Breadboard x 1
Jumper Wires
LED (for Blink LED Program)

Step 2: Installing Board to Arduino IDE

First, install ESP8266 to Arduino IDE. If you have already installed the board to boards manager of Arduino IDE, skip this step else follow the steps

  1. Start the Arduino IDE
  2. Go to File > Preferences
  3. Add the below-given link to Additional Boards Manager URLs
  4. Go to Tools > Boards > Boards Manager…
  5. Search ESP8266ESP8266 in Arduino Boards Manager
  6. Click the Install button to install the ESP8266 Board
  7. Now close the Boards Manager window and select the Generic ESP8266 Module from the board selection listSelection of ESP8266 as board in Arduino IDE
  8. Installation of ESP8266 in Arduino IDE is done.



Step 3: Circuit Time

Make a circuit as per the given diagram. Connect the CH_PD and VCC line to Voltage Regulator Output, GND and GPIO_0 to Ground. Also, connect the RX and TX lines of both. GPIO_0 is Grounded to enable the programming mode of ESP8266.

Circuit Diagram of Programing ESP8266 with Arduino

Step 4: Program ESP8266 using Arduino

Make the circuit as per the above-given diagram. Power up the Arduino UNO board and wait till the Arduino Board boots up successful. (It will take around 5 seconds) Connect the Arduino Reset pin to Ground. Reset pin is grounded to bypass the Arduino. It will disable the Arduino Board and upload code directly to the ESP8266. Sample program for Blink LED is as below

After the Arduino IDE shows done uploading of Blink LED program, you can connect the LED to GPIO_2 Pin of ESP8266. Please do not connect the LED before or at the time of uploading program, it can cause some issue in uploading program.

Note: Disconnect the power supply for one minute, if it will show error in uploading the program to ESP8266.

8 thoughts on “How to Program ESP8266 with Arduino UNO”

  1. do you require to keep RESET to HIGH on esp8266 01 to flash a program on it? i saw on some sites about making a switch configuration for reset. Shed some light please?

    also i have an AJAX script that automatically refreshes data on html page. i wish to use it to send sensor data from arduino to esp01 to be displayed on a webpage with periodic refreshing. is it possible to run two set of codes: one (SENSOR READING) on UNO, and other (AJAX&HTML) on esp01?

  2. In my case it is showing error message

    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

Leave a Reply