Particle / Adafruit Ultimate GPS Unit Logger
I started writing this in an effort to learn more about precision GPS tracking and have been tweaking and adding features as new use cases have come up. I have a couple of major changes coming up so I decided to track my progress in git to keep motivated and make it available in the spirit of sharing.
I've attempted to over-document things for personal reference, so hopefully it might save someone some research later.
Current Features:
- Module is configurable through the Particle Cloud
- Enable / Disable / Clear module flash logging
- Enable / Disable / Change Interval of reporting to the Particle Cloud
- Location and Informational messages are split out, and either/or can be enabled
- Raw NMEA sentences can be sent via Particle Function for maximum flexibility
- DGPS settings are enabled by default (SBAS/WAAS). For some reason they didn't mention this in the Adafruit guide when it can make a pretty big difference.
- The reported variables are the ones I found to be actually accurate and significant. If I didn't report something that looks like it should be: a) There are some features listed in the datasheet (and even a few in their tutorial) that are not available, as Adafruit had to choose between certain features from the factory. I spent alot of time finding out the hard way. E.g. The Flash logger has a number of configurable options, but these are hardcoded at the factory.
Planned Enhancements:
- Move from interrupt based handling of processing NMEA messages to allow for higher than 9600 baud communication with the GPS module.
- At 9600, you are basically limited to 1HZ updates with RMC and GGA sentences. Fine for almost any practical application, but I've never been very practical.
- Dumping the flash log at 9600 baud is PAINFULLY slow/buggy/inconsistent if you've logged more than an hour or two.
- Setup Power Management/Sleep Modes of operation for when out of wifi access, battery conservation or periodic check-in
- Implement TCP server streaming/batch sending of NMEA messages to allow GPSD clients to piggyback or for offline analysis of all collected data