ESP8266 does not communicate with Arduino

Hello everyone!

I am trying to connect my ESP8266-01 to my Arduino, but I am unable to do so. According to what I have read in Internet, the ESP should send a ready message to my Serial Port, but I recieve nothing. When I turn the ESP on, a red LED is turned on, and a blue LED blinks fastly and then turns off.

The code I am uploading to the Arduino is this:

#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX

void setup()
  {  Serial.begin(115200);
     BT1.begin(115200);
  }

void loop()
  {  String B= "." ;
     if (BT1.available())
         { char c = BT1.read() ;
           Serial.print(c);
         }
     if (Serial.available())
         {  char c = Serial.read();
            BT1.print(c);
         }
   }

The circuit I am using is this one:

This is how I have set the serial port:

What should I do? The problem is, how I have explained before, that I do not recieve the ready mesasage and I can not use any AT commands.

Thanks in advance!

are you sure your ESP-01 has the AT firmware and it's baud rate has not been changed?
I've always used a 5V adapter for my ESP-01 as I was always unclear if the pins are 5V compatible

I have read in Internet that they should use 3.3V, so I have connected them to 3.3V, but using an external voltage supplier to have the needed 200mA.

About the firmware, I have not changed anhything since I bought it. I have just connected it to my Arduino. Should I install the AT firmware? If so, how?

It should come with the AT firmware, but your mileage may vary... Google " Flash AT Firmware on ESP-01" and you should find multiple hits

(I'm not sure the Rx pin is 5V compliant - I would not try...)

I have been trying to install the firmware, but I couldn't.
I have followed this tutorial and it gives me the following error:

When I click start, the blue LED starts blinking continously, but it then just failed.

I have used a 115200 baud rate, as at other baud rates it does not even blink.

What should I do? Could it be broken?

I don't know on windows. I'm on a Mac and when I was playing with ESP-01 I've done this from the command line in a terminal

I never wired 5V from Tx to Rx though, always went through an adapter. I don't know if you sent 5V there if you damaged the module.

I no longer use ESP-01, there are better ESP alternatives for roughly the same price that are way more capable - and don't use the AT firmware.

After uploading a new firmware, I have been able to communicate it via the serial port. At different baudrates it did not work, it just printed random characters. However, at 74880 baud it finally worked. It printed what you can see in the next picture:

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 23200, room 16 
tail 0
chksum 0xef
load 0x00000000, len 0, room 8 
tail 0
chksum 0xef
load 0x00000000, len 0, room 0 
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c 

However, I believe it should print ready, should't it? In addition, it does not answer anything when I type AT. What should I do next?

Related to the better ESP alternatives you use, which one would you recommend me? I am using it to display some values from a sensor in a web page using Arduino.

what firmware did you upload (a NONOS SDK?) ? there are many...

A LOLIN D1 mini is pretty capable and you could likely connect directly your sensors to it and export the data to your RPi directly without using the AT commands.

You'll find also pretty good board based on ESP-12E or ESP-12F

I have followed this tutorial and used the firmware available in this one, as it has been the only firmware I have found. Should I use another one? Could you supply me a link to it?

Thanks for the other alternatives, I will read about them.

as I said, was a long time ago. I grabbed the ESP8266_NONOS_SDK file from Espressif web site and using esptool.py I uploaded the various segments

a quick google pointed to that site Restoring the AT firmware on the ESP8266 | Robert Oostenveld’s blog, read the part about Restoring the AT firmware

Hi again, sorry to insist.
I have installed the firmware you have told me in your last comment, following the tutorial you indicated me. However, I still receive the same error as before.

I have searched in internet and it is quite common, but they all have this problem when uploading an sketch. However, I get this one just when resetting the ESP-01.

If I remember correctly, what you see
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
is an error message saying the ESP was reset and the firmware does not work...

have a look there
https://www.espressif.com/en/support/download/sdks-demos?keys=NONOS&field_type_tid[]=14

and try to pick an old version as newer versions required more than the 1MB of the ESP-01 (if I remember well)

I found this in an old PDF I had kept:

that's where the various files needed to be uploaded

Thanks for your interest, but I still get almost the same error. Only the len part changes.

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 31320, room 16 
tail 8
chksum 0xef
load 0x00000000, len 0, room 0 
tail 0
chksum 0xef
load 0x00000000, len 0, room 8 
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c 

I have now used the ESP8266 NONOS SDK V2.0.0 20160810 firmware, which I downloaded from the website you provided me.

I installed them using esptool.py following the directions in the 4 Mbit Flash part from the image you sent me. What should I do?

it still shows an error.

how did you connect then ESP-01 to your computer to use esptool.py?
(As I said, you did not adapt voltage so you might have fried the Rx pin... I don't know if it's 5V compatible)

I am using a USB to FTDI adapter, and I am following this same sketch.

I only connect the GPIO pin when installing a firmware, and I connect the RESET pin to GND to reset it.

However, I am not sending any messages, so I believe I am not using the Rx pin. In addition, the Tx pin works correctly as it sends the error message. I believe it should send the ready message instead of that one, but the Tx pin works correctly I believe.

to transfer data your FTDI adapter Tx (5V when sending a 1) goes into the ESP-01 Rx pin... if that Rx pin does not support 5V you are in trouble...

The ESP-01 Tx pin is 3.3V when sending a 1, that's received fine a a HIGH on the other side (which can receive up to 5.x V) (as it's above the threshold that differentiates 0 and 1)

I'm not saying it's broken, I'm saying it's a possibility you fried that pin...

have you tried the oldest you could find firmware? do you know how much memory you have in your ESP?

As I said, I believe I am not sending any bytes to the ESP8266-01, so I believe I am not using it and it should not be any problem.

I am using a firmware that is from 2016, so I believe is old enough. They are using the version 3.0 right now, so I choosed the 2.0 version.

I do not know how much memory do I have in the ESP.

In order to prevent my module to be fried when using it with 5V if I buy another one, what should I do? Are there any adapters? I have read about voltage dividers, but they include too many resistors and are not therefore easy to use.

What do you think happens when you try to flash the module?

There are USB adapters that let you select 3.3v, you could have also a voltage adaptor (usually found with I2C) or the resistors or a diode… but if it’s a problem, it might be too late…

But if I have been able to flash it several times, I believe it has not been fried. Do you know what could I do?

Any advice on which voltage adaptor to choose?

Which one did you use?