WIFIO is a dual Arduino WIFI module (ESP8266+ATMEGA328P) FCC approve-able with transferable licence. Can use the 328P for I/O expansion also...

Moderator: igrr

User avatar
By dkinzer
#27660 I've been doing some research on various techniques for automatically putting the ESP8266 into download mode. One that I've seen labeled "wifio" has a PNP transistor to pull the GPIO0 line low when the RxD line goes low. The downloader sends a break on the serial line to hold GPIO0 low while the ESP8266 is starting up after rset.

It occurred to me while pondering that circuit that a diode would serve in place of the transistor and base resistor. I tried it and it seems to work perfectly. The circuit that I tested is shown below, the pullup resistors are actually on the ESP8266 board.
You do not have the required permissions to view the files attached to this post.
User avatar
By dkinzer
alon24 wrote:can you please give values, and show how to use this?
As I mentioned, the pullups are probably already on your ESP8266. If not, they're not particularly critical so 10K or so should work. The diode that I used was a 1N914 but any "small signal" silicon diode with a reasonable forward voltage should work. A Schottky diode (e.g. BAT42) would be even better since they have lower forward voltages. The capacitor that I used was a 100nF ceramic but I've seen others use a 1uF capacitor.

In order to use this automatic reset circuit, you'll need a downloader application that supports it. I'm pretty sure that esptool.py does not support any automatic reset protocols but I could be wrong. The esptool.exe downloader (available on github and provided with the ESP8266 Arduino setup) does support several reset protocols. My esp_tool application (also on github) supports several reset protocols as well. (I do need to update the github repository with the latest code that was tested with the diode circuit.)
User avatar
By jumpjack
#73009 What about a self-reset circuitry which does not require PC connection? I think it would be very useful to prevent well knwon unpredictable resets/locks of the ESP8266: just self-reset every 24h and you're fine!
But, how to implement it?
I tried by connecting RST to D8 and putting D8 to GND programmatically... but of course it didn't work: who will put RST high then?!? :lol:
Maybe a small&cheap external circuit could be built? A solid state relay + capacitor + transistor would do the trick?
As long as the ESP8266 is on, the capacitor is charged; as soon as D8 is put high, relay is triggered and RST put to GND... then in "some manner" which I yet have to figure out, the capacitor brings it back to 3.3V...
Any help?