I find myself needing to update several ESP8266s to rev 0.20 of the firmware). I found myself wandering around trying find the files are and how to do the update again (turns out the procedure I wrote 6 months ago for rev 018 can’t be applied at all to the rev 020 update. Aargh!)
I am expecting to ‘standardize’ on firmware version 0.20_14_11_28 for the foreseeable
future, so I’m documenting how I did the rev 0.20 update so I can repeat it as necessary.
- I am using this website as the primary explanation for updating the firmware. My procedure is more or less a terse summation that website. If you’ve not updated ESP8266 firmware before, I suggest you follow that procedure or at least read through it as it will be more detailed than what I’m doing.
- The updated firmware is available here.
- If unavailable from the above, I will keep a copy of the firmware here. At least until I no longer need it.
- The ESP8266 flashing utility is available here. NOTE: Version v0.20_14_11_28 of the firmware is currently included with the flasher utility.
- and I will keep a copy of it here as well.
Determine Current Version of ESP8266 Firmware
- Connect esp8266 to 3.3V FTDI cable. I use a esp8266 breadboard adapter with a 5V FTDI cable (the adapter has a voltage regulator).
- Check the assigned COM port. If it is > COM6, you need to use device manager to lower the COM port number (this will be required by the flashing software).
- Use AT+GMR to determine current version (remember to use <CR>+<LF> to terminate each AT command:
AT+GMR 0018000902-AI03 OK
- In the above illustration, the version is < 0020 (0018) and is a candidate to update.
Prepare the Hardware
- Disconnect power (USB cable) from ESP8266 before performing the next step.
- Ground the GPI0 pin.
- Connect USB cable to the ESP8266.
Flash the ESP8266
- If you haven’t done so already, download and extract the firmware update, and the flasher software. You don’t install the flasher software. You will just run it straight out of the extracted directory.
- Take a look at the esp_flasher readme.txt file. It will have addresses where each bin file is loaded. At time of writing, the locations are:
Bin Address boot_v1.1.bin---------------->0x00000 user1.bin-------------------->0x01000 esp_init_data_default.bin---->0x7C000 blank.bin-------------------->0x7E000
- Run the flasher, xtcom_util.
- Click tools | config device. Select appropriate COM port and baud rate must be 9600.
- Click on open then connect. It is normal for it to take several tries (like 15).
- Do not click on Close button. That just closes the COM port. Close the window using the X in the top right corner.
- Click API Test | Flash Image Download.
- You are now going to browse for each image file, and use the Program Offset as specified in the readme.txt file you examined above.
- For example, click on browse, navigate to the bin folder, and select the boot_v1.1.bin file. Then enter the offset for boot_v1.1.bin which is 0x00000. Finally, click on the download button.
- At this point, you MUST EXIT the flasher program, remove power to the ESP8266, restore power, and restart the flasher program before downloading the next file. Be sure to leave GPIO0 grounded the entire time.
- Proceed with downloading user1.bin, esp_init_data_default.bin, and blank.bin.
- After the last file is downloaded, unplug USB, remove GPIO to ground jumper, and reconnect USB back again.
- Connect to terminal emulator and verify operation. NOTE that baud rate will now be 115200 now, NOT 9600.
AT+GMR 0020000903 OK AT+CIPSTAMAC? +CIPSTAMAC:"18:fe:34:9f:f9:85" OK