Velocità TinyGPS

Ho visto dal sorgente che la funzione dovrebbe restituire la costante GPS_INVALID_F_SPEED nel caso di dati errati.

float TinyGPS::f_speed_kmph()  
{ 
  float sk = f_speed_knots();
  return sk == GPS_INVALID_F_SPEED ? GPS_INVALID_F_SPEED : _GPS_KMPH_PER_KNOT * f_speed_knots(); 
}

E guarda caso tale costante vale proprio -1.0:

const float TinyGPS::GPS_INVALID_F_SPEED = -1.0;

Se ricevi questo valore può darsi che ci sia qualche problema, altrimenti forse è il GPS che non funziona o che non è compatibile?
Hai provato anche a stampare sulla seriale il dato grezzo che ricevi