Esp8266 responds with meaning less characters to AT commands

Hello Guys,
My new esp8266 outputs meaningless characters to AT commands. I am using Arduino UNO to control the esp. I have connected the Tx pin of the Arduino to Rx pin of esp8266. GPIO 2 and RST pins of the esp are floating. GPIO 0 of the esp is connected to ground through a 10k resistor.
I have tried both 3.3v Arduino pin and zr78L033 regulator to power up the esp. But still no change
I have tried all available baud rate, out of which 9600 responded with fewer garbage characters. See the screenshots below.

ard_out

Need some help guys!!

I think esp8266 output gibberish characters for AT+RST, which is not a big deal at all. Does it outputs any gibberish characters for any other AT commands ?? If it doesn’t then you may ignore this problem at once.

This happens with most of the command, but not always.

SoftwareSerial esp8266(2,3); 
                           
void setup()
{
  Serial.begin(115200);
  esp8266.begin(9600);
}
 
void loop()
{
  if(esp8266.available())
  {
    while(esp8266.available())
    {    
      char c = esp8266.read(); 
      Serial.write(c);
    }  
  }

  if(Serial.available())
  {   
    String command=""; 
    while(Serial.available())
    {
      command+=(char)Serial.read();   
    }
    esp8266.println(command);
    delay(10);
  }
}

It appears to me that GPIO0 pin has an internal pull up resistor, so it may be left unconnected. However, it must not be pulled low on power up or reset or the module will enter its bootloader mode. Also, the CH_PD (chip enable) must be pulled high with a pull up resistor attached to Vcc and remain so, for normal module function. The first step to update the flash firmware is to pull down the GPIO0 pin by attaching it GND (ground) with a pull down resistor and then resetting the module by momentarily pull the RST pin to GND, which put the module into its bootloader state. After examining the screen capture you’ve posted above, it appears the module is loaded with the AI-Thinker AT Firmware v0.9.5.0 or v0.9.5.2, their latest release of firmware.

As there is valid text intermixed with spurious characters, the current baud rate appears to be correct. The spurious characters lead me to suspect, the main issue you face at the moment is attempting to communicate with the module through a softUART, Arduino’s Software Serial Library. I recommend first configuring the module for a lower baud rate, 9600 or less, utilizing an FT232R or similar USB to Serial bridge chip BOB (Breakout Board) or cable. You should be able to lower the baud rate to 9600 or less using the AT+CIOBAUD=9600 command. Attempting to properly configure the module for a lower baud rate using a softUART at higher speeds might prove to be unreliable and may unintentionally configure the module with improper settings, therefore I would suggest utilizing the aforementioned BOB or cable.

1 Like

Thank you!! Now everything seems to be working fine now.