I flashed the ESP-12E from AT firmware 2.0 (running ok) to NodeMCU (running ok). When I reflashed it back to the AT 2.0 it is stuck in endless loop on boot:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
no GPIO select!
jump to run user1 @ 1000
rf_cal[0] !=0x05,is 0xFF
I am sure I flashed it correctly, it was not my first flashing of AT firmware. Just to be sure:
esp_init_data_default.bin -> 0x3fc000
blank.bin -> 0x3fe000
boot_v1.6.bin -> 0x0000
user1.1024.new.2.bin -> 0x1000
blank.bin -> 0x7e000
I can even reflash it to the NodeMCU firmware and it works, but reflashing to the AT firmware ends in the same endless loop again.
I suspect the problem is in initialization data, but I'm at my wit's end with it.
rf_cal
is radio-frontend calibration data. The bootloader sees that this is erased flash data (after erasing a flash sector, the data in it becomes0xff 0xff 0xff ...
). Can you do aesptool.py erase_flash
and reflash? It may be that you're flashingesp_init_data_default.bin
to the wrong address thus only reading erased flash contents. The8 mbit
(1 MByte) message seems like it's not using your flash fully. This value is set byesptool.py
during flashing (--flash_size
). What exactly is your flash command? Can you flash default data to0xfc000
?esp_init_data_default.bin
to the address0xfc000
. I found nothing about it in the documentation but this is the way I got the ESP12 to work again. Thanks!