I have been experimenting with a ESP8266-01 module (8-pin). I would like to use the ESP-01 module as an MQTT client and control two relays. For this I bought an ESP-01 module and a 2-CH relay module (HW-383) and my schematic is as below (GPIO-2 has the same circuit as GPIO-0): [![Schematic][1]][1] The EPS-01 and the optocoupler share +3.3 V which is isolated from the +5 V used for relay and transistor. I pulled GPIO-0 and GPIO-2 to 3.3 V using 10 kΩ as it is necessary for ESP to boot properly. Everything is working perfectly except the flicker (relay turn ON and then OFF) during ESP-01 boot or reset (in my code I have set GPIOs to HIGH and then set them as O/P). I read that this is due to the internal process of the ESP module. A few people suggest using GPIO-2 to avoid flicker and a few suggest adding a 470 μF capacitor across the optocoupler input terminals (only few people had success with a capacitor). Is it a good idea to add a capacitor across the optocoupler? Can I add a capacitor across the GPIO pin and 3.3 V_GND? Both ways cause the capacitor to discharge into the GPIO pins at LOW signal on GPIO, is this safe for the ESP-01? If so, what is the optimum value for the capacitor? Or do I need to add an RC network between the GPIO and the optocoupler to delay the switch ON of optocoupler (schematic would be helpful)? I know there are lots of discussions on this topic but I could not find a reliable solution. **Update:** Here's a link to [detailed GPIO behavior][2] during boot. The last post in the form says "*GPIO0 will output the clock frequency (e.g 26 MHz) of the external crystal by default*". I think this clock might be causing the relay to turn ON and OFF during boot. How to avoid relay turn ON during this clock output? [1]: https://i.sstatic.net/GLAWf.jpg [2]: https://bbs.espressif.com/viewtopic.php?t=2101#p6636