Cannot recover from Fatal exception (0): problem during boot
Posted: Thu Jan 07, 2016 11:29 pm
Used hardware: Adafruit HUZZAH ESP8266
Used software:
On serial monitor (74880 baud) module shows always endless loop of
Trial to recover:
a) Reflash module with working code (works on different ESP12 module). ==> fail, same error, only epc1=0x... shows different address
Terminal output:
b) Reflash module with NodeMCU 0.9.6 ==> fail, same error, only epc1=0x... shows different address
c) Reflash module with lates AT firmware found on github => fail, same error, only epc1=0x... shows different address
d) Erase complete flash with esptool.py. Reflash module with boot and esp_init_data_default.bin from latest AT firmware (no user1.bin or user2.bin was flashed) ==> no more Fatal Exception
Try to eliminate power supply problem
Tried 4 different power supplies (Adafruit Huzzah ESP8266 has onboard power regulator, input voltage range 3.3V to 16V) and 3 different Adafruit Huzzah ESP8266 modules
Try to check for flash failure
a) Erase and read back
I went to a lot of forums and searched for this problem, but found no recovery solution that worked in my case.
Anybody has an idea what else I can try to recover the module?
Used software:
- - Arduino IDE V1.6.7 with esp8266 board V2.0.0
- AT firmware (latest from github https://github.com/espressif/ESP8266_AT)
- NodeMCU (0.9.6-dev_20150704 from github https://github.com/nodemcu/nodemcu-firmware/releases
- Espressif ESP FLASH DOWNLOAD TOOL V2.4
esptool.py
- - Tested my own project (written with Arduino IDE)
- Used Arduino OTA (device is in difficult accessible location)
- OTA worked several times
- OTA failed, device not connecting to WiFi anymore, even after power off/on cycle
- Removed ESP module, try to reflash over serial port with FDDI cable
- Still ESP module fail to boot
On serial monitor (74880 baud) module shows always endless loop of
Code: Select all
Fatal exception (0):
epc1=0x40211668, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000]
Trial to recover:
a) Reflash module with working code (works on different ESP12 module). ==> fail, same error, only epc1=0x... shows different address
Terminal output:
Code: Select all
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld
Fatal exception (0):
epc1=0x402147a4, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
b) Reflash module with NodeMCU 0.9.6 ==> fail, same error, only epc1=0x... shows different address
Code: Select all
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld
Fatal exception (0):
epc1=0x402147a4, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
c) Reflash module with lates AT firmware found on github => fail, same error, only epc1=0x... shows different address
Code: Select all
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 612, room 16
tail 4
chksum 0x12
load 0x3ffe8000, len 788, room 4
tail 0
chksum 0x50
load 0x3ffe8314, len 264, room 8
tail 0
chksum 0x4a
csum 0x4a
2nd boot version : 1.1
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 32Mbit
jump to run user1
Fatal exception (0):
epc1=0x40211558, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
d) Erase complete flash with esptool.py. Reflash module with boot and esp_init_data_default.bin from latest AT firmware (no user1.bin or user2.bin was flashed) ==> no more Fatal Exception
Code: Select all
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 612, room 16
tail 4
chksum 0x12
load 0x3ffe8000, len 788, room 4
tail 0
chksum 0x50
load 0x3ffe8314, len 264, room 8
tail 0
chksum 0x4a
csum 0x4a
2nd boot version : 1.1
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 32Mbit
jump to run user1
user code done
Try to eliminate power supply problem
Tried 4 different power supplies (Adafruit Huzzah ESP8266 has onboard power regulator, input voltage range 3.3V to 16V) and 3 different Adafruit Huzzah ESP8266 modules
- 5V USB supply from iPhone, 5V, 1A
5V USB supply from Samsung Note 10.1, 5V, 2A
9V wall plug with additional caps (470uF elec. & 100nF ceramic), 9V 1A
5V from LM317 build power supply, 5V 1.5A
Try to check for flash failure
a) Erase and read back
- - erase complete flash with esptool.py erase_flash
- read back complete flash with esptool.py read_flash 0 4194304 erased.bin
- check erased.bin with hex editor ==> complete content is 0xFF
- - erase complete flash with esptool.py erase_flash
- 0x000000 boot_v1.1.bin
- 0x001000 user1.bin
- 0x07c000 esp_init_data_default.bin
- 0x3fc000 esp_init_data_default.bin
- 0x07e000 blank.bin
- 0x3fe000 blank.bin
- use CombineBin to create combined file target.bin
- read back complete flash with esptool.py read_flash 0 4194304 at.bin
- compare at.bin with target.bin ==> complete content is identical
- flash AT firmware with ESP FLASH DOWNLOAD TOOL V2.4
- used addresses:
I went to a lot of forums and searched for this problem, but found no recovery solution that worked in my case.
Anybody has an idea what else I can try to recover the module?