Loading new firmware onto an ESP8266
Firmware
First you need a firmware file. You can build one yourself with the Toolchain or download one:
-
Espressif firmware source updated at http://bbs.espressif.com
-
Electrodragon provides a custom v0.95 AT Firmware based on espressif SDK 0.93. (list of changes)
-
NodeMCU - firmware for running Lua scripts, or see the forum article Build your own custom NodeMCU firmware in the cloud
-
MicroPython - firmware for running Python 3 scripts. Supports several microcontrollers including the ESP8266.
-
ESP8266Basic - Basic interpreter with browser based development.
-
Other projects listed on the user projects section of the wiki home
-
See this site for a prac.http://www.xess.com/blog/esp8266-reflash/
Prerequisites
To flash the ESP8266, you'll need first need to wire things up. See Getting Started with ESP8266 for the basics.
Connect GPIO 0 to ground and reboot the ESP8266 to enter flashing mode.
GUI Flashing tool: NodeMCU
The NodeMCU flasher is designed for use with the NodeMCU firmware, but it can also be used to flash other firmware files. Windows-only currently, but a cross-platform version is in the works.
Command Line Flashing Utilities
See ESPtool on Github and Christopher Rust's accompanying YouTube tutorial. However, if you don't want to use a Python-based tool, there are two other command-line tools on Github: Christian Klippel's esptool-ck written in C for Windows, Linux and OS X, and Don Kinzer's esp_tool written in C++ with makefiles for Windows and Linux (also includes a pre-built Windows executable).
All three command-line utilities perform the same basic functions but the invocation syntax is different for each. Kinzer's esp_tool utility can also build a sparse combined image file meaning that most of the “filler” between the actual image data components is omitted. Omitting the filler can significantly reduce the Flashing time while still providing the benefits of a combined image file.
Uploading Scripts
For NodeMCU or MicroPython, use ESPlorer or NodeMCU Studio to upload the Lua or Python scripts after uploading the initial firmware.