I have some thought about the two transistor/resistor reset circuitry. I grabbed the reset sequence with a logic analyzer. If esptool.py can control DTR and RTS individually, as shown on the logic analyzer and expected from pyserial module, then why not directly connecting DTR and RTS to GPIO0 and RESET pins?
My answer: to be able to open serial port for console interaction with a regular terminal emulator, correct?
Reset circuitry clarification
Re: Reset circuitry clarification
If you look at the two transistor logic implemented in many boards, it acts as a kind of wired XOR. When both DTR and RTS are low or high, Reset and GPIO0 are high. That is needed, because typical terminal emulators would set the pins like that.
Typical circuitry e.g. here: https://cdn.sparkfun.com/assets/learn_t ... ematic.pdf
Typical circuitry e.g. here: https://cdn.sparkfun.com/assets/learn_t ... ematic.pdf
Re: Reset circuitry clarification
Thanks Roberth! So my guess was right and the logic was meant for a dev board to start when its console serial port is opened by a typical terminal emulator.