Problemas usando GPS NEO 6M + SIM800L+ ARDUINO MEGA

Buenas,
Estoy haciendo un rastreador, el objetivo es que le mande un mensaje con la palabra “UBICACION” y me mande la longitud y latitud de vuelta.
El problema es que no lee el gps me envía long,lat: 000,000 o 1000,1000, siendo que antes me daba las coordenadas, pero no me tomaba el gsm. Será problema de memoria?

#include <TinyGPS.h>
//long   lat,lon; // create variable for latitude and longitude object
float lat,lon;
TinyGPS gps; // create gps object
  String valor; 

void setup(){
Serial.begin(9600); // connect serial
Serial.println("The GPS Received Signal:");
Serial1.begin(9600); // connect gps sensor  pines 18 y 19
Serial2.begin(9600); // gsm pines 16 y 17
  Serial.println("Initializing...");
  delay(1000);
Serial2.println("AT"); //Once the handshake test is successful, it will back to OK

Serial2.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best

Serial2.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged

Serial2.println("AT+CREG?"); //Check whether it has registered in the network

}
 
void loop(){
 
    while(Serial1.available()){ // check for gps data
    if(gps.encode(Serial1.read()))// encode gps data
    { 
    gps.f_get_position(&lat,&lon); // get latitude and longitude

    Serial.print("Position: ");
    
    //Latitude
    Serial.print("Latitude: ");
    Serial.print(lat,6);
    
    Serial.print(",");
    
    //Longitude
    Serial.print("Longitude: ");
    Serial.println(lon,6); 
    
   }
  
    Serial2.println("AT+CMGF=1"); //Vamos utilizar los SMS.
    delay(100); //Delay de 0.1 sec
    Serial2.println("AT+CNMI=1,2,0,0,0"); //Configurar el SIM800L p/ que muestre msm por com. serie.
      
    valor = Serial2.readString(); //Guardar en la var valor el sms que recibe el Arduino
    //Serial.println("Nuevo SMS requiriendo long/lat: "+ valor); //Imprime ese SMS en el monitor Serial
    //Serial.println(valor);
  
 if(valor.indexOf("UBICACION")>=0){  
    
    Serial.println("Se requiere ubicacion");  //Immprime el mensaje
    valor="";
            //SE ENVIA MENSAJE DE VUELTA
           Serial2.write("AT+CMGF=1\r\n");
            delay(100);
            //Enviar comando para un nuevos SMS al numero establecido
            Serial2.write("AT+CMGS=\"+569657231XX\"\r\n");
            delay(100);
            //Enviar contenido del SMS
            Serial2.println("Hola de vuelta,aqui va la ubicacion");
            Serial2.print(lat,5);
            Serial2.print(" ");
            Serial2.print(lon,5);
            delay(1000);
            //Enviar Ctrl+Z 
            Serial2.write((char)26);
            Serial.println("Mensaje enviado!");
            Serial.print("Latitud/Longitud: "); 
            Serial.print(lat,5); 
            Serial.print(", "); 
            Serial.println(lon,5);
           delay(1500);
 }
   

    }
}

Probaste todo por separado, SMS y GPS?