Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)
User avatar
By eriksl
#29032 This is so weird.

I never do anything else then connect CH_PD, GPIO0, GPIO2, RST to 3.3V using a pull-up resistor and GPIO15 (ESP-201) with a pull-down to GND. Then for programming mode, I pull RST to GND, I pull GPIO0 to GND and then almost immediately release RST. In other words, reset with GPIO0 low and then release GPIO0 immediately after the reset. This just works. I never do anything with CH_PD, GPIO2 other then pull them up.

If you need the "dance" described in the above post, I suspect your power supply is insufficient which makes the pull-ups not strong enough. Also do use resistors! Or be prepared for surprises or sudden death.
User avatar
By Stampede
#29084 Erik, Thank you for adding what works for you, I was fighting with my Esp-01 all last night trying to get anything to it.
Could you add more detail on your setup? What resistors do you use, 1k? Every website I've gone to listed a different way to properly connect the ESP8266, it's pretty frustrating.

So to clarify what worked for you is it right to say the following?:

For Programming Mode:
FTDI = ESP8266
3.3V = VCC, CH_PD & GPIO2 (via resistor)
TX = RX
RX = TX
GND = GND, GPIO0, RST(via resistor? or are you using a switch to release it suddenly)

Since the ESP-01 does not have GPIO15 I think that causes some confusion on the tutorials.

For Active mode:
FTDI = ESP8266
3.3V = VCC, GPIO0 & CH_PD & GPIO2 & RST (via resistor)
TX = RX
RX = TX
GND = GND


Worst case scenario I'll do the magic programming dance, thanks guys.
User avatar
By eriksl
#29098 I am using 10k resistors. When I pull GPIO0 and RESET to ground (using an i2c port expander), the 10k is "almost" completely pulled to ground. GPIO2 I leave alone.

If you're using a "hardware" switch, you may be suffering from bouncing contacts.

The ESP-01 does not have the GPIO15 pin exposed, it's internally connected to ground, you don't need to worry.
User avatar
By kenn
#29104 On my ESP-01 test rig, RST and GPIO0 are pulled up by 4.7k resistors, and both RST and GPIO0 have momentary pushbuttons to ground. I can reset the ESP-01 at any time by just pressing the reset button, and I can enter programming mode by depressing reset and GPIO0 buttons together, then releasing the reset button first (so that GPIO0 is low when the unit comes out of reset).

Worked without fail for several months now.