My final project will integrate a MTK3339 GPS Module and to get prototyping quickly I connected a breakout board containing the chip to the Fabduino M1 that I made last week.
The chip communicates via 9600 baud serial and outputs latitude, longitude, altitude, time, date, speed and (true) heading. The GPS module has a built in logging functionality called LOCUS that has enough on-board storage to record 16 hours of position and elevation information (a point every 15 seconds). For high-resolution applications the GPS chip can output up to 10 updates per second.
I wrote up a quick program that would start logging position data on the GPS, and then wirelessly transmits an update of the available information to the other board with the OLED screen every 2 seconds.
I happened to be driving to Canada to visit my family this week, and so I stuck my GPS receiver on the dashboard and headed off. Along the way we could turn on the OLED screen and get an update of where we were and how fast we were going
Speed is output in knots, which is fun!
You can see the GPS track that was recorded from Boston to just before the border of Maine. An unknown fault caused the logging to stop after about 6.5 hours, well before the internal memory was full, even though the unit was still showing a fix. This will require further investigation, but is likely a quick voltage drop or something that caused the GPS module to reset. On a reset it does not persist the instruction to log.
I've since updated the software to poll the status of the logging, and to re-enable it if it has been disabled (or is no longer enabled) for some reason.
When you zoom in on the track the resoultion is very good. Here you can see where we got of the highway to get some gas and food.
KML file of trip home
GPS Pole Arduino File
Screen Pole Arduino File
I refactored the code to check every 5 minutes to see if the module was still logging, and if not to restart the logging. This resulted in a successful log of my two day return drive to Boston, including a stop in the White Mountains for a little climbing.
Refactored GPS Pole Arduino File