ESP8266: Flash Module Firmware

Flash / Update ESP8266 Wi-Fi module

Flash ESP8266 module to avail of new features as the factory module will often come with outdated firmware. Some very important features may be missing from older firmware like the ability to set the baud rate. To update the software the module needs to be flashed. This may only be needed once though as the newest firmware adds the cloud updating functionality.


Wire ESP8266 for Flashing

ESP-07 is an SMD package and thus requires GPIO15 pad to be connected to ground. Non-SMD packages such as ESP-01 does not require external connection as it is connected internally. Regardless of package the single difference in wiring for flashing mode is that GPIO0 pin needs to be connected to ground.

Schematic of ESP8266 module in ESP-07 package with flash mode enabled and wired to an FTDI programmer.

Schematic of ESP8266 module in ESP-07 package with flash mode enabled and wired to an FTDI programmer.


Check ESP8266 Firmware Version

Check firmware version.


If ERROR is printed it is likely due to outdated firmware version which does not have this command. If successful the command returns a 10 digit number like 0018000902. The first 5 digits represent the SDK version while the last 5 digits represent the AT version. In this case ESP8266 module is loaded with SDK and AT firmware.


Flash ESP8266 Firmware

Download ESP8266 Update Downloader and run it. Also download v0.9.5.2 AT firmware or a newer version if it exists. Within the Flash Downloader select the firmware file and enter the COM port of the FTDI programmer that is connected to ESP8266 module.


ESP8266 Flash Downloader Tool.

Hit the download button and wait for the flashing process to complete. Failed to leave Flash mode message does not affect the flashing process in any way and can be ignored. If instead you see Failed to connect message you may have selected the wrong port or the port may be used by a different program. To fix this error check that the port is correct and close any programs that may be using it like Arduino IDE or Termite.

ESP8266 Flash Downloader finished flashing

ESP8266 Flash Downloader finished flashing.

After the firmware flashing, module settings may change. Depending on the previous firmware version, the baud rate may now be set to 9600 and new AT commands should be available. Before you test ESP8266 AT commands over FTDI programmer make sure to disconnect GPIO0 pin from GND to stop putting the module into flashing mode. With newer firmware versions it is even possible to update module firmware from the cloud without any additional hardware or wiring.