Arduino project

Raspberry project

Post Page Advertisement [Top]

This article will show how to program ESP12E (ESP8266) by using Arduino IDE. What hardware we need is:
(1) esp12e PCB
(2) Bread board
(3) External power supply 3.3V
(4) FTDI COM Port
(5) Some cable, resistor, LED
1. ESP12E
2. Bread board
3. Power module 3.3V
4. FTDI com port

Step 1. Configure Arduino IDE
File -> Preferences -> paste link for "Additional Boards Manager URLs":

Choose "Board manager" -> Type "esp" in search box -> install esp library:

Step 2. Wire connection
Use external 3.3V to supply board. This case, we used LM317 to make about 3.3V for esp12e.
For more easy, 3.3V module can be used to quickly result (link purchase:

Connect board to FTDI COM port board. GPIO-0 will have 2 state:

   (1) Programming mode: GPIO-0 should be short to GND
   (2) Running mode: GPIO-0 should be short to VCC (3.3V)
Note: GPIO2 can be floated (connect nowhere). However, we also connect it to VCC as in datasheet instruction

Make this connection to programming:

Step 3. Load example
Configure programming for ESP in Arduino:

Make blinking example -> Upload to board (remember press button "reset" (button in step 2), just right after "uploading ...." appear)
After uploading finished, result screen is here:

Step 4. Running
Circuit in step 2 follows configure as above picture -> upload is done (as Arduino IDE information)
To make it run, change GPIO-0 to HIGH (3.3V) -> press button "reset" to make the board run
If everything is smoothly, result will be shown (in our case, UART speed of esp12e is 74880baud!)

.... and LED on GPIO16 will be blink

We finally got experience with esp12e: because we used breadboard to pin out esp12e PCB, power supply is dropped at cable connection! It makes esp12e not enough power or power not stable. So, esp12e can't work:
(1) Case 1 of RUN mode: after thrown reset information, it stand there with nothing happen
 ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d

(2) Case 2 of RUN mode: it will thrown a bunch of word (can't be translated for human) repeatedly

(3) Case 3 of PROGRAMMING mode: after every pressing reset, it always shows:
 ets Jan  8 2013,rst cause:1, boot mode:(1,6)

To overcome this problem, we connect power and ground of esp12e to external power supply with many cables, so power is supply to esp12e is stable and not drop. One more thing is put a small capacitor at VCC and GND
In PROGRAMMING mode, esp12e doesn't need much current, it is easy to download (power supply not must be so good)
In RUN mode, esp12e will use much current, if power supply for esp12e isn't good, it can't afford esp12e run normally
Above picture is our result. Thanks GOD! It took us about 2 months to make it run!


  1. Did you try with other GPIO. 16 has role in the deep sleep function, so it's better to try an other one. And refer to the Kolban's book about ESP8266

    1. Hi, even i don't use GPIO16, just use "serial print", but no response in Monitor window
      Sometimes, it's blinking with "Hello world..." feedback, but stop after that
      Power supply is OK at 3.0~3.6VDC

    2. I finally make it run. Problem is related to power supply. Power is drop at cable connection of breadboard.

  2. If u r Interested in any automation courses contact us (91-9310096831) For Free DEMO Classes and Get your suitable Time Locked,,,

  3. high.i was wondering if i can connect a esp8266 12E directly to an arduino uno and program them so i could giver order to esp8266 over wifi and then arduino read one of esp pins as input and alter one of its own digital this possible?

  4. This comment has been removed by the author.

  5. I have succeedd upload the code, but the led didn't blink...can you help me?

  6. Very good tutorial. Thank you :)


Bottom Ad [Post Page]