So you're a Noob? Post your questions here until you graduate! Don't be shy.

User avatar
By Stella
#92432 Greetings

I have done my initial reading concerning Arduino/ ESP8266 interconnection (via my ussual channel: Google), but have not found a consistent treatment for the voltage difference between the two

My problem arrises from the almost universal warning
"The ESP8266 chip requires only 3.3V to communicate. The chip does not have 5V tolerant inputs. If the chip is connected to 5V devices, the chip might get damaged".

I understand that the ESP8266 should be POWERED from 3.3V. This is readily available from either the Arduino or a standard breadboard power supply.

But the pictures and diagrams Ive seen connect respective TX to RX RX to TX, and various GPIO interconnections between the two boards. Ussually the connections are direct wire links, ocassionally (but not in any consistent way) some sort of resistor is inserted in series in the link.

I assume that a direct conection between an Arduino IO Port (at 5V) and the associated ESP8266 pin (at 3.3V) will destroy to ESP8266. Yet there is no shortage of pictures & schematics and descriptions indicating a direct connection.

Im sure this has been asked many times before. Please point me to the definitive description of the the manner in which the two devices are connected to accommodate the voltage difference

User avatar
By btidey
#92473 It is not a good idea to directly couple the TX and RX lines between a ESP8266 module and a standard Arduino for 2 reasons.

First the 5V TX output from the Arduino could potentially damage the 3.3V RX input of the ESP8266.

Second the Arduino will normally have a usb serial bridge also connected to the Arduino RX/TX lines so there is a possibility of conflict on the Arduino RX pin where the USB bridge is trying to drive the RX pin and the ESP8266 TX is also trying to drive it.

Normally there are series resistors on the Arduino to help avoid this.

See answer 1) of ... esp8266-tx

The other question I would ask is why are you trying to connect an Arduino to the ESP8266? There can be reasons like decent ADC but a lot of the time the ESP8266 is more than capable of performing the whole job on its own without the complication of using two microcontrollers. The other alternative if you really need some functionality of the Arduino unit is to treat it as a I/O peripheral and attach it to the main ESP8266 using I2C. See for example