I have bought some blank ESP-12F modules like this: https://www.aliexpress.com/item/1005001520382593.html

For these modules I have made my own adapter PCB to connect them, but now I don't get any connection with the esptool.py to these modules.

The connection is:

TX --------------- RX with an PL2303 USB adapter
RX --------------- TX with an PL2303 USB adapter
EN --------------- 3.3V
GPIO-0 ----------- GND over button
GPIO-15 ---------- GND over 4K7 resistor
RESET ------------ GND over button
GND -------------- GND
VCC -------------- 3.3V from AMS1117-3.3 blocked with Elko 220µF

With a serial terminal I can cleary see with 74880 baud the response for standard boot on TXD (GPIO1):

 ets Jan  8 2013,rst cause:2, boot mode:(7,7)

waiting for host

and on TXD1 (GPIO2)

 ets Jan  8 2013,rst cause:2, boot mode:(7,6)

waiting for host

For flash mode with RESET and GPIO-0 on TXD (GPIO1):

 ets Jan  8 2013,rst cause:2, boot mode:(5,7)

waiting for host

and on TXD1 (GPIO2)

 ets Jan  8 2013,rst cause:2, boot mode:(5,6)

waiting for host

I tried to connect with:

python3 esptool.py --port /dev/ttyUSB0 flash_id
python3 esptool.py --chip esp8266 --port /dev/ttyUSB0 flash_id
python3 esptool.py --no-stub --port /dev/ttyUSB0 flash_id

but no connection can be established.

"A fatal error occurred: Failed to connect to Espressif device: No serial data received."

With the trace option I get:

TRACE +0.000 Write 46 bytes: 
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.082 Read 1 bytes: 72
TRACE +0.000 Read invalid data: 72
TRACE +0.000 Remaining data in serial buffer: 6c00

I tried the connection with this two versions:

esptool.py v3.3-dev
esptool.py v2.0-beta2

I assume this is simply bad hardware.
Is there anybody who has mastered this problem?


1 Answer 1


You have io 15 HIGH. Check the pull-down.

The first number in () on first line of the boot log is the state of the boot config pins. First bit is the state of io 2, second the state of io 0 and third is the state of io 15.

You have 5 or 7 which is 101 or 111 in binary. So you have io 15 HIGH.

io 15 HIGH is a mode where the esp8266 doesn't have its own flash memory but boots from the host MCU so you get "waiting for host".

io 15 must be LOW for the esp8266 to use the flash memory.

So you should see for normal mode

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

and for flashing mode

ets Jan  8 2013,rst cause:2, boot mode:(1,6)

Note: it can be (3,7) and (1,7) too

  • We are talking about GPIO15 that is the next pin (10) after GND in the corner? This pin is definitely on GND potential - i can measure always about 0,005 V.
    – Karsten
    Nov 21, 2021 at 9:38
  • Your analyze is correct, although i could not believe it first, because i could measure 5mV at the pin outside, that should be correct. After a little bit thinking i did check the solder joint to the module and it was cold with a bad contact! So i resoldered it and now it is running - thank you very much! Where can i find an explanation of the other numbers?
    – Karsten
    Nov 21, 2021 at 10:01
  • there is no good documentation. so for me it is a mix of experience and information peaces from different sources which have wrong info mixed with right info. like this one: github.com/espressif/esptool/blob/master/docs/en/… it mixes info about esp8266 and esp32
    – Juraj
    Nov 21, 2021 at 10:40
  • Thanks - it seems not so easy to get all the 'secrets' from chinese products. :-)
    – Karsten
    Nov 21, 2021 at 12:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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