Actually, there is not much info out there that is easy to find. Most of the info that I used when getting to know my GPS was found here:
http://www.multiwii.com/
with the most useful info found at the forum there. This wiki page helped some too from what I remember:
http://www.multiwii.com/wiki/index.php?title=Main_Page
Other sources used in getting a successful GPS way-point mission were from equipment manuals and other printed sources I found by searching online. I actually chose to go with Multiwii as my FC because it had way-point capabilities better than most even more expensive FCs have. If you want to do really extensive way-point CHEAP, I think a Multiwii Mega board is the way to go. Mega Pro 2 or Pro 3 are both great GPS boards. Pair it with a Leah6H Ublox GPS unit and use your arduino setup programming (not hard to do) to set up your port speed at 115200, GPS baud at 57600, enable serial port 2 for use, enable the Ublox, enable the way-point statement, and set your magnetic declination.
Here is a snippet of the Arduino Multiwii config.h sketch from the GPS section showing some of the code:
/* ENable this for using GPS simulator (NMEA only)*/
//#define GPS_SIMULATOR
/* GPS using a SERIAL port
if enabled, define here the Arduino Serial port number and the UART speed
note: only the RX PIN is used in case of NMEA mode, the GPS is not configured by multiwii
in NMEA mode the GPS must be configured to output GGA and RMC NMEA sentences (which is generally the default conf for most GPS devices)
at least 5Hz update rate. uncomment the first line to select the GPS serial port of the arduino */
#define GPS_SERIAL 2 // should be 2 for flyduino v2. It's the serial port number on arduino MEGA
// must be 0 for PRO_MINI (ex GPS_PRO_MINI)
// note: Now a GPS can share MSP on the same port. The only constrain is to not use it simultaneously, and use the same port speed.
// avoid using 115200 baud because with 16MHz arduino the 115200 baudrate have more than 2% speed error (57600 have 0.8% error)
#define GPS_BAUD 57600 // GPS_BAUD will override SERIALx_COM_SPEED for the selected port
/* GPS protocol
NMEA - Standard NMEA protocol GGA, GSA and RMC sentences are needed
UBLOX - U-Blox binary protocol, use the ublox config file (u-blox-config.ublox.txt) from the source tree
MTK_BINARY16 and MTK_BINARY19 - MTK3329 chipset based GPS with DIYDrones binary firmware (v1.6 or v1.9)
With UBLOX and MTK_BINARY you don't have to use GPS_FILTERING in multiwii code !!! */
//#define NMEA
#define UBLOX
//#define MTK_BINARY16
//#define MTK_BINARY19
//#define INIT_MTK_GPS // initialize MTK GPS for using selected speed, 5Hz update rate and GGA & RMC sentence or binary settings
/* I2C GPS device made with an independant arduino + GPS device
including some navigation functions
contribution from EOSBandi
http://code.google.com/p/i2c-gps-nav/
You have to use at least I2CGpsNav code r33 */
/* all functionnalities allowed by SERIAL_GPS are now available for I2C_GPS: all relevant navigation computations are gathered in the main FC */
//#define I2C_GPS
// If your I2C GPS board has Sonar support enabled
//#define I2C_GPS_SONAR
/* indicate a valid GPS fix with at least 5 satellites by flashing the LED - Modified by MIS - Using stable LED (YELLOW on CRIUS AIO) led work as sat number indicator
- No GPS FIX -> LED blink at speed of incoming GPS frames
- Fix and sat no. bellow 5 -> LED off
- Fix and sat no. >= 5 -> LED blinks, one blink for 5 sat, two blinks for 6 sat, three for 7 ... */
#define GPS_LED_INDICATOR
//Enables the MSP_WP command set , which is used by WinGUI for displaying an setting up navigation
#define USE_MSP_WP
Notice that some of the //#define STATEMENT's have their // missing? That is how you enable something. Easy! The code I included is a small portion of the setup file called config.h which is the only file that you actually need to make any changes in to get things working (unless you are a developer/programmer writing a new function or fixing something to make it more streamlined. Then you can go and modify other files to your needs as well.)
Then after you get things set up correctly you upload the sketch, re-calibrate the ACC and mag and you are off to fly a mission. I do that by entering the desired way-points in my EZ GUI Android Multiwii configurator phone app and sending the mission to the FC.