is there a way to use your code with adafruit gps?
Yes, NeoGPS supports all GPS devices that output the standard set of NMEA sentences, like RMC and GGA. Many people have used NeoGPS with the Adafruit GPS devices. It will not void your warranty. If you are using the logging functions:
There is one peciliarity of that shield: it has an SD card reader and a MTK3329 GPS device, and there are actually two ways to log information with that shield:1)
Parse GPS information with a library (Adafruit_GPS or NeoGPS) and write whatever you want to the SD card, using an Arduino library for the SD card. To retrive the logged data, just remove the SD card an open the SD file in your computer.*
The Adafruit example just writes the raw NMEA data to the SD card. There are many NMEA utilities for using the raw data.*
The NeoGPS example
will write parsed
values (e.g., lat/lon) in a CSV file format, not the raw NMEA characters. You can configure NeoGPS to enable or disable the GPS fields you want, and you can modify the sketch to change the format of the file. It is easy to import a CSV file into a spreadsheet, and there are many utilities that take CSV files of "Geo" information.2)
Send a command to the MTK3329 GPS device that enables its internal non-volatile memory. Adafruit does not recommend this technique, as there is limited space, a different sketch is required to retrieve the information from the GPS device (not the SD card), and you do not have any control over the format of the saved information. A NeoGPS sketch could start and stop the logging function, but you would still have to use a different sketch to retrieve the information from the GPS device.
Adafruit recommends the first approach, as do I. I also recommend saving parsed data, not raw. The log file will be 5 to 10 times smaller. I don't know your application, but this could affect battery life or system responsiveness.If you are not using the logging functions
, I would not suggest using the Adafruit library: it does not validate the checksum on GPS data. When combined with a software serial connection, it could produce invalid locations.