I have designed a quick PCB (50mm x 50mm) for an ESP8266-12F which allows a DHT22/AMS2302 sensor and/or a DS1820B to be used as a remote sensor "station".
I have included a basic regulation circuit. A 3.3V regulator with some caps.
My issue is that I am unsure as I have rigged the GIPO0, GPIO16, ENABLE(CH_PD) and RST pins correctly to allow the "deepsleep()" to work as well as being able to flash the MCU via the 6 pin header I have included at the top of the design.
Basically, to program the MCU, as far as I am aware, you need to pull GPIO0 low, then pull RST low, then release RST to put the MCU in to "programming/flash" mode.
I have wired two buttons for this function... But at the same time, the GPIO16 pin can be used to RST the MCU using the deepsleep() function. On breadboard, whilst the GPIO16 pin is connected directly (no resistor) to the RST pin, the unit will not reset. I assume this is because the GPIO16 pin is holding RST high, so even in the RST button is pressed, the MCU will not reset?
Looking around, I found this forum post on the ESP8266 forum: ESP8266 forum post
this post seems to include a schematic to allow the deepsleep() to work whilst still allowing programming using a RST button and GPIO0 button to ground.
I have attempted to do this in a schematic...will it work?
I have the top copper as a VCC (3.3V) layer and the bottom as a GND layer. Cut out the copper under the ESP8266's little aerial...supposedly helps with any possible signal noise when transmitting...
All Layers: Full Res
Top Copper and Silk and Vias/pads: Full Res
Bottom Copper and Silk and Vias/Pads:Full Res