Esp8266 Firmware Update




About: I am a Electronics and telecom graduate engineer and an enthusiastic embedded student with experience in latest technology and also an video and project documentation on the side.

The ESP8266 module is a cheap Wireless module.It has SOC(system on chip) that is capable of providing wifi to any micro controller/microprocessor .There are two ways the esp8266 can be used .

  1. Standalone esp8266
  2. Esp8266 with raspberry pi or arduino or stm32

Esp8266 needs a external 3.3 v for working properly .If you are using esp8266 with arduino, try not to provide power from arduino . As arduino maximum current providing capacity is 40mA while esp8266 draws 250mA. This is most likely the problem lies whenever uploading the new firmware or when you are using the esp8266

For beginners its advised to go with node mcu board's available in market .There are two types of board's one with RGB led & Ldr sensor and other with just breakout pins .This board has built in voltage regulator that handles the proper power.

  1. esp8266 witty board
  2. Node Mcu

Step 1: Find Esp8266 Flash Software

Download the software from the drive

Step 2: Find ESP8266 Firmware Files

Step 3: Connecting ESP to Flash Mode

  1. ESP 8266-01 module
  • Using Esp01 programmer adapter

This is the best way for flashing the esp01 buy this module and get free from messy wires in future .

Its very handy and very quick .

Esp01-programmer adapter

Note:The module do not enter the programming board directly .For this you need to solder the jumper on it .Please refer the photo for this .The jumper is solder between gpio 0 and gnd pin.when not using in programming mode shift the jumper to the empty pin.

  • Using BreadBoard Power module

Breadboard power supply

With this module you can separately give 5v to arduino and 3.3 v to esp8266 at the same time .This is the beauty of this module .

Esp rx pin also need 3.3v .If you try to put arduino tx to esp rx .The esp module can get damage .To prevent this from happening you can do two things .

  1. Use Voltage divider
  2. Use Level Shifter

1. Voltage divider

use 20k and 10k resistor to achive this . Please check the connection in photo

vcc & chpd of esp is connected to 3.3v

Gpio 0 & gnd of esp is conencted to gnd

Rx of esp is connected TX arduino directly

Tx of esp is connected to arduino rx via voltage divider

2. Level shifter

Please check the connection in photo

  • connect 5v of breadboard power supply to hv pin of logic level
  • connect 3.3v of breadboard power supply to Lv pin of logic level
  • connect tx of arduino to any other hv pins out of 4 pins ,corresponding to the pin you have connected tx ,connect rx of esp to that which will be Lv pin

2. Esp 8266-12 module

I found daflabs instructables best for this module so far

I used Arduino instead of cp2102 module, and I had no issue in communication.

The connection will remain mostly same for esp8266-12 to run it in flash mode.




Step 4: Uploading Firmware

  • Upload the blank program on arduino if using. And then connect esp tx and rx pins on it
  • Open the software and one by one add the bin files in it..
  • Now add the addresses as follows .

boot_v1.2.bin --0x00000

user1.1024.new2.bin --0x01000

blank.bin --0x7e000

blank.bin --0x3fe000

esp_init_data_default.bin --0x3fc000

  • Then just click flash button ,if everything is fine the flasher will show you the status of download and also your esp 8266 module led will blink very fast.
  • Congratulation!!! .you have uploaded latest firmware to esp8266.
  • If you do not find this mac address .use the reset pin and put it to gnd for 2 seconds and then remove it from gnd and re flash it .Its very important to get the mac address.
  • IT’s time to test your Esp module .now just remove GPIO 0 wire that was connected to GND ,you can connect it to VCC or leave it like this.
  • Now plug your Arduino back to pc and open serial port.
  • Check the at commands on different baud rate ,most of the esp works fine on this 115200 baud rate .
  • NOW its time to test AT commands .enter "AT" in serial port and you will get "OK". Now enter "AT+GMR" and check the firmware version.
  • To change the baud rate you can do this "AT+UART_DEF=9600, 8, 1, 0, 0"

Step 5: Using Esp Flash Download Toll V0.9.3.1

There are two software to install the bin file on soc of esp8266 ,The second method is by using esp flash download .

1.)Download the software from the below link

2.)Now just browse the bin file you want to upload on esp and do not change any of the settings except the com port and change baud rate to 115200 and click on start .you will see an uploading status .Have some patience until it says finish.

Step 6: Program Esp Using Esplorer

esplorer is a software specially made for esp8266 wifi can upload lua code or AT commands on the esp8266 by using this software.

download this from the link given.

Step 7: Troubleshooting

1.)Power esp 8266 from external power supply .please avoid using arduino or computer for vcc.

2.)check the circuit thrice and always while uploading firmware try to manually reset esp8266 by making chpd gnd for some time and put it back to vcc .

3.)make sure you use either a buck or a 3.3 regulator. esp8266 needs constant current too.

4.)Note: another link that might help you to solve the problems with esp module.if non of the above

method works...

10 People Made This Project!


  • Frozen Treats Challenge

    Frozen Treats Challenge
  • 1 Hour Challenge

    1 Hour Challenge
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

78 Discussions


1 year ago

Hi fellow,

I have problem flashing nodemcu to esp-01 using arduino (empty skectch). Here is my configuration:

ESP8266 - Arduino

GND <-> GND (black)
VCC <-> 3.3v (red)
GPIO0 <-> GND (purple)
GPIO2 <-> 3.3v (orange)
CH_PD <-> 3.3v (pink)
TX <-> TX (via logic level shifter) (yellow)
RX <-> RX (green)

The esp module works normally in normal mode (Esp GIPO0 ->3.3v), i can run AT commands and connect to access point. But if change the GPIO0 to GND in flash mode, i get no response in serial terminal and also the returns reponse time out.

Is anything wrong with my configuration? sorry i'm new to this, need your help. thank you.

1 reply

Reply 1 year ago


When trying to upload firmware do one thing .Use the reset pin on esp8266 and plug it in gnd and then remove it after 2 seconds.

Then try uploading firmware again.

Most likely you will get be able to upload the firmware and get the mac address in the dialog box too.

nodemcu flasher.png
Abhishek Basu

2 years ago

Those of you who are having the problem "Failed to Connect" just make sure:

1. GPIO 0 --> GND

2. Use external 3.3V source to power ESP

3. Make common GND between Arduino and ESP power source (this is most important)

2 replies
PaulA24Anusha Bharati

Reply 1 year ago


I have got the same problem! Try to restart the ESP-module by unpluging the 3.3V pin and then plug it back! It worked for me all the times.If not, be sure that the COM port is closed, the voltage pin is unplugged and then repeat the steps from this tutorial.


2 years ago

Anyone happen to know if these would be compatible with Wink home automation hub?

Jatinder PalS

2 years ago

I am using FTDI Basic, ESP8266 Breakout Board and ESP-01 module as shown in the Image below. I am able to flash firmware (4 files with ESP download tool and One bin file with ESP Flasher tool). But whenever I am trying to execute any AT command, ESP-01 doesn't even respond. I have tried changing baud rate from 9600 to 115200. but the result is same. Screenshot of ESPlorer is also attached. Can you please suggest some solution to it.

1 reply
Jatinder PalSJatinder PalS

Reply 2 years ago

I got it rectified myself. Just sharing the solution here. I didn't use any external supply to esp8266. I just replaced the FTDI Basic with PL2303 moddule connected to ESP8266 Breakout board. I am connecting it to my laptop. I am able to flash Firmware successfully and now getting response of AT commands using ESPlorer.


2 years ago

what is .bin file for esp8266 flashing and how to dwn it ,pls help me


2 years ago

Hi All, After Reading the Instructable and doing it on 2 diffrenet esp . I always end up with an unresponsive AT. I want to know the easist way to factory reset esp8266. So i can Send AT commsnds.

3 replies

Reply 2 years ago

Let me know how your are powering the esp8266 first and the other connections too.This is the first hurdle when you use the esp8266.

Next is the firmware file is itself need to download the AT firmware file from

Also check the esp8266 temperature regularly.If the temperature is exceeded due to excess of voltage the esp can get internally damage.

There are fake esp8266 01 modules available in market be careful.


Reply 2 years ago

Hi NavalJ ,I am also stuck in same error plz share what did you find.


Reply 2 years ago

Let me know how your are powering the esp8266 first and the other connections too

Babar Latif

2 years ago


I have just started learning ESP8266-01 module.

Is it necessary to flash the 8266 module before programming it with any code to use it for some purpose ?


Does it it come pre-flashed and we can start programming it with our own code without the need of flashing ?

2 replies
RaviP6Babar Latif

Reply 2 years ago

By default it comes with AT firmware.There is no need to flash new firmware.

Babar LatifRaviP6

Reply 2 years ago

Hi thanks Ravi,

Got that. So then how and when a re-flash is needed for ESP8266. Is that when the chip corrupts or freezes or what ?


2 years ago

Hi, I'm stuck with trying to communicate with my esp8266 -01.

Any ideas on what could be going wrong? I can't upload any lua code. I've followed the firmware flash and done it a few times. I feel like I'm missing something..

2 replies

Reply 2 years ago

how are u powering esp8266?make sure you do not power from laptop nor arduino .use an external power supply and then try.


Reply 2 years ago

ah perfect!! that worked! thank you.


3 years ago on Introduction

Hey.. I always get "invalid head of packet" on 6%.. what to do? ²