Our alpha ArduPilot code has an okay GPS parser, but like all of them based on ASCII NMEA sentences, it's slow and doesn't handle errors (corrupted data) very well. We've now done a lot better. Here's Jordi's new Arduino GPS parser, which will be in the next version of the ArduPilot code and has the following features:
--Reads the data in Sirf 3 binary mode, not ASCII NMEA sentences.
--Autoconfigures your GPS module to go into binary mode.
--Parses the GPS data and stores it in variables, including conversion to decimal degrees for gps data, and other stuff such as GPS status, lat, lon, MSL altitude, heading, speed over ground, and climb rate...
--Super fast decoding and transmission at 57600 bps...
--100% Checksum verification..
--Status LED, connected directly to the GPS fix status..
--More or less commented ;-)
You can download the code and run and test it now, or integrate it into your own projects.
Lots more cool improvements coming to the ArduPilot code, including better navigation routines and interrupt-driven RC channel reading. We've still got some work to do on the boards (the current one has got a problem with noise and current fluctuations when we're moving the servos, so we've got to add some diodes and capacitors), but we're getting there. Still on track for a September release, one way or another.