Page 1 of 1

ESP8266 EFUSE Settings

Posted: Wed May 17, 2017 4:31 pm
by WheresWally
Hi, could someone that knows please explain what EFUSE setting are?

I have 2 modules that always Boot-Loop-Exception(0) forever.
Are these parts recoverable or are they doomed?
When I use the Download Flasher V2.4 it shows the following.

ESP8266 #1
bit[1:0] error
===================
CRC IN MODE1:
crc_val_res: 100
target crc val: 100
========================
CRC IN MODE1:
crc_val_res: 233
target crc val: 233
========================
efuse warning found...

EFUSE LOG:
REG0:D4E90001
REG1:4200D107
REG2:6400b000
REG3:005CCF7F
===================
EFUSE NORMAL MODE
===================
EFUSE VAL ERROR...
EFUSE VAL WARNING...



ESP8266 #2
bit79:76 error
bit[1:0] error
bit[59:56] error
===============
CRC IN MODE1:
crc_val_res: 248
target crc val: 163
=================
bit[47:24] crc warning
efuse warning found...

EFUSE LOG:
REG0:FFA300FF
REG1:FFEFD7F0
REG2:feffffff
REG3:07FFFFFF
===================
EFUSE NORMAL MODE
===================
EFUSE VAL ERROR...
EFUSE VAL WARNING...

Re: ESP8266 EFUSE Settings

Posted: Thu May 18, 2017 12:29 pm
by pratik
The eFuse settings for ESP8266 are not publicly documented for some reasons. But eFuse is a one-time-programmable memory.
Using a third party flash download tool may sometimes cause issues if it writes incorrect values to the fuse bits.
You should start off with new modules, I don't think eFuse errors can be resolved - they are OTP for security reasons.

Re: ESP8266 EFUSE Settings

Posted: Thu May 18, 2017 6:54 pm
by WheresWally
Yes pratik, I think that is the case. I have found more information on the ESP32 and that is the case with the ESP32, well some of them at least.
I assume the hint is in the name,"FUSE".
One time writable registers.
Thanks

Re: ESP8266 EFUSE Settings

Posted: Tue Sep 19, 2017 4:40 am
by grange
Hi,

as I had the same problem (and many others with my ESP01) and somehow fixed it today, I want to let you know what I did. I am sure that somebody else runs into the same problems again.

So what I did: basically I received an ESP8266 ESP01 with 8MBit / 1 MB Flash memory yesterday and played around with AT commands. Then I downloaded the flash downloader tool and upgraded the firmware sucessfully to version 2.0 (as described here). The ESP01 worked a couple of minutes but then the blue started to light up and the board spammed weird stuff into the terminal.

The blue led stayed on even when Tx and Rx were disconnected from by USB2TTL. So after a while reading I found out that it might be caught in some flash routine. Because of that I wanted to reset the firmware to solve that problem but ran into more problems with it.

1) the flash download tool didn't work anymore. From CRC errors to EFUSE errors to "chip sync failed" errors - I didn't get it to work anymore.
2) then I found another flash tool called NODEMCU FIRMWARE PROGRAMMER which seemed to be very handy. It has basically the same options as the first one but seemed to handle errors correctly. I then succeeded in flashing the firmware to the ESP01. But the problem with the blue led still existed. I tried to flash NODEMCU a couple of times but that didn't work either. Then I tried to flash version 1.4 from EspressIf but to no avail either.
3) As flashing worked I thought that erasing the whole flash memory would be the best thing to do but all tries with flashing a 1MB blank file to the ESP01 didn't work out either
4)I read about esptool.py a couple of times and decided to give it a try as it has an option to erase the whole flash memory. In this video it is shown how to get it running on windows. Just install python, set the PATH variable, and install the esptool (py -m pip install esptool). Then you have to find the directory where the esptool has been installed to go there and erase the whole flash: esptool.py --port COM10 erase_flash

Then I downloaded the latest SDK from EspressIf (ESP8266_NONOS_SDK-2.1.0.zip), extracted it and followed the instructions in bin/at/readme.md. I had to write four different .bin files to four different memory sectors as described in readme.

For example: esptool.py --port COM10 write_flash -fm qio 0x00000 C:\Users\MyUsername\Downloads\ESP8266_NONOS_SDK-2.1.0\bin\boot_v1.7.bin

The third file is optional but without it my ESP01 got stuck into a boot-loop. After flashing it too everything was ok (after a couple of restarts - maybe the board takes a couple of seconds for startup after flashing the firmware).

Now it is working again - just took me the whole day to fix it :-D
Hope this helps!

Re: ESP8266 EFUSE Settings

Posted: Tue Mar 27, 2018 3:24 pm
by abhinavg
Hi grange,

Thanks for wounderful solution of the error. I have exactly same problem with my one of the ESP01 1M/Black version. I tried so may options bit nothing worked for me. I will try your solution.

In my case sometimes I am able to flash the firmware and sketch from arduino it works for the first time but when I rest/power off and on again, blue led again comes up. That is really frustrating situation.

I must know the different flash address for all 4 files in order to upload the firmware. You said that it is in the readme file but it is a link that navigates me to the lots of PDF documentation files. it is very difficult to find my answered from there.

If you can share what address you used in your case, it will be great help for me. I have ESP01 1M black version.

//Abhinav

Re: ESP8266 EFUSE Settings

Posted: Sun Sep 16, 2018 11:37 am
by simonliu
abhinavg wrote:Hi grange,

Thanks for wounderful solution of the error. I have exactly same problem with my one of the ESP01 1M/Black version. I tried so may options bit nothing worked for me. I will try your solution.

In my case sometimes I am able to flash the firmware and sketch from arduino it works for the first time but when I rest/power off and on again, blue led again comes up. That is really frustrating situation.

I must know the different flash address for all 4 files in order to upload the firmware. You said that it is in the readme file but it is a link that navigates me to the lots of PDF documentation files. it is very difficult to find my answered from there.

If you can share what address you used in your case, it will be great help for me. I have ESP01 1M black version.

//Abhinav

wow, thanks for your post. I have exactly same problem with my ESP-12F too.
This is a good way to fix the efuse issue. I never used NodeMCU tools but it gives me a hint: Using another tool to flash a different firmware may fix the problem.
Here's what I did:
1. Open Arduino IDE for ESP8266
2. Choose ESP8266-Blink from the example files
3. Upload to ESP8266
4. Use ESP download tools to download new bins to the ESP8266.
The problem is fixed right away.

Thank you again.