Simple ESP8266 <> Arduino Uno Software Serial Integration

Introduction: Simple ESP8266 <> Arduino Uno Software Serial Integration

About: is an automatic web tool that will help you build almost any innovation you have ever dreamed of, by breaking technical barriers and giving you the best package to kickstart your project. Our Inst…

Our goal was to create an ESP8266 AT command library (based on the ITEAD library), that would work well on software serial on most ESP8266 devices, provided they have firmware that responds to AT commands (which is usually the manufacturer default).

We are distributing this preliminary library for testing and would appreciate your feedback and improvements on Github.

Step 1: Things You Need

  1. Arduino Uno (and Arduino IDE installed)
  2. ESP8266
  3. Logic Level Converter
  4. Breadboard

Step 2: Wiring

connect the ESP8266 via Software Serial to your Arduino Uno board using a logic converter, as shown in the wiring figure attached.

Step 3: Connect to Your Home Wi-Fi

Download and open the firmware.ino library from Github and enter your SSID and the PASSWORD to your Wi-Fi in the .ino file:

const char *SSID= "WIFI-SSID";

Step 4: Upload the Sketch to Your Arduino

Connect Arduino Uno to your computer and upload the sketch.

Step 5: Open Serial Monitor in Arduino IDE

Click on the Serial monitor button in the Arduino IDE (in the top-right corner).

If everything is OK, you should see this output on the serial monitor.

Step 6: Troubleshooting

1. If you get no response, try updating the ESP firmware to the one attached.

Use a 3.3v FTDI board like this one

- Hookup the ESP to the FTDI

- Get the ESP8266Flasher

- Get the Firmware Flash the ESP

2. If you receive partial response from the ESP8266 when using software serial, go to: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h

Change line 42: #define _SS_MAX_RX_BUFF 64 // RX buffer size

To: #define _SS_MAX_RX_BUFF 256 // RX buffer size. This will enlarge the software serial buffer.

3. Sometimes setting the baudrate on initialization fails, try resetting the Arduino, it should work fine.

If you have any issues, let us know :)

Be the First to Share


    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest
    • Pets Challenge

      Pets Challenge
    • Fruits and Veggies Speed Challenge

      Fruits and Veggies Speed Challenge



    Question 2 months ago on Step 3

    I realise this has been up a long time but it appears from the wiring diagram that the HV earth and power are on the wrong pins on the level converter. They need to be shifted one pin to the right to the two central pins.


    4 years ago

    The schematic shown in step 2 doesn't work since ESP8266 can require more than 250mA and the 3.3V Arduino UNO line can provide only 60mA or less. You will get some reset.


    4 years ago

    Somebody can help me? This tutorial works fine, but if a want to control leds with a web server what can I do? I would like to to that using this library because is the only way that my ESP8266 works with arduino.


    5 years ago

    i can't get past building because of this: error: 'class ESP8266' has no member named 'init'

    thank you!