Tinygps won't give speed

The tinygps keeps giving -1.00 on speed, and never changes from that. we are using a copernicus II module, and of course as I mentioned the Tinygps library.

please help if you’ve got anything, here’s the code.

#include <SoftwareSerial.h>
#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
It requires the use of SoftwareSerial, and assumes that you have a
4800-baud serial GPS device hooked up onpins 4(rx) and 3(tx).
*/

TinyGPS gps;
SoftwareSerial ss(4, 3);

void setup()
{
Serial.begin(115200);
ss.begin(4800);

Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println(“by Mikal Hart”);
Serial.println();
long maxSpeed = 0;
}

void loop()
{

bool newData = false;
unsigned long chars;
unsigned short sentences, failed;

// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (ss.available()> 1)
// gps.encode(ss.read());
{
char c = ss.read();
// Serial.write(c); // uncomment this line if you want to see the GPS data flowing
if (gps.encode(c)) // Did a new valid sentence come in?
newData = true;
}
}

if (newData)
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
// gps.f_speed_knots (&flat , &flon, &age);
Serial.print(“LAT=”);
Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 33.030236 : flat, 6);
Serial.print(" LON=");
Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? -97.319469 : flon, 6);
Serial.print(" SAT=");
Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
Serial.print(" PREC=");
Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
// Serial.print("Course (degrees): “);
Serial.print(” SPEED(mph): “);
// Serial.print(” CurSpd: ");
Serial.print(gps.f_speed_mph());

Serial.print(“ALTITUDE=”);
Serial.print(“Position”);
Serial.print(gps.f_altitude());

}

gps.stats(&chars, &sentences, &failed);
Serial.print(" CHARS=");
Serial.print(chars);
Serial.print(" SENTENCES=");
Serial.print(sentences);
Serial.print(" CSUM ERR=");
Serial.println(failed);
if (chars == 0)
Serial.println("** No characters received from GPS: check wiring **");

}

// For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (ss.available()> 1)
//    gps.encode(ss.read());
    {

Absolute crap. Get rid of the stupid for loop. Read the serial data whenever it becomes available.

It is stupid to comment out the code that reads data from the GPS and still expect to get good data. I don’t suppose you’ll even read this reply, so I’ll stop typing.