In order to learn how to create a lightweight interface with GPS devices I wrote a library to work with my NEO-6M GPS module.
With this library you can set the baud, sample rate, turn on/off individual NMEA sentences, and parse NMEA data. The source code is hosted on GitHub
here.
Please take a look, critique it (I can use the constructive criticism

), and use it for your own projects if you want to.
Here is an example sketch that shows how to use the library:
#include "neo6mGPS.h"
neo6mGPS myGPS;
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
Serial.begin(115200);
while(!Serial);
myGPS.begin(Serial1);
}
void loop()
{
if(myGPS.available())
{
Serial.print(myGPS.utc); Serial.print(" | ");
Serial.print(myGPS.navStatus); Serial.print(" | ");
Serial.print(myGPS.lat); Serial.print(" | ");
Serial.print(myGPS.latDir); Serial.print(" | ");
Serial.print(myGPS.lon); Serial.print(" | ");
Serial.print(myGPS.lonDir); Serial.print(" | ");
Serial.print(myGPS.sog_knots); Serial.print(" | ");
Serial.print(myGPS.cog_true); Serial.print(" | ");
Serial.println();
}
}