How to connect ESP8266 to Arduino – A Detailed Guide

Here we will be disusing in detail how to connect ESP8266 with Arduino without damaging either of the devices.

Firstly, and I cannot emphasise enough on it, do not, I repeat DO NOT connect your ESP8266 module with Arduino directly as shown in the following image

How to connect ESP8266 with Arduino

ESP8266 operates on 3.3V and is not 5V tolerant, therefore if you connect it directly with Arduino 5V supply it will heat up and eventually get burned out.

Similarly, RX and TX pins of ESP8266 are also not 5V tolerant whereas Arduino RX and TX pin operate on TTL levels which in turn means that the RX pin of ESP8266 will burn eventually if connected to Arduino directly.

Connecting ESP8266 with 3.3V Arduino supply is also not a good idea because it puts extra load on Arduino voltage regulator. This problem is explained further in detail below by using simple maths.

ESP8266 on average consumes 0.43 Watt / hour

Now assuming we drive this power from Arduino 3.3V supply, this would mean that the ESP will draw following amount of current from Arduino just to operate

P = V x I
I = 0.43 Watt / 3.3V
I = 130 mAmp

At 130 mAmp, Arduino voltage regulator will start getting heat up and will eventually get burned.

How to connect ESP8266 with Arduino

Now that we have identified the issues with directly connecting the ESP module with Arduino, it’s time to work on the solution on how to connect ESP8266 with Arduino boards.

First of all I recommend that you go through the article I wrote about how to power ESP module with 5V supply that pretty much explains the first steps required on how to connect ESP8266 with Arduino.

how to connect ESP8266 with Arduino

This is the ESP8266 Conversion Adaptor that we made

When you make an adaptor unit as described in the article, you can connect the RX and TX pins of the adaptor unit directly with Arduino without damaging the pins. Now the question is can we power the adaptor unit (which operates on 5V) directly from Arduino or not?

Note: If you are not interested in making an adaptor yourself then you can purchase one right of the shelf from many online stores as shown below for your convenience

how to connect ESP8266 with Arduino

ESP8266 ESP-01 WIFI Transceiver Wireless Module With Adaptor Module For Arduino

ESP8266 ESP-01 WIFI Transceiver Wireless Module With Adapter Module For Arduino US $4.96
5Pcs Wireless WiFi ESP8266 3.3V 5V ESP-01 Serial Adapter Module Board for Arduino US $9.99
ESP8266 Serial Wi-Fi Wireless ESP-01 Adaptor Module 3.3V 5V Compatible For Arduino US $2.56

Check out Store Listing for ESP8266 Adaptor

Here is the thing, as discussed above we know that ESP8266 module consumes 0.43 Watt of power so lets use simple maths again to figure it out.

Again using
Power = Voltage x Current
at 5V that would mean total current being drawn from Arduino would be

Current = Power / Voltage = .43 / 5.0
Current = 86 mAmp

Although 86 mA is on the higher side but it still remains with in the tolerant limits of Arduino voltage regulator. So yeah, using the conversion adaptor we have already developed; you can now drive the ESP module from Arduino.

There is a way to avoid or bypass the voltage regulator altogether and be sure that the circuit would remain safe and ensure long life even if the system is kept on 24/7. This is the technique we have used to design many of our products including our SmartPump Technology already running continuously on many locations and our SmartHomes that we will be launching as soon as our test trials are completed.

Let me know in comments if you want to find out this technique and I will share the details.

Untill then,
Have fun.

P. S.

If you are like me and like to order equipment & components from online sources then you should check out the following links to find out low cost purchase sources and avoid paying extra

Check out the following links compare prices and make an informed decision when purchasing


Absar A. Ansari

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *