Speedometer using UNO and GPS

First can we just get the GPS module talking? For that you do not need any library except SoftwareSerial. The following sketch works with my Neo6M. Connect Vcc to 5V, gnd to gnd and GPS TX to Uno soft serial RX (pin 4 in the sketch). No need for GPS RX to be connected. Note baud rate for soft serial is 9600, the default for Neo6M. The baud rate for serial monitor to 115200. Load and run the code.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 7); // RX, TX
// do not connect GPS RX to Uno TX, there is no need yet, if ever.

void setup()
{
   Serial.begin(115200);
   Serial.println("GPS basic input test");
   
   mySerial.begin(9600);
}

void loop()   // run over and over
{
   if (mySerial.available())
   {
      Serial.write(mySerial.read());
   }
}

The GPS spits out a series of sentences every second. You should see in the serial monitor something very like the following:

GPS basic input test
$GPRMC,175020.00,V,,,,,,,230618,,,N72
$GPVTG,,,,,,,,,N
30
$GPGGA,175020.00,,,,,0,00,99.99,,,,,,67
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,03,17,,,32,19,,,30,28,,,2779
$GPGLL,,,,,175020.00,V,N
4B
$GPRMC,175021.00,V,,,,,,,230618,,,N73
$GPVTG,,,,,,,,,N
30
$GPGGA,175021.00,,,,,0,00,99.99,,,,,,66
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99
30
$GPGSV,1,1,03,17,,,32,19,,,30,28,,,2678
$GPGLL,,,,,175021.00,V,N
4A
$GPRMC,175022.00,V,,,,,,,230618,,,N70
$GPVTG,,,,,,,,,N
30

This is the GPS output without any satellite lock.

Is this what you see?