Installing the latest AT firmware on a 4Mbit flash ESP8266 (and others, too!)

One interesting experience with the ESP8266 modules, as received from Amazon or eBay, is that they come with a huge range of firmware versions, and a huge range of flash chip sizes.

This is a companion discussion topic for the original entry at

(Comments from Blogger)

2017-03-21 by Life

Hi, I really liked your post, but I have something to ask.
I have the ESP-01,and it has 4Mbit of flash. I read that the last firmaware version doesn´t work well in the flash size, it requires 8Mbit. Did it work well for you?

2017-03-21 by Russell Graves

As of the time of this post, yes. You can install the newest firmware on a 4Mbit flash. It just won’t be able to self-update.

2017-05-24 by Unknown

On the new version 2.1 where are the eagle files?

2017-05-30 by Russell Graves

Good question. I’ll take a look at doing this with the 2.1 firmware.

2017-08-26 by Carsten Langrock

Thanks. I tried following the SDK documentation, which has two additional writes of the blank.bin file into locations 0x7A000 and 0x78000. When doing so, the ESP-01 goes nuts on reset, the blue light is constantly flashing fast and there’s a ton of garbage on the serial port. Your instructions worked great … just not sure why;-) Thanks!

2017-08-30 by Russell Graves

Try different baud rates and you should get reasonable output on the serial port. This device runs goofy baud rates on boot.

2018-02-13 by Unknown

Hi, Russell,

Just wondering if you have ever tried the AT+CIUPDATE to update the ESP-01’s firmware over-the-air?

2018-02-14 by Russell Graves

I’m sorry, I have not. I like my “things” to remain exactly as I flashed them until I change them myself.

2019-08-30 by Unknown

Hi. For the blue 512MB (4Mb) modules, SDK 1.4.0 has the last presented eagle files in it. This gives AT version 0.50.0.
If you want eagle files beyond this, then - from my understanding -
you need to modify eagle.lib files in latter SDK’s to compile them into eagle type binary’s.
I believe this is can be done with in Linux (or a Linux simulator in Windows) but
it seems complicated.
The aforementioned SDK 1.4.0 had reasonably up to date AT commands so I didn’t think it
worth while spending a lot of time/effort just to get a marginal improvement in my blue 512K modules. I use the black 1MB (8Mb) modules if I want better(?) more up to date AT. SDK 2.1 is will do that job.
Hope that helps