This is a very old question, ever since Espressif removed the 5V tolerant statement from their datasheet no one felt safe connecting 5V directly to the digital input pins, but the news is out now, according to the CEO of Espressif himself, their boards are indeed 5V tolerant ON THE DIGITAL INPUT PINS
What pins are 5V tolerant exactly?
The IO pins in input state (sink) are 5V tolerant, Yet the power supply to the chip must be 3.3V (Most boards come with a regulator for this so it should not be a problem). other models do not come with a regulator, and in such a case, you will need to add the regulator, but even then you do not need a level shifter for the digital inputs. for the ESP32, The ones without an onboard regulator usually go for as little as $2.5 (5 boards for $12) , while the ones that come with a voltage regulator and a serial to USB adapter will set you back around $4.6 (3 for $14)
When pins on the Espressif microcontroller are set as output, they will use 3.3V logic, whether or not the difference in voltage between high and low will register on the other microcontroller/device is an issue related to the other microcontroller, from my experience, Arduino Uno works just fine.
Also note that analogue pins are a different story, the ADC pins use the power provided to the chip as a reference voltage. so a voltage divider is still required.
so in short, if you connect the 5V supply to the VIN pin (going through the onboard regulator), and use 5V logic on the digital pins while they are in input mode (Sink) you should good, and this is not just me, this is an official statement.
You may be wondering why is it not the in datasheet then ? The answer is, it used to be in the datasheet, but the company faced problems with people powering the chip itself with 5V so they omitted it to avoid confusion,
This is excellent news for someone like me who has to go through the hassle of logic level converters whenever coupling Arduino with ESP chips.
Before the CEO of the company made those statements, many people did their own experiments and found those results, but there were still doubts as to whether the results were conclusive or whether there was more to the story, a convincing experiment by ba0sh1.com did demonstrate that it was indeed 5 Volt tolerant on the input pins,
Where did i get this from
Swee-Ann Teo, who after my research seems to be from Espressif made the following statements
- On whether ESP8266 is 5V tolerant, he had this to say on a facebook post by hackaday
“i can reply officially here: it is 5V tolerant at the IO. while the supply voltage is at 3.3V.”
- On whether ESP32 and ESP8285 are also 5V tolerant
“ESP32 and ESP8285 are both 5V tolerant as well. but for ESP32, it is a very complicated matter. it supports 1.8V operations too… i don’t know where to start…”
- When asked why this information is not in the datasheet, he responded
“the reason is too many users took it to mean that the chip is 5 V tolerant. When we say 5 V tolerant, we are only referring to the IOs. So some users mistook this to make that they can power the chip entirely off the 5 V supply. The correct usage is to use 5 V open for these 5 V tolerant pins, and only via only drain configuration.” And then elaborated on the matter with “I understand, but the time needed to do the iterations when mistakes were made, was too long. when the product was launched 5 V WiFi modules (with DCDC) were the norm. Many users saw “5 V” written in the specs and thought it could be a 1-1 replacement for such modules.”
- One user asked if the tolerance towards 1.8 volts of the ESP32 was relevant to enabling battery operation, the response was no, specifically, Teo responded with
“actually not. but many memory devices are moving towards 1.8V operations, and we would be compatible with them as well.”
The facebook post where this is all written is here.
4 thoughts on “Are the ESP32 and ESP8266 5V tolerant (Yes they officially are)”
Hi, very useful information – I have just started using ESPDuino32. But I cannot reconcile the two notes – IO pins in input state (sink) are 5V tolerant vs that analogue pins are a different story. The majority of input pins can be defined as analogue if required but if defined as digital input are those pins 5v tolerant? Is it only if defined as analogue that one must exercise caution (because it is comparing to 3.3v)? Can you clarify for me please.
Analogue is interpreted using the 3.3V power as reference, the chip has no way of interpreting anything above 3.3v, so when you have analogue input you will need a voltage divider, when those inputs are used in digital, the cutoff voltage that differentiates low from high logic will still register as the intended low/high logic, so the answer is you are right, that same pin will work as digital input with 5v but will not when it is reading analogue
My confusion arises partly because I do not understand what ‘in input mode (Sink)’ means. My primary use at present is mainly processing output io from ESSPDuino along with send/receive via Uart and sending 5 digital inputs to it (5v or Gnd). Just trying to avoid complicating matters. Would adding 1k resistors in each line assist – that at least cuts any possible current to 5ma.
I think i understood the previous question and hopefully answered it, this question is not clear to me.