I'm currently designing an esp8266-based board for a project. It has an LM317 for voltage regulation and the esp8266 is used to drive a RFID card reader (those RC522 reader board from china) and some addressable LED (WS2812). I also took an antenna design from Texas Instruments documentation (AN043 antenna) which is used in most of esp8266 designs I've seen so far.

Schematic of my design

Thus I've made a PCB and ordered it already assembled from jlc pcb a couple of weeks ago. It has a bit of an odd design, but it's on purpose.

Pcb of the design

When I received the pcb I ordered an FTDI from Amazon (FT232) and tried to program the esp8266. First thing I've learned is that I've had connected the wrong pin to the reset header (facepalm). I Bypassed this problem by unplugging it to reset it. So, I connected the GPIO0 to GND, reset it and try to flash it with Arduino : Trying to connect : Timeout error. I tried different config, different baudrate : same result. Triple checked my wiring and seemed good.

When I reset, my esp8266 sends garbage characters. I read online it was a common thing, so I don't know if I need to worry about it. I also tried sending AT command with Arduino serial monitor, but no response (AT and AT+RST same result).

After this I tried with my terminal and esptool to get more info about my problem. So I ran "python esptool.py -p COM3 --trace -b 115200 read_mac" and got the same error and not very interesting logs.

only this log in loop as I could expected it:

_TRACE +0.051 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.001 Write 46 bytes:
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.101 Timed out waiting for packet header

Since the esp8266 gives absolutely 0 response except garbage code at startup, it seems that the problem is hardware and comes from the esp board itself (not the ftdi).

I hope someone can help me. Thank you in advance for your ideas.

  • \$\begingroup\$ espressif.com/en/support/download/… \$\endgroup\$
    – Juraj
    Commented Jan 17, 2020 at 10:36
  • \$\begingroup\$ the required external flash memory for esp8266 is missing in your design \$\endgroup\$
    – Juraj
    Commented Jan 17, 2020 at 12:33
  • \$\begingroup\$ Thank you for your answer. Is the flash absolutely necessary to boot and flash esp8266? Why is it needed for? Isn't the program flashed into the esp itself? \$\endgroup\$
    – Matk3z
    Commented Jan 17, 2020 at 20:02

1 Answer 1


The required external flash memory for esp8266 is missing in your design. ESP8266 doesn't have internal flash. It executes the code from the external flash.

Read the documentation available on Espressif's site.

From datasheet:

There is no programmable ROM in the SoC. Therefore, user program must be stored in an external SPI flash.

ESP8266EX uses external SPI flash to store user programs, and supports up to 16 MB memory capacity theoretically.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.