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

User avatar
By John Karij
#89854 I want to build a simple programming jig for ESP-12 modules. I want to use the same jig for modules not connected to anything and also for modules that are soldered on boards. Some of the boards with soldered ESP-12 already have resistors between ESP-12 and VCC or GND, but bare modules don’t have the required resistors.
I know that GPIO15 must be pulled down, and GPIO2, EN and RST must be pulled up. Also GPIO0 must be LOW before reset to enter flash mode. I will use resistors on these pins but I want to make it as simple as possible and keep it in a small enclosure, so I’d like to know which resistors I could dismiss.

Could I connect GPIO0 directly to GND and add a button on RST to enter flash mode after resetting? Should I also add a button between GPIO0 and GND and release it after reset to enter flash mode?

I found many schematics with ESP-12 and FTDI modules which have connected VCC,GND,Tx,Rx and GPIO0. The GPIO2,GIPO15,RST and EN are float. I tried it and I was able to enter flash mode without connecting anything on them. What’s the purpose of the resistors on these pins? Are the resistors needed only for normal operation and not flash mode?
User avatar
By RichardS
#89866 If you do not mind the ESP8266 going into programming mode always on reset, then you can pull GPIO0 low and leave it low, if you want the part to run the code you flashed into it then GPIO0 must be high.

Most modules like ESP12 etc... have the resistors already, so you normally only need to worry if your using the bare ESP8266 IC

RichardS
User avatar
By btidey
#89871 Most ESP-12 modules e.g. E and F variants do not have any pull up resistors except for the resistor / capacitor combination on the RESET line.

EN needs to be high for the processor to start up. GPIO15 needs to be low for the module to enter normal program mode. Other critical pins like GPIO0 and GPIO2 have internal weak pull ups activated during the boot period.

It is best to use a resistor on these modules to pull down GPIO15 (e.g.4k7) to avoid any conflict should the program try to drive GPIO15 high. Not so critical to use a pull up resistor on EN which can be wired to Vdd if you don't intend to use it for other purposes as there is no chance of conflict.

GPIO00 only needs to be low for a short time to enter upload mode so if using a button then you can release it immediately after reset.

Modules using soldered on ESP-12 modules often have extra pull up/pull down resistors. If they have a built in USB (Wemos / NodeMCU) then they will normally have a bit of extra circuitry to automate the upload process from USB by allowing control of reset / GPIO00 from USB to prime the upload which is very convenient.

If constructing a jig to program bare modules like the ESP-12F then it is possible to also automate the upload process from a USB-serial converter particularly if you get access to the DTR / RTS signals which are typically used to drive the GPI00 and reset lines.

For mechanically connecting to ESP-12 modules I use a pogo pin adapter to make it easier. https://www.thingiverse.com/thing:2147460

There are also commercial versions of programming adapters that can take ESP-12 modules e.g

https://www.ebay.co.uk/itm/Flex-NodeMCU ... SwvBpbOYtE

or

https://uk.banggood.com/ESP8266-Test-Bo ... YCEALw_wcB