Have I done this correctly? ESP8266


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...

Files: Dropbox file dump - My ESP8266 Temp and Umidity Sensor Eagle Files

Schematic:Full Res |500x413

All Layers: Full Res |500x451

Top Copper and Silk and Vias/pads: Full Res |500x451

Bottom Copper and Silk and Vias/Pads:Full Res |500x451

Ok, never mind.

I have just thought "why not just add a jumper to detach the GPIO16 pin from the RST pin"...

I guess this is probably a simple solution with little mess! So all I need to do is remove the jumper for programming then replace it when the device is running.


|500x414 Full res