Programming the ESP8266 With the Arduino IDE in 3 Simple Steps

DZone 's Guide to

Programming the ESP8266 With the Arduino IDE in 3 Simple Steps

Learn how you can get your ESP8266 up and running ASAP using the Arduino IDE.

· IoT Zone ·
Free Resource

The ESP8266 is a low-cost WiFi module built by Espressif Systems. Its popularity has been growing among the hardware community thanks to its nice features and stability, to the point that it can be easily programmed using your Arduino IDE.

In this post, we'll learn how to program your ESP8266 using an UARTbee or Arduino UNO, and the Arduino IDE. 


  1. An ESP8266 module.

  2. An Arduino UNO , UARTbee or any UART to USB device.

  3. Jumper wires.

  4. Arduino IDE version 1.6.6 or higher.

1. Wire Up!

First, we'll need to identify the pinout of ESP8266. 


To set the ESP8266 in programming mode you need to connect its wires like this:

ESP8266 UARTbee Arduino UNO
GPIO2 ------- ----------
VCC 3.3V 3.3V
RST -------- -----------
CH_PD 3.3V 3.3V

Note: If you are using an Arduino UNO you will need to set Arduino RST to GND. Please be careful with the VCC of the ESP8266, it works only with a 3.3V supply.

2. Setup the Arduino IDE

  1. Download Arduino IDE.

  2. Open you IDE and click on "File -> Preferences".

  3. In  "Aditional Boards Manager URLs" add this line and click on "OK":

  4. "http://arduino.esp8266.com/stable/package_esp8266com_index.json"

  5. Go to "Tools -> Board -> Boards Manager", type "ESP8266" and install it.

  6. Go again to "Tools -> Board" and select "Generic ESP8266 Module".

3. Flash Your Code!

Now  you're ready to use your ESP8266 as a stand-alone module without needing an external micro-controller. Check out more ESP8266 resources here to learn how to build IoT products and projects using this amazing module. 

arduino ide, arduino uno, esp8266, iot

Published at DZone with permission of Mateo Velez , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}