Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By RobNewton
#6950 I am using an Arduino UNO with software serial to the 8266. I've got my 8266 using the 3.3v rail from an old ATX PSU. However, the 8266 just returns junk text. I have tried every baud rate in the software serial to no avail. The text I get in the serial monitor is a little different each time I apply power to the 8266. I can read some of the text some of the time in between the jarbled message.

Code: Select allÿó¡àmX,ÊïGŒÍaæ0ù«>ìP$#tÿÆe¸&©Ïõæ xìþÿÿ[Vendoúÿÿÿÿÿÿÿÿÿhinkerîÿÿÿÿÿÿÿon:0.9þÿÿÿÿÿÿÿÿÿeady

üüÿÿÿÿÿÿÿµƒ^erÿÿÿÿÿÿÿÿÿÿong syîÿÿÿÿÿÿÿÿSOR

Ãüÿÿÿÿÿÿÿ=

wroÿÿÿÿÿÿÿÿÿ

ERþÿÿÿÿÿÿÿ


Or another time it was like this (I think I see version 9.2.4 in there)

Code: Select all¡àí[ªëÇCŒÅa檠  æôÀ¡H2¤ðVùvêouKüæ$yÿÿÿÿÿÿÿodor:ww÷ïÿÿÿÿÿÿ«K—ië«ë»ÿÿÿÿÿÿÿ?.9.2.4ýÿÿÿÿÿÿßÿ5)jÒúõÿÿÿÿÿÿÿ¿oróZËÿøìÿÿÿÿÿÿÿK+ÿøüüÿÿÿÿÿì?ÿ


Any thoughts?

I have scoped the 3.3V rail from the ATX PSU and I see it is getting 3.6V actually. Could that be a problem?

I am using pins 2 and 3 for the software serial on the Arduino connected directly to the 8266 TX and RX.

Here is the sketch code:
Code: Select all#include <SoftwareSerial.h>
 
SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.
                             // This means that you need to connect the TX line from the esp to the Arduino's pin 2
                             // and the RX line from the esp to the Arduino's pin 3
void setup()
{
  Serial.begin(9600);
  Serial.println("Startup");
  esp8266.begin(9600); // your esp's baud rate might be different
}
 
void loop()
{
  if(esp8266.available()) // check if the esp is sending a message
  {
    while(esp8266.available())
    {
      // The esp has data so display its output to the serial window
      char c = esp8266.read(); // read the next character.
      Serial.write(c);
    } 
  }
 
 
 
  if(Serial.available())
  {
    // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest
    // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it
    // but we want to send everything at the same time.
    delay(1000);
   
    String command="";
   
    while(Serial.available()) // read the command character by character
    {
        // read one character
      command+=(char)Serial.read();
    }
    esp8266.println(command); // send the read character to the esp8266
  }
}
User avatar
By RobNewton
#7024 I switched to the 3.3V from the Arduino (I know it will not work under load, but just for testing the AT commands) and it works. So I suspect the 3.6V from the PSU was causing the issue.
User avatar
By cmskipsey
#7499 I'm having a similar problem, but I'm using the Arduino 3.3v as Vcc for the ESP.

It seems using the Arduino TX/RX is fine, but when using Software Serial, it doesn't work.

I'm powering the Arduino via USB, but also tried with a 9v battery.

Any ideas?
User avatar
By MeNoGeek
#7528
RobNewton wrote:I have scoped the 3.3V rail from the ATX PSU and I see it is getting 3.6V actually.
You need a load such as a light bulb on the 5V or the 12V rail.