Validar contraseña enviado por puerto serial

Hola, como estan!, necesito de su ayuda:

Recibo una contraseña por puerto serial y la guardo en una variable String, pero al momento de validar con la funcion "if" no funciona, porque?

TX:
modulo ESP8266: envia este comando por su puerto serial:
...
String tx_password = String("ABC123");
...
Serial.println(tx_password);
...

RX:
MEGA 2560: recibe estos datos por puerto serial 1:
...
String t_esp_ready = (" ");
String tx_password = String("ABC123");
boolean b_password = false;
...
Serial1.begin(115200);
...
void loop() {
while(Serial1.available() > 0){
t_esp_ready = String(Serial1.readStringUntil('\n'));
}

if(t_esp_ready == tx_password)
boolean b_password = true;
else
boolean b_password = false;
...
... ya me asegure que recibo la contraseña y me la muestra en el monitor serial, y ambos estan identicos:

t_esp_ready: ABC123
tx_password: ABC123

... les muestro las lineas de comando que muestran este problema solamente, porque no ingresa al "IF", y no cambia el estado de la variable "b_password" a TRUE, porque no me funciona?

gracias por la ayuda!!
Saludos

Yo creo que sí está entrando al if() pero el problema es que vuelves a definir localmente la variable b_password dentro del if() y else y se pierde al salir de su ámbito (busca "ámbito de variables" para más datos).

Quita el boolean de delante de la asignación en ambos casos, así usas la variable que declaraste global.

Por cierto, podrías hacer perfectamente

b_password = t_esp_ready == tx_password;

Saludos

PD: por favor fíjate en las Normas la forma correcta de adjuntar el código y edita tu post para que quede correctamente.

Moderador:
Te dejé un privado con instrucciones para que edites tu post.
Además debes detenerte siempre que llegas a un foro y observar donde se deben postear las preguntas.