Comunicación con SoftwareSerial y ESP8266

Buen dia a todos, agradezco su atención.

Les comento, tengo un modulo ESP8266, el cual está conectado a un arduino nano, el cual mediante SoftwareSerial (en pin 2 y 3) envía comandos AT al módulo. Estoy también usando la comunicación Serial para mostrar en el monitor, la respuesta capturada para poder depurar y observar las respuestas del modulo por lo que, luego de enviar el comando AT, capturo los datos del puerto serial emulado y los imprimo en la consola. Mi código es este:

#include <SoftwareSerial.h>

SoftwareSerial serial(2, 3); // RX | TX
String dataIn;

  
void setup() {
  Serial.begin(9600);
  serial.begin(9600);
  delay(5000);
  initAPMode();
  serial.flush();
}

boolean initAPMode(){
    serial.print("AT+CWMODE_CUR=2");
    serial.print("\r\n");
    serial.flush();
    bool retVal = waitAnswer("OK","FAIL",5000);  
    return retVal;
}

boolean waitAnswer(String expec,String fail, long wait){
  boolean finish = false;
  boolean retVal = false;
  String answer = "";
  long currentMillis = millis();
  while(!finish){
      if (!finish && serial.available()>0){
          char c = serial.read();
          answer += c;
          if(answer.indexOf(expec) > 0){
            retVal = true;
            finish = true;
          }else if (answer.indexOf(fail) > 0){
            retVal = false;
            finish = true;
          } 
      }

      //if past setted time, finish connection attempt
      if( (millis() - currentMillis) > wait){
          finish = true;
      }    
  }

    Serial.println(answer);
    return retVal;
  
}

El detalle es que, en la “respuesta” que se lee, se incluyen los mismos datos que ya envié, es decir, el comando + la respuesta y no se si es normal.
¿Realmente se están mezclando los datos que envió con los de respuesta? o
¿El modulo responde con el mismo comando + la respuesta de ejecución?

Adjunto el diagrama de conexión y la captura del monitor serial.

De nuevo gracias por su atención

circuito.jpg

comandos.png