After one of these died on me, I am looking for a definite answer on whether the GPIO pins are 5V tolerant or not.
The ESP8266 onboard is a 3.3v device, but the Wemos board has a 5V pin and a micro USB plug (and therefore voltage regulation on the board).
All I could find were some allegations that the initial rough translation of a Chinese manual that the GPIOs were only 3.7v max tolerant were incorrect, but the actual max was upwards of 6v. The 3.7v figure was just a guaranteed max for a recognized logic HIGH signal. My current impression is that the claims are that the power source is to be 3.3v for the ESP8266, while its GPIOs are 5V tolerant.
That sounds odd to me, always figured input voltage had to be no higher than power source voltage, but maybe there's some circuitry wizardry going on I do not understand.
All I had on my board when it died was an RF transmitter module.
VCC to 5V pin, GND to GND, Data to D2 pin.
I was powering the board directly on the 5V pin with a 5V source.
No visibly fried components, plugging the microUSB into a PC gets no recognition of a connection by Windows, but putting 3.3v directly onto the onboard ESP8266's VCC and GND pins gets it running (albeit seemingly with constant resets as it transmits a setup message repeatedly)
Not sure what could possibly have caused the failure if the GPIOs are 5V tolerant, I'm not like most who easily jump to the conclusion that it must've been a defective board and not my fault. The board was working as it should. Nothing about the configuration of software or hardware changed.
To my knowledge the pins of the ESP8266 are NOT 5 Volt tolerant.
If you connect 5 Volt signals to it it may work for some time but it is definitively way beyond the specs and it will die sooner or later (like driving a car without cooling liquid or without oil).
There are some ESP boards that have some 5 volt tolerant pins like the Huzzah from Adafruit, but this is because is has some basic voltage dividers on some inputs.
" The ESP8266 I/O is 5V tolerant unless couple of uA current can destroy the chip. Except for completely wrong wiring, such as feed 5V into 3.3v rail or feed 5V into output pin (in output low state or in output high with push-pull mode), 5V on GPIO pins will not destroy ESP8266."
Anything wrong with his methodology that would write off his conclusion?
It uses an ESP8266MOD, which could be different from the ESP8266EX as you've posted. And that datasheet is what has been debated.
Supposedly Espressif has stated 5V tolerant GPIO on their facebook. And again your interpretation of input high voltage max is a possible misinterpretation as many say, 3.3v simply being at most what is interpreted as a logic HIGH.
So thanks for the input, but we can all read datasheets, and not all of us trust them 100%. Hoping for input from those with a more in depth understanding of the circuitry.
INTP:
It uses an ESP8266MOD, which could be different from the ESP8266EX as you've posted. And that datasheet is what has been debated.
Supposedly Espressif has stated 5V tolerant GPIO on their facebook. And again your interpretation of input high voltage max is a possible misinterpretation as many say, 3.3v simply being at most what is interpreted as a logic HIGH.
So thanks for the input, but we can all read datasheets, and not all of us trust them 100%. Hoping for input from those with a more in depth understanding of the circuitry.
If you don't trust the manufactures data sheet, why would you use the part? If they lie to you in the spec sheet, Don't you think the hardware is questionable?
Just because you want the device to be 5v tolerant, does not make it so.
If the device is spec'd with 3.3V VCC, I assume the I/O's are 3.3V UNLESS explicitly stated that they are 5V tolerant.
You can use them with 5V I/O as long as your MTF is acceptable. I have worked with devices that are considered single use. Their MTF was measured in minutes.
Hoping for input from those with a more in depth understanding of the circuitry.
Why would you expect to find that here? Don't most of the 8266 folk hang out elsewhere? There aren't even any official Arduino products that use the 8266... If the people who are working with the manufacturer (at unprecedented levels of cooperation, I think) can't get a straight answer, how are we supposed to have a clue?
over-voltage tolerance is something that has to be built into a chip; it doesn't happen accidentally. Usually such things would make it into the datasheet in a way that wouldn't be hard to miss, even in poor translation.
The usual input protection on a CMOS device has "clamping diodes" to the power supply rails. If you apply an overvoltage, the diode to Vdd conducts, theoretically protecting the sensitive input gate transistors. If this continues, there are several possible failure modes:
A) the diode overheats, possibly damaging surrounding circuitry.
B) The diode fails catastrophically ("explodes"), possibly damaging surrounding circuitry.
C) The diode fails simply, leaving the input subject to damage by the overvoltage, or by other transients that would have normally been caught by the diode.
D) The diode continues to work, but the overvoltage gets fed into Vdd where, depending on the power supply circuitry, Vdd rises above its target voltage, potentially damaging every part on the board that was already operating at their max Vdd rating.
" The 3.7v figure was just a guaranteed max for a recognized logic HIGH signal" does not seem to me to be a parameter that makes any sense. "Recognized high" signals are usually specified as a minimum, and as a fraction of Vdd. (Vhighmin = 0.7*Vdd or similar)
I'd expect "accidental" 5V tolerance to be dependent on additional factors, like the impedance of the 5V signal. So a current-limited output from a CMOS circuit, or an open drain output with a relatively high-value pullup resistor might squeak by, while a "TTL" driver IC or a 555 might blow things up.
Here's a comment on a Facebook ESP8266 group from someone with the same name as the CEO of Espressif, though this would be easy enough to fake(Teo Swee Ann):
i can reply officially here: it is 5V tolerant at the IO. while the supply voltage is at 3.3V.
There are hundreds of projects you can find online putting 5V into the ESP8266 inputs. It's clear that it didn't immediately fry the thing. My take is that I'd rather be safe than sorry. One thing's for sure, you're not going to damage the ESP8266 with 3.3V. I want my devices to work reliably for a long time. That's worth adding a couple extra components. So until I'm more completely convinced of 5V tolerance I will continue to use level shifters. On the other hand, getting an ESP8266 working can be very difficult for some people so in that case simplifying the circuit and reducing complexity may be well worth the risk of reducing the life expectancy of a $2USD part.
INTP:
" The ESP8266 I/O is 5V tolerant unless couple of uA current can destroy the chip. Except for completely wrong wiring, such as feed 5V into 3.3v rail or feed 5V into output pin (in output low state or in output high with push-pull mode), 5V on GPIO pins will not destroy ESP8266." forum.arduino.cc/index.php?topic=428521.msg2953744#new
Anything wrong with his methodology that would write off his conclusion?
That page describes the results of applying up to 5.4 v to an ESP8266 pin configured as an input, presumably with a low-impedance source, and with a pin configured as an output. The experiment measured the current through the pin as a function of voltage applied to the pin. One of the graphs from the experiment (vertical axis is microamps):
And as noted in the above quote in INTP's post 3, the experimenter concluded:
I believe the experiment result is conclusive. The ESP8266 I/O is 5V tolerant unless couple of uA current can destroy the chip. Except for completely wrong wiring, such as feed 5V into 3.3v rail or feed 5V into output pin (in output low state or in output high with push-pull mode), 5V on GPIO pins will not destroy ESP8266.
My emphasis.
So...
What mechanism would make it likely that a couple of uA on an ESP8266 pin would render it non-functional or not reliable? In the previously cited thread (link in post 6 of this thread), GrumpyMike talked about the susceptibility of ESD diodes to damage from charge depletion, and in this thread westfw also talked about diode failure modes. But the ESP8266 has a "snap-back" circuit, not ESD diodes.
And, is anything in the test methodology questionable? It seemed like a reasonable experiment to me, but I am just a hobbyist (and certainly willing to include a couple of extra components if needed, but am curious about this...)
An appeal to Expressif: Instead of making statements on social media, can you please update your data sheet and add a line that specifies if the pins are 5V tolerant or not ?
I run my D1 mini from Lolin at 5.5V from years with an MT3608 voltage regulator from years now.
I run at semi constant 5.5V because I run projects from a battery and some voltage drop may cause instability on lower voltages.
D1 Mini from lolin can definitely handle 5.5V, are you sure that you are not experiencing a simple boot loop problem and that your board is fried?
Why don't you try and "hard reflash with a working code".
IMHO your boards are not "broken" they are simply in a corrupted state probably for a low voltage and not for a too high voltage.
try this:
Remove USB
Connect D3 to GND
Plug in USB
Run upload in Arduino IDE or platformio with 115200 baud.
My memory of the D1 Mini is that the CH340 is powered at 3.3V from the output of the regulator, and not from the USB. If so, perhaps your dead board just has a blown regulator. You can measure that if you still have it at hand. I think applying 5V to a GPIO is unlikely to have blown the regulator.