@KenH --> As long as the output is in this format I believe it will work fine. Also all i did was download the String library from the Arduino site and unzip it into the libraries folder: String() - Arduino Reference
$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,000018
$GPGSA,A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.533
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10
This is a simple program i wrote in the infancy of my GPS to see what the output data looks like. Now keep in mind that the TX pin of the GPS module goes to the RX pin of the arduino. This means you will have to leave the GPS TX pin disconnected while you upload the program or else both the data coming from the GPS and the data being sent by your computer will confuse the microcontroller when it uploads. If you accidentally leave it connected just remove the usb from the arduino, then disconnect the GPS TX pin and restart the upload. This also goes for the full blown GPS program.
void setup(){
Serial.begin(4800);
}
void loop(){
if (Serial.available() > 0){
Serial.write(Serial.read());
}
}
This will send the data coming directly from the GPS module right to the serial monitor in its raw format.
Another note: When you are not moving the speed and heading readings will be misleading. Due to the slight inaccuracies, especially indoors, the speed and heading is calculated by the satellite and is drawn from your change in lat and long. Therefore any changes in those result in a speed and heading.
...Also, the LCD does displays a degree sign, °, as a dash, -, therefore I don't include it.


