Ask Hackaday: Is The ESP8266 5V Tolerant?

The ESP8266 is the reigning WiFi wonderchip, quickly securing its reputation as the go-to platform for an entire ecosystem of wireless devices. There’s nothing that beats the ESP8266 on a capability vs. price comparison, and this tiny chip is even finding its way into commercial products. It’s also a fantastic device for the hardware tinkerer, leading to thousands of homebrew projects revolving around this tiny magical device.

In every technical document, summary, and description of the ESP8266, the ESP8266 is said to be a 3.3V part. While we’re well into the age of 3.3V logic, there are still an incredible number of boards and hardware that still operate using 5V logic. Over on the stack, [Radomir] is questioning this basic assumption. He’s wondering if the ESP8266 is 5V tolerant after all. If it is, great. We don’t need level converters, and interfacing the ESP to USB TTL serial adapters becomes much easier. Yes, you’ll still need to use a regulator if the rest of your project is running at 5V, but if the pins are 5V tolerant, interfacing the ESP8266 with a variety of hardware becomes very easy.

[Radomir]’s evidence for the possibility of 5V tolerant inputs comes from a slight difference in the official datasheet from Espressif, and the datasheet translated by the community before Espressif realized how many of these chips they were going to sell.

The best evidence of 5V tolerant pins might come from real-world experience — if you can drive a pin with 5V for months on end without it failing, there might be something to this claim. It’s not definitive, though; just because a device will work with 5V input pins for a few months doesn’t mean it won’t fail in the future. So far a few people have spoken up and presented ESPs directly connected to the 5V pin of an Arduino that still work after months of service. If this is evidence of 5V tolerant design or simply luck is another matter entirely.

While the official datasheet from Espressif lists a maximum VIH of 3.3V, maximum specs rarely are true maximums — you can always push a part harder without things flying apart at the seams. Unfortunately, unless we hear something from the engineers at Espressif, we won’t know if the ESP8266 was designed to be 5V tolerant, if it can handle 5V signals reliably, or if 5V signals are a really good way to kill a chip eventually.

Lucky for us — and this brings us to the entire point of an Ask Hackaday column — a few Espressif engineers read Hackaday. They’re welcome to pseudonymously chime in below along with the rest of the peanut gallery. Failing that, the ESP8266 has been decapped; are there any die inspection wizards who can back up a claim of 5V tolerance for the GPIO? We’d also be interested in hearing any ideas for stress testing pin tolerance.

130 thoughts on “Ask Hackaday: Is The ESP8266 5V Tolerant?

    1. Thank goodness someone said it. I mean, it’s not like it’s in the article. In the last two sentences of the fourth paragraph.

      “So far a few people have spoken up and presented ESPs directly connected to the 5V pin of an Arduino that still work after months of service. If this is evidence of 5V tolerant design or simply luck is another matter entirely.”

    2. I agree, however I had a bunch of 8266’s that survived being connected to 5v. Not a single one burned. I noticed that the temperature difference when running with 3.3v is not significant than with 5v.

      It works, but not recommended.

    3. True, you need to take a random sample of at least 100 units and see how many survive, then repeat the test for different conditions that my be relevant, such as load and ambient temperature.

      However for a couple of bucks I’d risk trying to burn in a module or two, if it could to be useful in some hack I had in mind.

    4. Im not sure if the esp8266 chip its self is 5v tolerant, but I did at one time try to use 5v with the esp8266 esp-01 and it was fine for about 3 minutes and then it wasnt the esp that failed, but the flash chip that decided to give up the magic smoke. So I have since then desoldered the flash off the board and am currently waiting for a replacement in the mail. I will replace the flash chip and then see if there was any damage to the esp and whether or not it will work again.

    5. I’ve tried to connect ESP8266 via voltage divider and it didn’t work at all. When I’ve connected it directly to 5V logic, it woks perfectly. My ESP8266 is not only 5v tolerant- it works only on 5v logic.

      1. I have a esp32 chip to be a motion sensed light sensor and I had a 3 volt regulator on a usb voltage line which is 5 volts. I couldnt get it to work with the 3 volts so i removed the regulator and connected it directly to the esp32. I think i might have killed the motion sensor because it was only 3 volt tolerant as well. I did find a melted spot on the back of the chip. I think I might have killed it. I programmed it with a adapter board and have all the wires sauntered to it. I will have to unsauder them to move it back to the programming board. I guess thats what I need to do.

    1. Exactly! Most micro-controller have diode clamping on the inputs.

      If you connect a GPIO pin to 5 Volts and the Icc decreases then it NOT designed to be 5V tolerant.

      If you disconnect VCC and connect all GPIO’s to 3.9 volts and the chip runs fine then it is NOT designed to be 5 volt tolerant.

      If you connect 5 Volts to the GPIO’s and the chip explodes ….

      1. > If you connect 5 Volts to the GPIO’s and the chip explodes ….

        Please go on, you’re building up the tension here. I want to know how the story continues :)

  1. You can interface it with the Arduino Due and no need for 5V, like here:
    Or you can use optocouplers for i/o which will be “leading to thousands of homebrew projects revolving around this tiny magical device” as the author says.
    I released the magic smoke from a few ESP8266 until I decided to switch them back to 3.3V – both power and i/o – and it happened in hazardous area such as well drilling sites. I decided to abandon +5V PWR and leave just +5V i/o. Nothing… project abandoned for a few weeks because it happened in the middle of the Sahara desert (oilfield drilling business), and postal package exchanges took place once every couple of months… someone sent me two Arduino Due and I fixed the esp8266 smoke issue for good.

    1. Remember, everyone:
      – Laboratory tests with +5V are different than field implementation;
      – Hazardous area tests will prove the limit of every piece of hardware. When the conditions get tougher, the problem changes completely.
      So even if esp8266 works at home in these conditions, you can’t rely on it in a field application. Remember, it’s made in China and these words no longer mean what they did 30 years ago.

    2. Dude! every hear about ATEX or IECEx. It’s one thing to push stuff for a hobby project, its another to freaking potentially blow up an oil well. How’d you even get your stuff on a rig without certs?

      1. lol. It wasn’t a rig. It was in the middle of the desert where all the support services are close by and it’s no problem to have non-certified equipment around the support areas. It would be impossible to certify everything that goes into the support areas.

  2. IIRC, 5V tolerance is a function of the thickness of the polysilicon under the MOSFET gates, which would be hard to see with anything less than an angled micrograph; ordinary die shots aren’t good enough here.

    1. That is true, for running VDDPST at 5 VDC. There is another possibility that the link mentioned, that the input can tolerate up to 6V while VDDPST is within its 1.8 to 3.3 volt range.

      This would require that the ESD protection diodes all connect to GND. If the device only has input tolerances at 0.5 V above VDDPST, then there is an ESD protection diode connecting the input to VDDPST. If the input tolerance is up to 6 volts, the ESD protection diodes all connect to GND, with a 6-volt Zener diode protecting from over-voltage exposure.

      With enough reverse engineering of the photograph of the die, it should be possible to determine the connections, but that isn’t needed; you can test for them electrically.

      If you pull a GPIO pin to a 5-volt DC supply through a 10 kilo-ohm resistor, pull VDDPST to the supply ground, through another 10 kilo-ohm resistor, and connect GND directly to the supply ground, you could learn a lot from the voltages at the GPIO pin and VDDPST.

      If the GPIO pin is a diode drop higher in voltage than VDDPST, and the resistors have similar voltage drops, then there is an ESD protection diode between the GPIO pin and VDDPST making the inputs not tolerant to 5-volt signals when VDDPST is at 3.3 volts.

      If the GPIO pin pulls most of the way to the 5-volt supply, and VDDPST pulls even closer to the supplies ground, then there is a zener ESD protection diode and the part was designed to at least momentarily withstand voltages up to 6 volts. You could even measure the zener breakdown voltage by slowly increasing the output voltage of the supply and looking for a plateau on the voltage at the GPIO pin.

  3. If the data sheet does not say 5V tolerant, it is not 5V tolerant.

    Just because it survives a very simple test, does not mean all parts will.

    latchup, ESD, rise/fall, and other parameters now might deviate significantly from spec due to overvoltage.

    Thinner oxide, thinner gates, especially in the low process nodes mean less resilience to damage.

    1. Well, that’s the question — does the datasheet say it’s tolerant? It seems to say that, but I’m not experienced enough to be sure and fully understand what it actually says.

    2. I’ve been playing with these things for a few months and for sure there are a lot more things that it does that the datasheet doesn’t say than things that it does that the datasheet does say.

  4. From my experience, the durability of the ESP8266 depends on the Vcc. When I sourced the the board form a 3V supply, the GPIO died almost instantly when 5V was connected. On the other side when powered from 3.6V, the IC survived 5.3V signal from my sig-gen without any problem and reponded nicely to the signal. So, without knowig the cause of principle, from my experience as far as I can say, the real problem is not the voltage alone, but the difference between the Vcc and Vgpio.

    1. That’s interesting though – I hadn’t heard of any ESP8266 actually failing with 5V on the GPIO.

      So I think that would make it pretty clear that it’s not 5V tolerant. Some anecdotal evidence that it does survive 5V is not proof that it would be tolerant, but an actual failure would prove that it is not tolerant.

      1. No anecdote is a proof or metric, in either direction. If it says not 5v tolerant, it’s not 5v tolerant. If you think you know better than Espressif does about their own devices/designs, feel free to make your own world dominating ESP8266.

        1. Are you pissed off or just naturally an asshole? While you are technically correct in this instance remember that several anecdotes are a trend, a large trend is an indication etc.

      2. Yes, sure ESP8266 is NOT 5V tolerant by design. I would only say that there are some modes of operation where the device can withstand out-of-specs overvoltage condition without a failure.

    2. Ahhh, the penny drops.

      Most micro controllers have protection diodes going from the GPIO pins to Vcc (and reversed biased to Vss) so Maximum input voltage (Vih MAX) is usually 0.6 volts (a diodes forward voltage (Vf)) above Vcc so in the case of 3v3 Vcc the MAX Vih would normally be 3v9 and on the case of Vcc = 3v0 the MAX would be 3v6 along with some leeway because the diodes are small and don’t saturate quickly so there forward voltage (Vf) is higher at low currents.

  5. Most older logic was 5v now its more 3.3v. will this change in future to an even lower voltage? and why change in the first place is it because chips just need less power these days?

    1. Chips using 2.5V or 1.8V are common already, you won’t find anything remotely high speed that operates at 3.3V anymore. At best the I/O is 3.3V but the cores are using much less.

      There are several reasons for it – energy consumption, EMI (lower voltage = less EMI) and speed – charging up the parasitic capacitance of a PCB trace to 3.3V takes a lot longer than to 1.8V, limiting how fast you can switch.

    2. Ever heard of Moore’s law? The transistor sizes are going down, the gate dielectric is getting thinner. So at some
      point, the electric field that the gates are too high and they need to be running it at a lower voltage. This has been going on around the 486, SDRAM era, so it is not new.

      Chips are made with smaller geometries because they can run faster, put more transistors inside and/or make more parts per wafer (i.e. less cost). Also the old fabs are shutting down, so the whole industry is moving whether or not you want that.

    3. It is a process technology thing. Remember we are talking about chips that have relatively high drive voltage compared to the smallest processes (where they actually would like lower voltages but fundamental physical limitations are making things tricky), often the core/logic voltage is lower and either an integrated or an external regulator is needed.
      There are several problems supporting higher voltages in modern processes, as tekkieneet wrote dielectric layers have to be thicker for higher voltages which is hard to incorporate in a small process (not impossible – but much more expensive because of more processing steps), another is that driving high voltage signals (in practice) requires larger transistors or a number of parallel transistors increasing die size = cost.

      For simple low speed hacks something like zener diodes or resistor voltage dividers can work, for higher speeds special level conversion chips aren’t that expensive but for even higher speeds there can be problems doing it cheap – but for those tasks one probably use low voltage logic/signaling anyway.

      TL;DR Voltages will decrease as it makes economical sense.

  6. I had an incident this week where I was trying to quickly build up an interface between a PIC18F4550 at 5V and an ESP8266-12 at 3v3. Two pins were sending signals directly from the ESP to the PIC, one of them being TTL serial, the other was a hand shaking pin.
    The PIC had a connection that was supposed to send a logic level acknowledge signal back to the ESP.
    I had intended on using a voltage divider built on the bread board – and totally spaced doing that part!
    I fried the 18F4550, why I don’t know… And the ESP still works on the web side somehow, but I’m not sure the GPIO pins I was using still do… I plan to revisit the problem this weekend and find out if those pins are dead, and I imagine that they are. But I do anything without level conversion, that’s for sure!
    The PIC is one a board that is already built to run at 5V, so without changing a lot of other items, running it at 3v3 won’t work.

      1. From my experience the failure mode of my ESP8266 operated at 3.0V Vcc when a 5V signal was connected to a GPIO was a dead short to the groud. This maybe explains the 18F4550 failure as many micros do not like to talk directly to the Vss.

  7. the datasheet states:

    Parameter Symbol Min Max Unit
    VDDIO VIO 1.7 3.6 V <- MAX
    Maximum drive capability IMAX 12 mA
    Temperature Tamb -20 100 °C page 14/15

    All digital IO pins are protected from over-voltage with a snap-back circuit connected between
    the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V.
    This provides protection from over-voltages and ESD. The output devices are also protected
    from reversed voltages with diodes.

    ANd now i'm even more confused. The maximum is 3.6V but it's protected from over voltage. What does it mean?

    1. I think that means that it’s protected against overvoltage by routing to ground over 5.8-6V. That would work for ESD protection because the charge is very low. ESD is generally very high voltage but not much charge behind it so it dissipates quickly. So it won’t cause much current to flow (or at least not for long enough to heat things up and fry it).

      If you connect it up to a solid 5V (or in this case above 6) source and the overvoltage protection kicks in, that’s another thing though. If it indeed works by routing it out to ground it will basically short the source and will cause a high amperage to run through the pin, probably frying it.

      (This is assuming there’s no resistor in line of course, perhaps there is, which would then limit the current). That doc doesn’t explain the snapback circuit in detail.

    2. The problem is that the 5.8V does’t come with a tolerance. Is it 5% tolerance or 10% or 20%? When does the zener starts conducting? Zener diodes conduct well before they reaches their zener voltages.

      Without the vendor coming out documenting the 5V tolerant, you can’t say for sure. They could be using a chip I/O library that happens to be 5V tolerant for one rev and could change it on the other without violating the specs because that is not listed.

      1. “They could be using a chip I/O library that happens to be 5V tolerant for one rev and could change it on the other without violating the specs because that is not listed.”

        Excellent point. And maybe not limited merely to officially-marked *revisions.*

        Was wondering, for a minute, why they might build something 5V tolerant and choose *not* to list it as such, as it would be a large selling-point. I think you nailed it.

    1. “I went even further and operate my ESPs with a 5v power supply ” – that is an iteresting idea. Maybe the ESP is the more 5V “tolerant” the higher the Vcc is. Neverteless, you are a hero! :-)

      1. How much higher does the transmit power end up when overvolted? Back in the WRT54G days, there was a resistor mod that apparently greatly boosted range. From what I could see, it just tweaked up the supply voltage to the output amplifier.

  8. Making an input 5V tolerant the input clamping diode to the 3v3 rail is omitted or more like a zenerdiode. Should be easy to ‘measure’ the characteristics.

    Still I suspect Espressif would advertise this feature if it was there..

  9. So I guess this is the ideal place to ask what I’ve been wondering for a couple of months on this issue… Why can’t I just set up a resistor between the 5v output of an arduino tx pin and the rx pin of the 3.3v ESP? From the looks of the picture above, I’m not the only one…. I understand there are dirt-cheap logic converters for this task, but I’ve been a little flummoxed by this issue.

    1. You could, but you are limiting current, which will offer some protection from things smoking But you need a divider if your looking for voltage level conversion, so two resistors, at least.

    2. I would say that your idea should work. Some 1K resistor in series with data lines wil limit the current through the OVP of the ESP’s GPIO. I guess it is viable up to some hudrets of kHz.

  10. Faced with the necessity. I’d probably find 3.3/5 tolerant buffers or junk box logic to rig same and power at 4.1 with zener. It’s probably going to be drive current or fanout that bites you in the ass anyway.

  11. i don’t have an esp, why doesn’t somebody just test how much more current flows at +5V than +3.3V? if it’s still basically 0 current, then it should work. if it’s just a little then you can get by with a resistor, and if it’s a lot then i’d buffer it externally. this is a very trivially answerable question. no need to get mystical about it.

    and as for whether a +5V gate voltage will break down the transistor independent of massive current flows, come on, man. this is the edge of a chip we’re talking about.

  12. My stick a multimeter on diode and measure between IO and 3.3V supply on an ESP-13 shows
    1.8 V for reset
    Nothing for other pins, indicating there is no diode between the IO and 3.3V supply, which is a characteristic of a 5V tolerant IOs, based on my knowledge of internal GPIO structure.
    So it is 5V tolerant.

  13. Hi everyone.

    I am not so much cheep but don’t have a lot of money. I have done about 20 – 25 projects using ESP and only on acouple of them did I connect anything down to 3.3v and have no problems. My longest running unit is about a year old. and I use that unit to turn a camera on my TV antenna mast and run a stepper motor to turn my 2.4ghz antenna. No problems at all.
    Runs great. Mind you I would like to get it down to reprogram so that I can update it up on the mast.

  14. The way I understand it is that there are two potential limitations to applying 5V to a 3.3V input:

    1) ESD protection diodes connected from the input to Vcc (3.3V)
    2) Limits on the maximum Vgs voltage of the input MOSFETs

    Point 1 is fairly easy to verify: Connect the deveice to 3.3V, connect a variable power supply to one input through a high value resistor (maybe 100K or so) and measure the voltage at the input. When the voltage at the input starts deviating from the voltage coming from the variable power supply, for sure you should not be exceeding that voltage during operation. If this deviation starts at about 3.8V (3.3V supply + 0.5V voltage drop on the diode), you’re most likely in the presence of a protection diode to Vcc and you should not exceed Vcc at your inputs.
    If you reach a higher voltage (say 4.5V) and there is still no difference between the variable voltage and the voltage at the input, most likely you have a zener diode acting as protection. If this is the case, it is likely that the inputs were designed this way to allow input voltages higher than the supply voltage. If the inputs are properly designed, the zener voltage will be lower than the maximum Vgs voltage of the input transistors, and it should be safe to operate the device up to the point where the zener diodes start conducting.
    Now the question would be what is the expected dispersion in this voltage due to process variations. I know very little about semiconductor manufacturing, so I cannot answer this question. But my guess would be that if you get one unit not to conduct at the input with 10V applied, it would be safe to use any device at 5V. Or if you have many devices, you could try to measure this voltage on may devices and try to get a mean and std deviation. If the mean minus 2 standard deviations is still above 5V, it should be safe to use the device at 5V 95% of the times (assuming that the manufacturer did not reject units that do not meet this condition). If the mean minus 3 standard deviations is still above 5V, I would assume it is safe to use the device at 5V at least 99% of the times (meaning 99% of the devices won’t have a problem operating at 5V). Zener breakdown voltage usually has a positive temperature coefficient (higher voltage at higher temperature) for voltages above 5V, and therefore operating at higher temperatures should not be a problem.

    1. Yeah, my measurements on the ESP-13 show that all pins except the reset should tolerate 5V. However note that you may expect higher current consumption when going over the VDD.
      Looking at TIs uC as an example they claim “For VIN ϵ (VDD, 5.5 V), the leakage current is less than 700 µA.” so I would be careful about the 100K resistor, the IO might leak too much and too fast and it might fool you to think it is 3.3V only.

      Also a good point, analog operation is not proper outside of the VDD range.

  15. I have some personal experience with a project I worked on at an old employer. Long story short, simple H-bridge using fest with -1vv and +12v gates spec’d. I built the prototype with parts I selected from Digikey/Mouser and started a life cycle test weeks later received a production sample from China which also got put on an accelerated life test. After 25k production units were in the field down the road and the original “production” samples (5 or 10pcs I believe) still running it’s life test And past 500k cycles something terrible started happening to the ones in the field. The Chinese data sheet they gave me for this “equivalent” part (yes this is where my mistake was made and have since learned my lesson) apparently was only logic level Not the 12Vg-s I spec’d. Funny this was I could not get them to fail but they were and some not for month’s of daily use.
    Also it is possible the mtg could do a running revision to simplify production which could instantly make the device fail unlike previous pcs. Its something I would only trust for a one time project at most.

  16. This is why the ESP8266 is cheap. This is the price we as hackers pay when we decide to use cheap boards/devices from China. Don’t get me wrong…they work…..80-90% of the boards/components we buy will work. But will have a limited lifetime compared to the real thing, will be derated e.g. hbridge won’t handle as much current as it should due to poor quality & poor solder joints…. and in some cases due to the use of counterfeit boards. But more important of all they will have little to no documentation.

    Now I’m not recommending not to buy cheapo stuff from China. Some of it is great and functions within acceptable parameters for the price. But you more or less get what you pay for.

    1. But there’s no such thing as “real” or “fake” ESP8266.

      Yes, sometimes quality control or design of pre-made boards or modules is poor… so if you want to control that process yourself then buy the silicon from Espressif and assemble the board yourself.

      1. The ESP8266 is a bit of an exception here in the sense of not only can the breakout boards that it comes on be of poor quality with shoddy soldering, but also the chip itself comes with little proper documentation. If the chip itself came with a datasheet detailing the I.C.’s electrical characteristics and perhaps registers for CPU/peripheral control….like any half decent microcontroller out there….this article wouldn’t exist.

      1. Yes, and I got a HUGE range but the signal was mostly white noise and the ESP chip didn’t seem to be doing any meaningful modulation. Perhaps I should try it again?

  17. When I bought my first Esp-01 and esp-12 units last fall, I punched my head to wall for about a month trying to get these to work with 3,3V. I thought all my units were born dead and even ordered more units from different place and waited 2 weeks for them to arrive, no dice. I was pissed and threw all the logic converters and resistors away and pushed 5V in. And it worked! Fvck internet, fvck 3,3V, fvck espressif, im going with 5V.

    1. That’s probably because you tried to power them with 3.3V from your USB2TTL, which doesn’t give nearly enough current (it’s not really supposed to power anything). When you switched to 5V, you started to get power directly from the USB 5V, and that is often good up to 500mA (ESp8266 needs up to 300mA). But you are still over-stressing the chip…

      1. No, I had separate 3,3V powersupply. After reading my comment again it doesn’t make much sense. I meant that my usb to ttl adapter had 5V logic high and I was scared to connect it straight to my esp units cause of everyone warning that it will break them. So I first tried to program them with logic converter inbetween converting the 5V signal to 3V3 and all grounds connected together, it didn’t work. They need over 3,6V logic high.

  18. Well, I have insider news from ESPRESSIF folks: it has 5V tolerant IOs, but the chip only runs at 1.8V to 3.3V. That means that you can connect 5V IOS directly to the ESP8266 GPIOs, while maintaining the 3.3V supply to the chip’s PA.

  19. Let us not be confused by the datasheet nomenclature.

    Vil and Vih are the voltage limits for the chip to recognize the LOW and HIGH levels respectively and NOT maximum ratings.

    A Vih max of 3.6 Volts means that the manufacturer absolutely guarantee that the chip will understand a voltage of 3.6V and up as a HIGH level. Again this is NOT THE MAXIMUM TOLERATED voltage!

    The input buffer circuit is protected by a snap back circuit which works as much as a triggered zener diode. What the datasheet clearly states is that above ABOVE 6.0Volts the snapback will trigger and will shunt the input current so the voltage remains at 5.8Volts similar to the way a zener keeps a constant voltage on its terminals. Btw such drop from 6 to 5.8 names the ‘back’ of snap back.

    In plain english, the datasheet says that THE ESP8266 IS 5V TOLERANT! And probably the manufacurer implemented a snap back rather than the ESD diodes to ease the interface with 5Volt systems without series resistors or intermediary devices. Think about it….

    Are we all on the same page now?

    1. That’s sounding wrong…. because the minimum high level for 5V TTL is 2.2V with a 0.4V noise tolerance usually implemented for a 2.6V minimum in practise. So a “3.3V” part having a minimum logic high voltage of 3.6 is whack.

        1. Indeed!. Nevertheless it is possible to perform some experiments to check whether the statements in the datasheet are correct or not. I’ll think about something easily reproducible.

  20. Holly crap. Seriously, why is Espressif not making an official comment about this? How the hell has this confusion been going on for years?

    Espressif, put a period to this topic once and for all. I think this is pretty essential information to have. It’s useless to argue here, Espressif is the only one that knows for sure (atleast is supposed to).

      1. Well, i looked at couple datasheets, i would not use it with 5V (just like i would have not before all this), even though the datasheets do not actually say “absolute maximum values” or even “operating characteristics” or whatever, and have some typos too.

        Still, comments here, like the one where the modules won’t work with 3.3V, but higher voltage etc. does not really bring confidence to the datasheets either, although it could be some kind of user error aswell. Also i can’t understand why they would not make the i/o 5V tolerant, although most 3,3V devices are not, so not really that weird. Still hopefully ESP32 will be 5V tolerant.

        There are also Espressif embloyees hanging around here, so they could make a comment and have this thing cleared up.

    1. So we have a Facebook comment from Teo Swee Ann(
      “i can reply officially here: it is 5V tolerant at the IO. while the supply voltage is at 3.3V.”

      Yet on the Espressif forum( an employee stated
      “We donot recommend you to apply 5V to IO.”

      Why would they only announce 5V tolerance on some obscure Facebook comment? How do we know that Facebook user is actually the CEO and not a fake account?

      So I’m still not convinced by that comment but your testing actually provides us some real data. Thanks for doing that and sharing your results!

  21. Still running the esp8266 directly connected and have used from anything from simple communications to remote programming and have not had any problems with the gpio pins connected directly to the tx and rx of an arduino nano

  22. This just work guys… I understand that it’s driving you crazy thinking about all these years using converters… lol.
    Esp is cheap, why don’t you try, you’ll see by yourself it can run 5v without any problem or heat !
    I used them for a long and I just don’t know what 3.3v is (pi is enough!!!)

  23. i was cracking my head (and my pocket, and my watch) also.. testing with an ftdi usb serial adaptor that works smoothly, but with arduino and level conversors, dividers, etc never could get to work properly, so after thinking i “dared” to do some tests directly with 5v i/o (i have a separate 5v 1A > 3.3v s1117 voltage regulator circuit to vcc)

    i still find it a little risky, so i want at least to put some serial resistor to drop voltage to 3.3v before, but that depends on gpio impedance….

    q1 = does anybody know how much resistance gpio pins have? .. i can’t measure them since they send pulses and i have just a (cheap and slow) digital multimeter …. i intend to “simulate” a voltage divider, but for 5v to 3.3v to work the series resistor have to be about half of the gpio resistance value

    q2 = does anybody actually knows directly which ohm value the gpio series resistor could be? … or could so some tests, find it and share with us? … thanks in advance

    1. thanks 4ur reply …. but anyway… i dont know how much milliamps does arduino uno send on digital out pins nor how much milliamps can esp8266 receive by i/o either

      i suppose uno tx is 40 milliamps and esp rx is 20 milliamps max = will turn esp into a one use led

      so my questions still, which is the ohm value for esp rx pin?

      +———–+ tx r1 rx +———+
      | arduino |—–##—–| esp-01s |
      +———–+ +———+

      1. I don’t know what the current or ohms is, but I have done what you have in the diagram and it works ie I’ve connected a 8266 to a UNO via i2c (and it works) and via the hardware serial connection (works as well) and even via some misc pins and software serial on both ends (but the 8266 has problems with this as it will miss bits with other things going on ie wifi…)

  24. Per connection of TTL 5+ logic to the RX pin of 8266 :
    refer to the Adafruit trick of using a 1N4148 Diode in series with cathode outward (away from ESP chip)?
    This seems to be a quite reasonable and inexpensive way to cheat . The diode should drop 0.7 V and the
    internal RX ESP8266 pin should be pulled up so I expect this to work to make RX input to ESP8266
    “5Volt TTL tolerant”.
    I disregard the TX pin because it is output 3.3V and (in general) TTL devices trigger at much lower than that threshold.

    to avoid “odd” effects in using RX pin from WEMOS board to a NANO/UNO/MEGA;
    use a 1N4148 small signal silicon switching diode at the RX input connection of WEMOS D1 (at “D3” “UART1”)
    or similar pin on another ESP 8266 board.
    refer to and scroll down to point (6).
    “RX level shifter with Diode”
    The schema in (5) of same page suggests a Resistor divider but I suggest those values are far too low,
    and I have had success with 1K + 2K dividers.

  25. About my specific version of the ESP-01:
    My arduino was generated the TX signal at 4.5V.
    I used an 4k(of 1 10K trimmer) + 20k divider before the RX pin and measured 3.8V.
    Below 3.7V the ESP was unable to sense the communication at all.
    Total weird, I wasted a day for this bs.

  26. I connected my first esp8266 12F to 5v accidentally without realising ams1117 pin was missed out… I was not sure whether the chip survived or not… took the next one I had to complete the circuit and it worked. Looking at the first one still was not sure on it, but this article saved me one… now connected the first one on to the circuit, hurray.. it worked. Thanks alot.

  27. I know i am a bit late to the party here now, in 2020, but hey, i’ve just looked at the official data-sheet, last update 2020.07, and it clearly states in section 5.1 (Electrical Characteristics), I/O, VIH=3.6V, so… NOT 5V tolerant after all? And if it is, with an insider talking about it on FB a year ago, why didn’t they update the data-sheet at this point?

    BTW, admittedly, i’ve driven one of those $3 evaluation boards with an ESP8266 I/O directly by a 5V logic output, this board is still alive and kicking, including that specific GPIO. Anecdotal evidence doesn’t mean i’d risk developing an actual mass-produced product counting on it, though.

  28. This post seems to draw quite some attention, even after 4 years!

    My 10c: many of the above suggestions are necessary if your controller isn’t 5V tolerant and really only handles 3.3V on its GPIOs. But the ESP8266 is 5V tolerant. (At least unofficially – seems to be under debate, but if the Espressif CEO has come out and said so, I’d believe him:

    Nonetheless this doesn’t mean you can simply drive the LEDs directly from a GPIO – you’re still only producing 3.3V output which is under spec for the NeoPixels, and will lead to “mixed results” (sometimes working sometimes not, see comments above).

    But the 8266 also has open drain outputs, so all you need to safely drive the LEDs within spec on a 8266 is a single resistor:

    – connect a pull up resistor between your driver-line and the 5V power rail – 3kΩ works for me
    – set the driving pin to open drain: pinMode(PIXELS_PIN, OUTPUT_OPEN_DRAIN);
    – you’re all set

    Now that’s a much cheaper solution than the sacrificial LED, and even cheaper than the inverter suggestion…

    Let me know if there’s a problem with it, from your point of view. It seems to be working well for me.

  29. My ESP8266-01 doesn’t accept instructions from the FTDI adapter when it’s powered from +3.3V, sketches don’t work. It works very reliably when powered from +5V (can be set on the FTDI adapter by jumper).

    But running it from the +5V for a longer period could in my opinion affect the longetivity of the IC. I checked my ESP8266-01 with thermographic camera while running at different voltages (ambient temperature 24C). When running from +3.3V the temperature of the IC is around 49C and when running from +5V the temperature climbs to 59C within a few minutes. I have then disconnected the power supply. This temperature would be even higher when ESP is put into the enclosure.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.