Esp8266 programming circuit is here. Could anyone help me identify the purpose of this capacitor?
Thanks in advance.
When the reset button is pressed, it allows only a narrow negative reset pulse on the reset pin. Without the capacitor the reset would last for as long as you held or pushed the button in.
The capacitor makes sure the act of pressing the reset button does nothing unusual. It may be done with the reset sequence before you release the button.
Bypassing the capacitor would do no harm except delay the time in which the IC could reset, which would be when you release the button.
The parts are cheap, and it makes for a smoother reset sequence.
It generates a negative pulse on the reset line when the button is pressed. In steady state with the button released there are zero Volts across the capacitor, and reset is at 3.3V. When the button is pressed, zero Volts must remain across the capacitor, so reset instantly goes to zero Volts then charges up to 3.3V through R6 in the usual V*(1 - exp (-t/(R*C)). Note, it's not a pulse in the digital sense, but close enough for reset purposes.
Addressing the question of why GPIO0 is treated differently it's because you are meant to hold down GPIO0 and then press reset. GPIO0 is s bootstrap pin that is read at startup to determine the boot mode. The capacitor makes what would otherwise be a sustained button press into a momentary button press.