In theory you have pulled RST low with GPIO16 to enable deep sleep
..hmm, I'm not sure why you said that..but I am easily confused
As shown in the schematic RST is pulled high with the R6 10k resistor and the device is being put into deep sleep with code that looks something like this:
ESP.deepSleep(rtcConfigData.pwrDownLength, rtcConfigData.wakeMode);
..which is working fine to put the device into deep sleep.
When the device is in deep sleep, I've measured that RST and GPIO16 remain in a 3.3v high state.
GPIO16 is linked to RST with the R4 470R resistor and this is working fine to wake the device from deep sleep. I assume that when the device needs to be woken, the RTC pulses GPIO16 off and on and it's this that wakes the device up.
Are you sure that pressing S1 is waking the ESP?
Yes it really is waking the device and as I mentioned in my last post, this wake event is being seen as a rst_reason flag of REASON_DEEP_SLEEP_AWAKE = 5.
I've attached an image of the board and it's traces with some labels highlighting things that will hopefully make the reset part of the circuit easier to follow. This is the board I'm currently using where I'm seeing the odd unexpected REASON_DEEP_SLEEP_AWAKE = 5 when the board is woken via S1 press.
I do think everything is connected on the board as per the schematic and it looks like it should work. In fact it does seem to be working fine apart from this issue where REASON_DEEP_SLEEP_AWAKE = 5 when the board is woken via S1 press instead of REASON_EXT_SYS_RST = 6. This is the only reason I've got the S1 switch on the board - as a means to manually reset the board and hopefully detect that the board was externally manually reset.
I'm totally happy to be told this is connected wrong in some way by you guys