ESP-12F 5V Adapter / WiFiSPI library

I would like to design a 5V adapter for the ESP-12F and use the JiriBilek WiFiSPI library.

I think I will use a 4 channel 74ABT125 converter (idea stolen from a schematic for such a converter for SD cards).

Inside the WIFiSPI library it talks about a "safe reset circuit" described under (Safe reset using external circuit · Issue #6 · JiriBilek/WiFiSpiESP · GitHub)

Question 1: Am I correct that using that "safe reset circuit, there is no need for a logic level converter between the 5V SS and the ESP-12F SS? That circuit seems to only supply voltage from the ESP-12F IO5 pin or short to ground.

Question 2: The library talks about an optional "hardware reset" pin. This is a pin on the 5V side that is connected to the reset pin of the ESP-12F. The library does do digitalWrite(HIGH) to this pin. Do I have to provide a logic level converter for this connection?

Question 3: The ESP-12F has an "EN" pin. The datasheet suggests that using that pin can save power. The library doesn't seem to support this feature. I could attach the ESP-12F pin to an available pin on the 5V side and enable/disable from my sketch. Do I need a logic level converter on this connection?


Answer 1: yes, no level converter needed
Answer 2: if you provide a level converter for other pins, I'd use another one here. Or at least a resistor between the 5v and 3v3 domains.
Answer 3: the EN pin effectively switches off the ESP8266. After changing the EN pin back to high, the chip restarts. So you can obviously use this for saving power but you have to initialize the library every time you wake the ESP8266. You don't need to reset it via hardware reset then.

I searched the internet about the 5V tolerance of inputs (not power) of ESP8266 and many people said they are 5v tolerant in fact but the manufacturer claimed the opposite. Look here: ESP8266 is 5V-tolerant after all? | .Stack |
My first tests of this library were on Arduino and I used a simple MOSFET level convertor like this:

Edit: another thought about the RST and EN pins: you'd better use open drain output GPIO and you are out of 5v/3v3 problems. Nevertheless, Atmega328p does not have this option, afaik. Here is a trick worth trying: Open Drain - #12 by CrossRoads

Thank you Jiri!

Since the SS will not have to be converted, I have one channel left for the Reset pin. I think I will just break out the EN pin on the first prototype and experiment with it later.

I am really anxious to try out this library and see how much better data can be served up compared to a serial AT connection.

Thanks for the answers, thanks for the library!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.