Top 5 Ways to Wire up ESP8266 Module to your Arduino Uno Board

There are different ways to connect ESP8266 to Arduino boards. Here you got to keep a lot of things in mind because ESP8266 is notorious for being unreliable. It’s fussy and does sporadic things which can make things difficult at times. But when you get through, it’s actually a great unit!

Important things to keep in mind:

  • Use a reliable power source
  • Use additional capacitors
  • Use additional resistors
  • Make firm connections
  • Keep wires short

Power requirements:

The ESP01 module is a very sensitive improper power supply. According to the Datasheet, Esp8266 modules have an operating voltage of 3 to 3.6 volt which is about 3.3 volt plus and minus 10%. Since Arduino Uno has got a 3.3-volt pin and can be used to power other 3.3V devices, we can explore a few wiring schemes.

ESP01-Pin Diagram

ESP01-Pin Diagram

Related: How to upload sketches to ESP8266

ESP-01 Wiring Schemes

Simple Setup

The most basic connection scheme is given below:

Basic ESP8266 wiring with Aduino

Basic ESP8266 wiring with Arduino


  • Arduino 3.3v power – breadboard red power rail
  • Arduino GND – breadboard black ground rail
  • ESP01 GND – ground rail
  • ESP01 VCC – power rail
  • ESP01 CH_PD – power rail
  • ESP01 TXD – Arduino Digital Pin #6 (RX pin using software serial)
  • ESP01 RXD – Arduino Digital Pin #7 (TX pin using software serial)
  • A 100uF (or larger) capacitor helps to absorb current spikes

This scheme has three main problems:

  • Power source: The ESP can draw up to 250mA while the Arduino Uno 3.3V output pin can provide only 50mA. A capacitor can help but it’s not enough.
  • RX: The 5V Arduino TX serial output needs to be shifted to the 3.3V ESP RX input. However, simple prototypes can be built without this because the ESP has a built-in protection.
  • TX: The 3.3V ESP TX output should be enough for the 5V Arduino digital input. A reliable project may need a level shifter.

Level shifting with Resistors

The 5V output from the Arduino TX pin can be shifted to 3.3V using a resistor voltage divider. Because 3.3V is 2/3 of 5V, it’s easy to create a voltage divider out of resistors.

5V to 3.3V Logic Level Shifting Stragety

5V to 3.3V Logic Level Shifting Strategy

For an output current of 7.5 mA, you can use three 220 Ohm resistors.

Level shifting with resistors

Level shifting with resistors

Using voltage regulator (LM1117/LD1117)

Several cheap 3.3V regulators are available on the market. A very common and cheap one is the LM1117 (or LD1117). With such regulator, you can convert the 5V power used for Arduino to the 3.3V needed by the ESP.

Using LM1117 for power supply

Using LM1117 for power supply

Powering with Diodes

Since the Arduino 5V pin can provide 200mA we can use this to power the ESP. This scheme is very cheap and simple allowing to use simple and cheap diodes to convert the 5V to 3.6V. Suitable diodes are the 1N4148 (300 mA) or the 1N4007 (1 A).

Powering ESP8266 with Diodes

Powering ESP8266 with Diodes

Powering with Zener diode

An alternative cheap approach is to use a 1N5226 3.3V 500mW Zener diode to power the ESP.

Powering with Zener Diode

Powering with Zener Diode



Author at onlineshouter
Christine writes for people who seek for knowledge about SEO, blogging, online marketing, gadgets and web apps.

Leave a Reply

Your email address will not be published.