January 23th Espressif published new ESP IOT SDK on their forum v0.9.5. My ESP-12 came with with a pretty old version so I decided to update it to latest one:

ESP-12 firmware update pin configuration


As picture presents in addition to the normal operation we have to pull down GPIO0 and pull up GPIO2.

Upgrade using binaries from Espressif

To upgrade you can use binaries that where delivered in zip packaged and python esptool. Run following commands:

First, we clone esptool repository, then we get latest SDK release directly from the forum and finally we ran esptool.

If you will get something like this:

You can work around this by toggling power to the module right before executing esptool command. It works on my side.

Successful flashing looks like this:

After disconnecting GPIO0 and GPIO2 you can boot new firmware. Results should look like this:

Of course, you will need the toolchain to use new SDK.


esp-open-sdk is probably easiest to use the toolchain that I found for ESP8266. esp-open-sdk puts together steps created by ESP8266 Community Forum published in esp8266-wiki repository.

esp-open-sdk at the moment of writing this post didn’t support v0.9.5 SDK, but adding this support was pretty straightforward and can be found on my GitHub for of the repo. There is also pending PR that hopefully will be merged.

Procedure is straight forward to follow:

sed command will cause using 0.9.5 string as VENDOR_SDK for default build.

On my i7-4700 single threaded compilation takes ~20min. BTW I’m trying to figure out why I cannot use multiple jobs here.

Final message should contain something like:

Just execute this command in your shell. If you missed that message run make again it should skip all already compiled parts and display the final message again.

Toolchain usage

To use toolchain with example code from v0.9.5 SDK you can simply:

Use package like it was presented in “Upgrade using binaries from Espressif” section. Trying to compile exmaples in esp-open-sdk will give you error like this:

When inside esp_iot_sdk_v0.9.5:

Ommiting COMPILE=gcc will result in error caused by using differen compiler name:

Correct output looks like this:

Now ../bin directory contain eagle.flash.bin and eagle.irom0text.bin, which you can use to flash your ESP8266 using esptool:


Thanks for reading. Hope that this post fill the gap that some beginners can experience when googling through a straightforward tutorial about playing with ESP. If you like this post please share. If you see some bias or you just want to share some facts or ask questions then please leave a comment.