I would need your help because I spent hours looking for the solution but I am stuck.
since a few years I create multiple projects using esp8266 and esp32 nodemcu.
For one of these projects I decided to get rid of the dev board and to create a pcb where I will download directly the firmware to the esp12F.
On my pcb I put some 10K pull up resistors for: EN,IO0,Rst and pull down resistor on IO15.
I connect my pcb to the UART board connecting Rx -> TX, TX->RX, GND and 3.3V.
From the arduino serial monitor I can see that my esp goes into UART mode when I put GPIO0 to 0 and reset the board:
ets Jan 8 2013,rst cause:2, boot mode:(1,7)
When I do a reset without GPIO0 at 0 I get:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
I've checked with a nodemcu and the boot modes fits what i get doing the same.
My problem appears when I want to upload my firmware. If i don't go into UART mode I have the standard
....._____......_____....._____....____
This is normal, but when I put the ESP in UART mode it doesn't work and I get this message:
Connecting...
Traceback (most recent call last):
File "D:\arduino\portable\packages\esp8266\hardware\esp8266\2.6.3/tools/upload.py", line 65, in <module>
esptool.main(cmdline)
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 2900, in main
print("Chip is %s" % (esp.get_chip_description()))
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 1034, in get_chip_description
efuses = self.get_efuses()
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 1030, in get_efuses
self.read_reg(0x3ff00054) << 32 |
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 490, in read_reg
val, data = self.command(self.ESP_READ_REG, struct.pack('<I', addr))
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 347, in command
p = self.read()
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 292, in read
return next(self._slip_reader)
File "D:/arduino/portable/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 2045, in slip_reader
raise FatalError("Timed out waiting for packet %s" % waiting_for)
esptool.FatalError: Timed out waiting for packet header
esptool.FatalError: Timed out waiting for packet header
esptool detect that the esp is in UART mode but then it doesn't upload the firmware and I don't understand why. I've trye setting the card as "nodemcu 1.0" and as "generic esp8266".
I've tried the same operation using Visual code and PlatformIO. It still doesn't work but the error message is different:
Uploading .pio\build\nodemcuv2\firmware.bin
esptool.py v3.0
Serial port COM3
Connecting...
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: e8:68:e7:6e:59:f1
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Compressed 398880 bytes to 285665...
A fatal error occurred: Timed out waiting for packet header
I guess the problem is the same, I've also tied with board type nodemcu and generic esp8266...
I always get the same result.
I hope you will be able to help me, Thank you very much for your support