Objective and Rationale

This is the author's second article about the ESP8266 integrated circuit, a relatively new chip comprising a full-featured 32-bit RISC µC and a built-in 802.11 b/g/n Wi-Fi circuit. The first article described using the Arduino IDE to program the ESP8266, and contains some important background information that will not be repeated here. If you haven't read it, please do.

There is no shortage of information on the Web about the 8266; in fact, there may be too much...of the wrong type. The developers of the IC, Espressif, have apparently chosen to not only outsource manufacturing, but also to avoid being directly involved in the line of ESP modules that utilize the ESP8266 chip. Instead, they offer information and support services via a forum for those with the patience and persistence to search the maze. Adding to the confusion is the existence of another forum that, despite being named esp8266.com, doesn't seem to be operated by Espressif. In addition, there is a plethora of resellers, video bloggers, and writers that also offer information that runs the gamut from good to confusing to totally wrong.

ESP modules are available from a variety of sources, and the firmware contained in the ESP8266 chips on the modules is almost always outdated and often of questionable origin. The firmware "updates" and tools that are available from these same sources are also sometimes suspect. Consequently, it is the aim of this article to document a procedure for downloading the latest available firmware directly from Espressif and installing it on an ESP8266 using the flash tool provided by Espressif.

 

Hardware Setup

In order to update the firmware on any ESP8266, it is necessary to have it properly powered and connected to a PC. In addition, a means of resetting the IC and putting it in the download mode must be provided. The schematic diagram and photograph below show the recommended setup; note that the wire colors in the schematic correspond to the wire colors in the photograph. As you see, it is based on an ESP-01 module, but the same connections will work with other modules so long as the same ESP8266 I/Os are used as shown in the schematic diagram. For additional details, see this article.

 

PuTTY Terminal Program

Once the hardware setup is complete, the next step is to power up the ESP8266 and attempt to communicate with it. A simple terminal program is required and the following procedure uses PuTTY, a free program available here. You can use another terminal program, but you will have to make allowances for any differences between it and PuTTY.

Open PuTTY, and click the Serial radio button. Enter the COM port number (which must be less than 10) and the baud rate (which will most likely be 115200 or 9600.)

In the small Saved Sessions window, enter ESP8266, and click the Save button. The PuTTY window should be similar to the picture below.

Click the Open button, and a PuTTY terminal session window should open.

Enable Caps Lock on your PC, and type AT, but don't press Enter. You should see AT in the PuTTY terminal window. If you don't, you may have selected the wrong COM port or the wrong baud rate. Close PuTTY and start again at the top of this section. The permissible baud rates are: 9600, 19200, 38400, 74880, 115200, 230400, 460800, and 921600; try each one in turn until you find the one that works.

When you see AT in the PuTTY terminal window, while holding the Ctrl key down, press the M key followed by the J key. Release the Ctrl key. You should see OK in the PuTTY terminal window as shown in the picture below.

Note that if you make a typing mistake while in the terminal session window, it may not be possible to successfully correct the mistake. Rather than try to edit out your mistake, it is often better to simply hold down the Ctrl key, and press the M key followed by the J key, which will generate an Error message. Then, you can start again and type the correct input.

When you see that first OK message, you have cleared a big hurdle. Then you know that your hardware setup is correct, the ESP module is functional, you have selected the correct COM port, and you have chosen the correct baud rate. Close the PuTTY terminal session window, and click OK when PuTTY asks if you are sure.

Now, reopen PuTTY, select the ESP8266 saved session, and click the Load button. This should place your previously determined COM port and baud rate settings in the appropriate windows. Click the Open button, and a new PuTTY terminal session window will open.

Enable Caps Lock on your PC, and type AT, but don't press Enter. You should see AT in the PuTTY terminal window. Type a + sign followed by GMR. When you see AT+GMR in the PuTTY terminal window, while holding the Ctrl key down, press the M key followed by the J key. Release the Ctrl key. You should see the ESP8266 firmware information in the PuTTY terminal window similar to that shown in the picture below.

In the first line above, you see the AT+GMR command that you typed. As you may know or have guessed, the command scheme that you are using to communicate with the ESP8266 is called an "AT command set" because all the commands begin with the letters "AT."

Unfortunately, there are many different versions of AT command sets; they all contain some of the same commands, but there are many AT commands that are not standard among all AT command sets. Even within the ESP8266 community, there are a number of versions. The second line above indicates that this particular 8266 device is programmed with firmware that uses version 0.25.0.0 of the AT commands. Somewhere there is a document that defines the commands that are included in version 0.25.0.0, but without that document you must use trial and error to determine the AT commands that work. That is a very tedious process at best, but fortunately there is a solution to the dilemma that will be explained shortly.

Line three identifies the Software Development Kit (SDK) version that was used for this particular ESP8266 as version 1.1.1. Each SDK also includes an AT command set that is part of the firmware, and that is suited for controlling that firmware. Ostensibly, AT version 0.25.0.0 works with SDK version 1.1.1. But still one needs the document that describes AT version 0.25.0.0 in order to know what commands are included. There is a better way as described in the next section of this article, but before you go there, try another AT command to see what happens.

Enable Caps Lock on your PC, and type AT+CWLAP. When you see AT+CWLAP in the PuTTY terminal window, while holding the Ctrl key down, press the M key followed by the J key. Release the Ctrl key. After a few seconds, the terminal window should look similar to the photo below.

AT+CWLAP has commanded the ESP8266 to list all the Wi-Fi access points within its range. In the case above, two access points were found: one is called "ATT936" and the other is called "tracecom 2.4." Your results will, of course, be different and should include your own Wi-Fi network plus those of any of your very close neighbors.

Close the PuTTY terminal session window, and click OK when PuTTY asks if you are sure.

 

ESP Flash Download Tool

Although it's rarely mentioned on the Web, Espressif, the designers of the ESP8266 integrated circuit, have created a specific piece of software to update the firmware in their chips. It's the ESP Flash Download Tool, and it's available here. Download, extract, and install the latest version on your PC; as of this writing it's FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar.

Start the tool, and you should see two windows open: a GUI window with places for you to enter information, and a terminal-like window that logs the actions taken.

A few things are worth noting, but are not reasons for concern.

  • The GUI window is identified as V2.3 while the log window is identified as V2.4. Apparently the GUI window is mislabeled.
  • The GUI window COM port and baud rate may contain data.
  • The GUI window address boxes may contain data.
  • The log window may contain data.

 

Getting the Latest Firmware

Espressif has a page where they post the latest firmware available. Go to bbs.espressif.com, click on the SDKs entry under Downloads, and then click on "latest release" under Announcements. As of today, 28 Oct 2015, you will see a page that includes the following.

The latest release of the Non-OS SDK (Software Development Kit) is what you want, and it would seem that you could click just under "Latest Version: 1.4.0" and get the latest version. But that's not quite right; notice that there is a patch available identified as esp_iot_sdk_v1.4.1_15_10_22. It's not really a patch; it's a corrected version of version 1.4.0, and was released on 22 Oct 2015. You want that and the AT_v0.50 bin files. Click on each of those in turn and download the files; you can save them wherever you want, but they are fine in the Downloads folder.

Of course, by the time you read this, there may be later SDK releases and their locations may be altered, but at least you know where to look. Just be sure that you read carefully to be sure you are getting the very latest version. As you have seen from the preceding, it's not always obvious.

You may have noticed that there is a section for downloading documents. They all contain good information, but sometimes there is a substantial loss in the translation from Chinese to English. For now, be sure to get the latest versions of ESP8266 AT Instruction Set and Espressif IOT SDK User Manual; both are currently at version 1.4.

 

Installing the Firmware

Start the ESP flash download tool and make sure that none of the boxes at the top left of the GUI window are checked. Enter the COM port you are using, and a baud rate of 115200 in the boxes near the bottom of the window. Note that as you enter data, it is recorded in the log window.

Power up your ESP programming setup, and connect it to your PC. Press and hold the Reset button, and then press and hold the Flash button. Release the Reset button, and then release the Flash button. Click the START button in the flash download tool GUI window. The flash download tool should check the ESP8266 in your setup, and produce a report similar to the pictures shown below. Press and release the Reset button on you programming setup to exit the ESP8266 download mode and resume normal operation.

Notice that the GUI window now contains information about the ESP8266 including the size of the flash memory (8Mbit in the example,) the crystal frequency (26MHz in the example,) and two MAC addresses for the chip. The same information is contained in the log window.

Next, click the box in the GUI window labeled "SpiAutoSet," which will cause the download tool to automatically select the correct flash size and crystal frequency.

Now, you need to select the files to be installed in the ESP8266 and set the starting memory address for each file. There are four files that must be correctly installed in order to update your ESP chip. Open the Espressif IOT SDK User Manual and find the section on writing images into flash. In version 1.4 of the manual, it begins on page 20. Next, locate the part that describes the version that supports Cloud Update (FOTA,) and within that part, find the table that pertains to the flash size in your ESP8266. In the example, the flash size is 8Mbits which is equal to 1024KB, so table 2 on page 25 of the manual provides the information needed for the example. See the picture below.

The four files needed are: esp_init_data_default.bin, blank.bin, boot.bin, and a user1.bin file. The address at which each file is to be installed is shown next to the file name. The first three of the required files are located in the esp_iot_sdk_v1.4.1_15_10_22 folder you previously downloaded from bbs.espressif.com, and the fourth is located in the AT_v0.50 bin files. Navigate to where those downloaded files are, and copy each one into one of the blanks at the top of the Flash Download Tool GUI window; enter the correct address for each file in the blank next to the file name. Follow these steps for each file.

  • Click inside a file "set firmware path" space.
  • Click the ... button to the right of the space.
  • Navigate to the location of the desired file and click the file. The GUI will automatically enter the file name in the space.
  • Enter the correct address (from the table) for each file.

Note that the files to be flashed may not be exactly the same as those listed in the table, but will be a close variant. With a little examination and applied logic, the correct files should be readily apparent.

Now, click the four check boxes to the left of each file name. The Flash Download Tool GUI window should be similar to the picture below. Double check the addresses against the table.

 

On your ESP programming setup, press and hold the Reset button, and then press and hold the Flash button. Release the Reset button, and then release the Flash button. Click the START button in the Flash Download Tool GUI window. The download should begin, and its progress should be shown in the Flash Download Tool GUI window and the log window, as depicted below.

As shown above, a successful flash operation will result in all the files being sent to the ESP8266, and the COM port closed.

 

Checking for a Successful Flash

When the flash operation is complete, close the Flash Download Tool. Remove power from the ESP programming setup, and then reconnect the power.

Reopen PuTTY, select the ESP8266 saved session, and click the Load button. This should place your previously determined COM port and baud rate settings in the appropriate windows. Click the Open button, and a new PuTTY terminal session window will open.

Enable Caps Lock on your PC, and type AT, but don't press Enter. You should see AT in the PuTTY terminal window. Type a + sign followed by GMR. When you see AT+GMR in the PuTTY terminal window, while holding the Ctrl key down, press the M key followed by the J key. Release the Ctrl key. You should see the ESP8266 firmware information in the PuTTY terminal window similar to that shown in the picture below.

As you can see, new firmware is evident in the ESP8266. It has been updated from SDK version 1.1.1 to SDK version 1.4.0. In addition, the corresponding 0.50.0.0 version of the AT command set has also been installed, and is documented in ESP8266 AT Instruction Set, Version 1.4.

Close the PuTTY terminal session window, and click OK when PuTTY asks if you are sure.

 

Last Words

With a couple of practice sessions, the entire firmware flash process can be completed in much less time than it takes to read this article. Once it's done, you can be confident of what is inside your 8266, and can focus on your Wi-Fi project instead of "guessing and hoping" about the ESP firmware and the necessary AT command set.

 

Comments

43 Comments


  • CuriousLight 2015-11-01

    Thank you for the thorough write-up. These wireless modules are getting very popular and while their are 3-5 times the price of the wireless nRF24L01+ modules, the ESP2866 are WiFi compliant, which make it possible to directly integrate sensors and small devices to an existing WiFi network.

  • BSB 2015-11-20

    Figured I would check this method out as the last one didn’t work for me. Included a copy of the output from Coolterm below. BTW I get the memory error on all my modules ?

    AT
    OK
    AT+RST
    OK
    WIFI DISCONNECT

    ets Jan 8 2013,rst cause:2, boot mode:(3,6)

    load 0x40100000, len 1396, room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc0
    csum 0xc0

    2nd boot version : 1.4(b1)
      SPI Speed     : 40MHz
      SPI Mode     : QIO
      SPI Flash Size & Map: 8Mbit(512KB+512KB)
    jump to run user1 @ 1000

    CUMEM CHECK FAIL!!!
    d{$Csz
    Ai-Thinker Technology Co. Ltd.

    ready
    WIFI CONNECTED
    WIFI GOT IP
    AT+GMR AT version:0.25.0.0(Jun 5 2015 16:27:16)
    SDK version:1.1.1
    Ai-Thinker Technology Co. Ltd.
    Jun 23 2015 23:23:50

    OK

    flash tool output


    load config ...
    EFUSE_MODE: 1
    load config ...
    test label: Download Panel 1
    self.num: 1
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  115200
    test baudrate selection:  4
    test label: Download Panel 2
    self.num: 2
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  46080
    test baudrate selection:  2
    test label: Download Panel 3
    self.num: 3
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    test label: Download Panel 4
    self.num: 4
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    test label: Download Panel 5
    self.num: 5
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    test label: Download Panel 6
    self.num: 6
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    test label: Download Panel 7
    self.num: 7
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    test label: Download Panel 8
    self.num: 8
    init finished
    ==============
    _COM:  6
    ESP_ROM_BAUD :  115200
    EFUSE_MODE: 1
    ==============
    test baudrate:  9600
    test baudrate selection:  0
    tout as adc
    RF option applied…
    flash size : 1
    (True, [])
    test running : False
    serial port opened
    Connecting…
    chip sync error.
    com closed
    test baudrate:  115200
    test baudrate selection:  4
    test baudrate intop:  115200
    (True, [])
    test running : False
    serial port opened
    Connecting…
    chip sync error.
    com closed
    dl_list:
    []
    []
    []
    (True, [])
    test running : False
    serial port opened
    Connecting…
    chip sync error.
    com closed

    There are two errors and one is with the mem issue from coolterm and the other is the chip sync error If I can get past those I should be on a winner

  • nrnt 2015-11-21

    Thanks a lot for the manual. Unfortunately it is not working for me. I followed all the steps but after rebooting the ESP I can’t establish a serial connection to the device. Do you have any idea?

  • Daniel B 2015-11-23

    Thank you for saving my tomorrow since today I lost it trying to find an answer to how to update the ESP.
    Your tutorial worked perfectly though I have seen some inconsistencies in what the TOOLV2.3 says and what the com port outputs.
    The tool says that the ESP01 is an 8Mbit but the com say that SPI Flash Size & Map: 32Mbit(512KB+512KB).
    Could this be that I have an 32Mbit flash?


    ready
    AT+GMR
    AT version:0.50.0.0(Sep 18 2015 20:55:38)
    SDK version:1.4.0
    compile time:Sep 18 2015 21:46:52
    OK

    ets Jan 8 2013,rst cause:2, boot mode:(3,7)

    load 0x40100000, len 1396, room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc0
    csum 0xc0

    2nd boot version : 1.4(b1)
      SPI Speed     : 40MHz
      SPI Mode     : QIO
      SPI Flash Size & Map: 32Mbit(512KB+512KB)
    jump to run user1 @ 1000

    don’t use rtc mem data


    Thank you again.

  • drdhdmd 2015-12-28

    I cannot seem to find the BIN files.  Version 1.5 now seems to be the newest SDK but where are the BIN files located?

  • Boopathi Codetrack 2016-01-29

    Getting gerbish text while connecting putty..any idea?

    • David Rigler 2016-02-02

      right click on “COM? - PuTTY” (top left)
      then “reset terminal”  (maybe)

  • Charles R. Hampton 2016-02-10

    I apologize for not replying sooner to the comments, but due to a software glitch, I was not being notified. To those of you who were helped by the article, I appreciate your positive feedback. If you are having trouble, please post again, and I will try to help. Thanks for reading and commenting.

    • Jason Axford 2016-02-25

      Hi Charles, thank you for posting this tutorial.
      I am using the ESP-01/Arduino IDE setup to flash the firmware because I wish to join a WPA2-Enterprise network.
      I have a problem with your instruction:
      “Press and hold the Reset button, and then press and hold the Flash button. Release the Reset button, and then release the Flash button.”
      There are no such buttons on the ESP module and only one reset button on the Arduino.
      Can you please elaborate on this instruction?
      I am able to communicate with the ESP module and connect to a home wifi network.
      I now have the GPIO0 pin connected to GND to set it to flash mode however your step is confusing me.

      • SurprisedEwe 2016-03-20

        These are the buttons wired onto the breadboard - see the first image in the article (and which is described in Charles first article he linked above) smile
        When you release the button (or take away the connection to ground in your case) the ESP will be in flash mode and will accept the files.  This is also true when uploading code from the Arduino IDE.
        If you wire up a breadboard similar to the example in the article it makes life much easier to program the ESP.  I also found that it can sometimes take a couple of resets of the chip before it starts behaving appropriately.

  • picopi 2016-02-15

    The files in your write-up don’t even exist in esp_iot_sdk_v1.4.1_15_10_22.
    I don’t get why this chip is so hard to flash. Why can’t these ppl create one bin or hex file to be uploaded?
    lousy documentation doesn’t help either.
    Hope some other company would come along and kick the bejesus out of them and send them packing.

    • Charles R. Hampton 2016-02-15

      picopi

      I agree that flash process is very cumbersome. It too days for me to work out exactly how to do it.

      I no longer have the hardware set up for flashing ESP modules, but I can assure you that the procedure worked just as I described it in the article. Apparently, Expressif no longer makes esp_iot_sdk_v1.4.1_15_10_22 available for downloading, so your best bet will to download the latest SDK. Here are the instructions for that.

      go to http://bbs.espressif.com/
      Under Downloads, click on SDKs
      Under SDKs, click on [Latest Release] ESP8266 SDK
      Under Non-OS SDK including mesh, click on Click to Download

      Download the zip file.
      Unzip the files.

      Follow the instructions in the article, but substitute the corresponding files that you just unzipped.

      I hope that helps. Good luck.

  • Parag P 2016-02-18

    Hi,
    Thanks for the detailed info around this. I am novice at MCU and ESP as well. I have followed all the steps as mentioned on top. However when I try to load the chip, I get an error saying ‘Chip Sync Error’. I have tried using the bin files mentioned here and as well as in the text file that came along the Flash Download package, nothing is helping.
    Would you be able to advise.??
    Aside to BSB - Were you able to get rid of Chip Sync Error?

  • Parag P 2016-02-18

    Sorry, for the last minute updates. I am able to reach almost at the end and was able to run the Flash Download Tool and got info in the Detected Info window as well. When I connected to putty (and tried with Arduino IDE as well) I am getting continuous messages that read - which I am unable to trace the cause of. Would you know any thing about this. The ‘Reset Terminal’ option as suggested by David is not working here.

  • ken2004 2016-02-19

    Is updating the firmware necessary when programming in the Arduino environment? You didn’t mention a firmware upgrade in the previous Arduino article.

    I was under the impression the Espressif library was linked in during the sketch build and uploaded each time, though what is going on during the build is something of a mystery to me. It is certainly a big upload, even for blink.

    • tracecom 2016-02-19

      No, the firmware in the ESP is replaced with new firmware to work with the Arduino IDE. Just follow the procedure in the Arduino article.

  • nemethg 2016-03-01

    Hello. I’m absolutely new in Arduino. I had some problems with ESP8622 and tried to reduce the baudrate to 9600. I just read on other forums to use AT+IPR=9600. Tried. The modul stopped to work.  A blue lamp is always ON on the modul and also on USB / UART modul (communication leds).
    The firmware was:
    AT version:0.40.0.0(Aug 8 2015 14:45:58)
    SDK version:1.3.0
    Ai-Thinker Technology Co.,Ltd.
    Build:1.3.0.2 Sep 11 2015 11:48:04
    I did update according your description, with the latest FW, but the problem is still the same.
    Please do you have any idea, how to start to work it again?
    I searched, but not find anything of this problem.
    Many thanks.
    Gábor

  • ilak2k 2016-03-10

    Works!!! Tried tons of instructions from every source, with no success… And this worked! Charles, you’ve made a truly amazing ESP firmware update guide… Thank you very much! The best part, I didn’t even have to go through the SDK manual for the bin files and addresses

    • Charles R. Hampton 2016-03-11

      Thanks for the positive response. It takes attention to detail to follow the procedure, and I fear that failures are mostly due to not following the instructions. Apparently you did it right, and succeeded. Congratulations!

  • atexit8 2016-03-12

    1. Is it possible that my ESP-01 has really basic firmware?  It will not respond to any AT command. All I see when it is first powered on is gibberish, then Ai-Thinker Technology ... ready   It would indicate the baud rate is right.  I am sending newline + carriage return with the AT commands.

    2.  Is there a particular USB-TTL converter that you depend on?

    • Charles R. Hampton 2016-03-13

      1. If you are using PUTTY, you must type the AT commands exactly as described in the article. “When you see AT in the PuTTY terminal window, while holding the Ctrl key down, press the M key followed by the J key. Release the Ctrl key. You should see OK in the PuTTY terminal window as shown in the picture below.”
      2. No special USB-TTL converter is required. If you are seeing a response from the ESP-01 in PUTTY (or any terminal window) then your USB-TTL converter is working.

      Thanks for your comment. Good luck.

  • I can update my nodemcu with great tutorial, but i can’t update my esp 01 and 12.

    The app “esp flash download tool” show me the warning: “writing 0x00000000… (0 %) error when download firmware com closed”

    I repeat the same process of nodemcu to models 01 and 12 of esp8266.

    • Charles R. Hampton 2016-03-26

      I have no experience with the NodeMCU, but am glad you were able to update it. Given that I have used the process as described in the article many times, and several others were able to also use it successfully, I can only suggest that you might be making some small mistake in the procedure; it only takes one minor error for the process to fail. Thanks for your comment.

  • zenerz 2016-03-26

    Excellent article, very well explained and guess what….. worked first time!!

    Thank you for ALL your hard work

    John.

  • dapug 2016-03-27

    I’m finding this patch business _very_ confusing. If you go to the latest release (right now is v1.5.2) you do find a patch mentioned, but no AT_v.x bin files. Just a patch that has a few *.a lib files - no idea what to do with that. Also, in v1.5.2 in the bin/at folder there are two bin files for user1… user2… what’s that about?  Lastly, when I use AT+GMR, all I get is “0018000902-AI03” - nowhere near the output you showed with AT, SDK version and vendor info.

    Can you shed some additional light on all this? Thanks!

    • Ed Wl 2016-08-28

      newest patch seems to be 16 july 2016
      and I only find a few of the mentioned files, no user1 file but a user1.xxxxnew.5.bin. No masterdevice, no esp_init.
      i’d say a few things changed

  • eddy1000 2016-04-25

    Just a quick question to make sure I understand things regarding the firmware:
    When I buy an ESP8266 , say the esp8266-01 it has firmware in there already that alows me AT commands and to use it as say a WiFi shield to my Arduino.

    I can use the Arduino environment to upload programs to that same module so it will act stand alone.

    But… after I have uploaded an Arduino program, the original firmware is replaced and I cannot use it with AT commands anymore, nor as a WiFi shield.
    For that I have to reflash the original firmware again as explained in your article.
    Is that a correct assumption?

  • yatindeshpande77 2016-04-28

    Hey hi,
    Thanks for the detailed info about firmware update.I am facing the same problem as Parag P faced. I have followed all the steps as mentioned on top. However when I try to load the chip, I get an error saying ‘Chip Sync Error’. I have tried using the bin files mentioned here and as well as in the text file that came along the Flash Download package, nothing is helping.
    Would you be able to advise.??

  • Hurnst 2016-05-17

    For the folks that have been having trouble following this tutorial I would like to share one thing that made a huge difference in my own results.  You may be able to reflash and use your ESP device just using the power supplied by the UART adapter as shown in the authors breadboard photo.  In my own case I was getting sporadic results,  one time it worked the next no worky..Until I added a second 3.3 v supply and powered the ESP with that instead of the UART.  Just be sure to make a connection between the ground of the UART and the second supply.  Once I did that everything just seemed to work with repeatable results and much less hair pulling.

    • Charles R. Hampton 2016-05-17

      Excellent suggestion! I had not thought of that possibility, but I agree wholeheartedly.

  • ashu12 2016-06-06

    I found your configuration useful as before i thought that my ESP is dead I am trying the same hardware configuration as provided and checked with several baud rates, all are sending garbages except 115200 but it is displaying “invalid” at the end after pressing the reset. Moreover i am not able to write anything in the putty terminal with all the mentioned baud rates. Kindly suggest the needful for this, is there still something wrong in the baud rates or anything else please help.

  • ashu12 2016-06-06

    I found your hardware configuration useful, before this i thought that my ESP has gone thanks a lot. As mentioned i have tried several baud rates all are giving the garbage except 115200 but at the end it is showing “invalid” after pressing reset pushbutton. Kindly suggest the needful is it the hardware fault or just caused by some other issues please help

  • mahmoud nagih 2016-06-11

    I have a problem first
    AT
    ok
    but when i write AT+GMR
    i get :smart link(http://www.smlink.com)
    ver4.20.01
    MV   {CID/SPK}
    and when i write AT+RST
    i get : ERROR
    and i get error with any other command
    i don’t know where is the problem

  • Many thanks for this detailed tutorial it’s helping a lot. A little fix for your article and a useful reference: You say “the flash size is 8Mbits which is equal to 1024KB”. It’s misleading and confusing as abbreviation for kilobit and kilobyte is same “KB”. 8Megabits is equal to 1000Kilobits. By the other hand the 1024 value makes me believe it’s referring to Kilobytes and how memory is allocated in the EEPROM (in 1024KB blocks). These misleading references are a common place for these “exotic” parts. As example mine ESP-01 cames with EEPROM labeled as BergMicro, the page http://www.elnec.com/en/device/Berg+Micro/BG25Q80A+(ISP)/ says for this EEPROM: “80, 80A = 8Mbit (1024kx8)”, again, misleading. Logic says to me that eight blocks of 1028Kbytes forming a 8Mbytes EEPROM but with the crossed references now I’m not sure if what I have is a 1 or 8Mbytes EEPROM. Anyway, that’s, 1024 refers to how memory blocks (and consequently the right addressing that’s show on the table), is disposed on the EEPROM.

  • Many thanks for this detailed tutorial. It’s helping a lot. A little fix for your article and a useful reference (for common EEPROM chip): You say “the flash size is 8Mbits which is equal to 1024KB”. It’s misleading and confusing as abbreviation for kilobit and kilobyte is same “KB”. 8Megabits is equal to 1000Kilobits. By the other hand the 1024 value makes me believe it’s referring to Kilobytes and how memory is allocated in the EEPROM (in 1024KB blocks). These misleading references are a common place for these “exotic” parts. As example mine ESP-01 cames with EEPROM labeled as BergMicro, the page http://www.elnec.com/en/device/Berg+Micro/BG25Q80A+(ISP)/ says for this EEPROM: “80, 80A = 8Mbit (1024kx8)”, again, misleading. Logic says to me that its eight blocks of 1028Kbytes forming a 8Mbytes EEPROM but with the crossed references now I’m not sure if what I have is a 1 or 8Mbytes EEPROM. I guess 8. Anyway, that’s, 1024 refers to memory blocks size (and consequently the right addressing that’s show on the table), are disposed on the EEPROM.

  • Robert Grech 2016-07-08

    Very accurate write up. Thanks! The only thing that didn’t work for me was the firmware programmer ESP8266 Download tool V3.3.4. For an unknown reason when I tried to establish a serial communication through this software an error was occurring. It had something to do with the baudrate and I couldn’t come to a conclusion for this occurrence. To flash the frimware I switched to NodeMCU and it worked fine.

  • mahmoud nagih 2016-07-14

    I have a problem which made me tired to find a solution
    while connecting esp8266 to TTL and try to write commands on putty ,a lot of time I find no response and sometimes it gives response for short time then give me no response
    I realized it sometimes has power decreased to 2.5v and I don’t know why and sometimes it has 3.3v but also has no response
    I hope to find a solution as soon as possible and I will be grateful

    • Charles R. Hampton 2016-07-14

      Since I wrote the article, I have learned that the ESP modules are very sensitive to drops in supply voltage. When the transmitter is on, the extra current drawn can pull the voltage quite low. I suggest that you use a better 3.3v power supply…preferably one that can supply at least 500mA. A good power supply will eliminate a lot of intermittent problems. Thanks for your comment.

  • Craig432 2016-07-19

    Charles,

    Thanks a bunch.  Your first article got me going after weeks of near-success with other venues though flaky outcomes.  I’m especially enjoying using the example code found in the Arduino IDE found with your help.  I’m trying to follow the this second article but have a couple of questions that the Espressif documentation doesn’t address:
    1.  Is my ESP8266-01 the same as the ESP-Launcher referred to by the Getting Started Guide?
    2.  Do you need to use VirtualBox emulator if using Windows OS?  Again indicated by Espressif
    3.  The current listing of available firmware versions is confusing.  It appears to me that V1.5.3.3 is the latest (as of 7/19), though not the selection at the top of the list.  Is this the one I should use?

    Thanks again for your careful and complete work!
    Craig

  • Shafiqah Abdullah 2016-07-28

    THANK YOU SO MUCH. THIS ARTICLE IS REALLY HELPFUL.

  • Goga 2016-08-14

    Thank you for the instructions. I am stuck at PuTTY configuration step. I tried every baud rate and used the port Arduino software detected but I cannot write AT(even tried ports from 1 to 5).

    What am I doing wrong?