Problemas de GPS

Me he bajado unas librerías que están subida en un tutorial de squidbee en la web de libelium, que creo que está generado por un compañero vuestro David Cuartielles, lo que sucede es que da igual que código coloque este o el que está en ejemplos no me da una señal válida :S siempre me da el FIX = 0 que es no válido... Puede ser por el código??? Ya es que me hace dudar ya que incluso me he subido a mi azotea y no encuentro señal :S

#include "LB_GPS.h"


void setup(){
  //setup for Serial port
  Serial.begin(9600);

  // print some info and ego boost
  Serial.println(GPS.getLibVersion());
 
  Serial.print("Setting up GPS...");
  
  // GPS warm-up time
  
  
  // command initializing the GPS, by default it is preconfigured to be the 
  // weather station at central Malmo, Sweden, April 8th, 2009, 6:56AM
  // also it reads only GPGGA sentences if no other configurations are set
  GPS.init();    

  // done!
  Serial.println(" done!");
  delay(1000);
}

void loop(){
  // print the raw data string arriving from the GPS 
  GPS.getRaw(100);
  // now the data is stored in the GPS.inBuffer string
  // and we can just dump it to the serial port
char sz[2048];
sprintf(sz, "%s", GPS.inBuffer);
char latitud[128];
char longitud[128];
char coordenadasbuenas[128];
char numerosatelites[128];
char cadenafinal[1024];
int n = 0;
 char *p = sz;
 char *str;
 while ((str = strtok_r(p, ",", &p)) != NULL){
  if(n==2){
    sprintf(latitud, "%s", str);
  }
  if(n==3){
    sprintf(latitud, "%s;%s", latitud, str); 
  }
  if(n==4){
    sprintf(longitud, "%s", str);
  }if(n==5){
   sprintf(longitud, "%s;%s", longitud, str); 
  }
  if(n==6){
   sprintf(coordenadasbuenas, "%s", str); 
  }
  if(n==7){
   sprintf(numerosatelites, "%s", str); 
  }
  n++;
}
 if (strcmp(coordenadasbuenas, "1")==0){
  sprintf(cadenafinal, "Las coordenadas son validas, satelites: %s, latitud: %s, longitud: %s", numerosatelites, latitud, longitud);
}else{
  sprintf(cadenafinal, "Las coordenadas son invalidas"); 
}
Serial.println(cadenafinal);
delay(1000);
}

También os adjunto el otro código para que veáis la configuración que doy desde sevilla. A parte la configuración del tiempo no me aparece me sigue dando la hora de no se donde ya que me dicen que son las 12 de la mañana :S

/*******************************************
* Program for reading possition from GPS
* module via the softwareSerial
*
* M. Yarza
* Oct 2.007 Zaragoza
*******************************************/

// include the SoftwareSerial library
#include <SoftwareSerial.h>

// Constants
#define rxPin 9
#define txPin 8

// set up the serial port

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

// variables
byte byteGPS = 0;
int i = 0;
int indices[13];
int cont = 0;
int conta = 0;

char inBuffer[300] = "";

int k = 0;

void setup(){

  //setup for mySerial port
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  mySerial.begin(4800);

  //setup for Serial port
  Serial.begin(9600);

  // setup the GPS module en SEVILLA
  Serial.println("Configurando GPS...");
  delay(1000);
  mySerial.println("$PSTMNMEACONFIG,0,4800,1,1");        // configure NMEA sentences to show only GGA sentence
  delay(100);

  // command for setting time and position
  mySerial.println("$PSTMINITGPS,37.380,N,5.990,W,0016.0,24,04,2010,20,54,00");

  // "4140.000,N" means: Latitude 41º40'00.0" North
  // "00053.000,W" means: Longitude 0º53'00.0" West
  // "0197" means 197 m elevation
  // "22,10,2007,11,40,00" means date and time (October 22, 2.007 - 11h 40min 00sec UTC time)
}

void loop(){

  byteGPS = 0;
  i = 0;
  while(byteGPS != 42){                   // read the GGA sentence
    byteGPS = mySerial.read();
    inBuffer[i]=byteGPS;
    i++;
  }

  k = 0;
  while(inBuffer[k] != 42){
    Serial.print(inBuffer[k]);            // write the GGA sentence
     k++;
  }
  Serial.println();
  delay(3000);
}