Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By Fduch
#91171 Yes, I have some experience. Temperature of soldering iron was set to 300 degrees Celsius. I'm quite sure it was not too hot for flash chip. Moreover it could not affect ESP chip, I was not soldering it :)
So, yes, I also think it could be PCB issue. Anyway, new ESP is ordered, soon I will try again.
Thank you for help!
User avatar
By Fduch
#91192 Well, it doesn't :)
I bought 2 more ESP-01s. One I will keep as reference. It works well, which means USB and USB-programmer for ESP work well.
I took one of new ESPs, made sure it can be flashed, then replaced flash chip. This time before turning it on I removed flux very carefully and used hair-drier to make sure all remains of liquid disappear. I turned it on in programming mode - ESP blinks with LED. OK, I start flashing, but on 15% it stops with message "Invalid head of packet".
I thought - OK, may be new chip has another default settings, like flash frequency, falash mode, etc. I tried different combination - nothing helped.
Then I thought - may be new flash chip somehow has non suitable memory map. I need to try to reflash it from scratch. First I tried "simple flasher" ("esp8266 flash downloader"), but it was giving some error, I don't remember which one. Because it doesn't have any settings, I decided to try "espressive download tool". I managed to erase flash only one time. After that I couldn't do it anymore, because all erasing or flashing attempts resulted in error message "chip efuse check fail".
If ESP has eFuses (kind of memory, which can be written only once), it could explain why replacing one chip with another causing problems. I saw several videos, where people replacing flash chip on ESP-01 (blue PCB), but never on ESP-01s (black PCB). Well, I started googling and found information that probably that tool doesn't handle errors properly. So, may be error is not related to eFuses at all. It was recommended to use esptool.
OK, I decided to try esptool :) I had to read manual about structure of OTA and non-OTA images for ESP. I need OTA, so first I had to upload "boot.bin". Before that I decided to try to read MAC, using esp tool. Well, in most of the cases it gives error "Timed out waiting for packet header", but I guess once reading of MAC finished successfully. This message is given after tool prints information, read from ESP: chip type, crystal frequency, MAC, etc. Then tool uploades "stub" and executes it. Here I have that error message.
I tried to erase flash again and I guess I succeeded once. It is weird that during that proces was no LED blinking or any progress info. It looked like process is stucked. But aftet 64 seconds it finished with apropriate message. Some time later I tried to erase flash again - it was not possible anymore. I have error "Timed out waiting for packet header" after very long pause.
So, I tried different flash memory settings, different serial speeds, I tried to erase flash, write flash, read mac, etc. - every time I get the same error message. I thought may be something with adapter and used breadboard to make sure that IO0 is grounded at boot time, EN is pulled up - result is the same. If I open serial monitor in Arduino IDE and choose speed 74880, I could see one line message at boot time.
So, looks like serial connection works, but probably some problem with chip. I was about to buy new chip but first decided to try original one. I replaced new chip with original and now magic happens again. Sometimes LED blinks as it is bad connection or as ESP receives something. It's brightness can be higher or lower. Serial connection with ESP is lost, can not establish it anymore. I carefully cleaned ESP from dry remains of flux, used hair drier to remove liquids (if any) - nothign helps.
I remoded chip at all and tried to establish serial communication with ESP - doesn't work. LED never blinks. I thought, may be PCB has poor assemblign quality, may be when I was soldering, some components near flash chip lost their solder. I carefully added solder on some of them - it didn't help.
So, now I have 2 dead ESPs and one alive :) And I really don't understand, what's going on. Now I have only 3 (quite unlikely) ideas:
1. It can be very low quality of PCB. Ex. some pathes are going too close to flash chip pads and somehow diring soldering short chircuit happens. I was checking it very carefully with lenses, but could not find any problems. But if path is going close to pad under black paint - I guess it could happen. Again I hadrly believe in this.
2. Somehow new versions of ESPs has internal protection from flash upgrade. Ex. if manufacturer wants to make money selling versions with bigger flash with much higher prices. I hadrly believe in this too
3. Probably chip replacement was quite straightforward on ESP-01 (not S) but on new versions it is required to do some additional actions to prevent bricking of ESP.
I would really-really appreciate any ideas, how to bring those ESP to live or how to upgrade flash chip on ESP-01s in correct way :)
User avatar
By eriksl
#91194 I've done this on newer ESP01's (maybe an 01S but I'm not sure). The esp8266 does not have efuses, the esp32 does, but they're in the esp32 itself, not in the flash.

As said, without any flash attached, the esp8266 can boot into bootloader mode and is able to read the mac address (which is in ROM, probably OTP, inside the chip). I'd really suggest to try that after you remove the original flash chip and before you solder the new chip.