All Projects → SlashDevin → Neogps

SlashDevin / Neogps

Licence: gpl-3.0
NMEA and ublox GPS parser for Arduino, configurable to use as few as 10 bytes of RAM

Projects that are alternatives of or similar to Neogps

Esp32 Paxcounter
Wifi & BLE driven passenger flow metering with cheap ESP32 boards
Stars: ✭ 844 (+66.47%)
Mutual labels:  arduino, gps
Opentracker
OpenTracker - open source GPS/GLONASS hardware
Stars: ✭ 129 (-74.56%)
Mutual labels:  arduino, gps
Micronmea
A compact Arduino library to parse NMEA sentences.
Stars: ✭ 66 (-86.98%)
Mutual labels:  arduino, gps
Skylift
Wi-Fi Geolocation Spoofing with the ESP8266
Stars: ✭ 223 (-56.02%)
Mutual labels:  arduino, gps
Lora Serialization
LoraWAN serialization/deserialization library for The Things Network
Stars: ✭ 120 (-76.33%)
Mutual labels:  arduino, gps
Sim7000 Lte Shield
LTE CAT-M/NB-IoT Arduino-compatible shield with GNSS and temperature sensor. Library supports SIMCom 2G/3G/4G LTE/CAT-M/NB-IoT
Stars: ✭ 340 (-32.94%)
Mutual labels:  arduino, gps
Onebutton
An Arduino library for using a single button for multiple purpose input.
Stars: ✭ 418 (-17.55%)
Mutual labels:  arduino
Traccar Client Android
Traccar Client for Android
Stars: ✭ 464 (-8.48%)
Mutual labels:  gps
Mightycore
Arduino hardware package for ATmega1284, ATmega644, ATmega324, ATmega324PB, ATmega164, ATmega32, ATmega16 and ATmega8535
Stars: ✭ 413 (-18.54%)
Mutual labels:  arduino
Gpxsee
GPS log file viewer and analyzer with support for GPX, TCX, KML, FIT, IGC, NMEA, SLF, SML, LOC, GPI, GeoJSON and OziExplorer files.
Stars: ✭ 406 (-19.92%)
Mutual labels:  gps
Esp Mqtt Json Digital Leds
(OBSOLETE) ESP8266 MQTT JSON Digital LEDs for Home Assistant
Stars: ✭ 503 (-0.79%)
Mutual labels:  arduino
Watchy
Watchy - An Open Source E-Ink Smartwatch
Stars: ✭ 469 (-7.5%)
Mutual labels:  arduino
Exifr
EXIF Reader
Stars: ✭ 450 (-11.24%)
Mutual labels:  gps
Gnss Ins Sim
Open-source GNSS + inertial navigation, sensor fusion simulator. Motion trajectory generator, sensor models, and navigation
Stars: ✭ 422 (-16.77%)
Mutual labels:  gps
Traccar Web
Traccar GPS Tracking System
Stars: ✭ 465 (-8.28%)
Mutual labels:  gps
Arduino Builder
A command line tool for compiling Arduino sketches
Stars: ✭ 417 (-17.75%)
Mutual labels:  arduino
Platformio Atom Ide
PlatformIO IDE for Atom: The next generation integrated development environment for IoT
Stars: ✭ 475 (-6.31%)
Mutual labels:  arduino
Rx5808 Pro Diversity
DIY project to create your own 5.8ghz FPV diversity basestation - based off the rx5808 receiver module. Project includes basic Arduino Nano implementation to advanced custom PCB board and introduction to digital switches 4066 chip.
Stars: ✭ 412 (-18.74%)
Mutual labels:  arduino
Uspeech
Speech recognition toolkit for the arduino
Stars: ✭ 448 (-11.64%)
Mutual labels:  arduino
Sensors Software
sourcecode for reading sensor data
Stars: ✭ 469 (-7.5%)
Mutual labels:  arduino

NeoGPS

This fully-configurable Arduino library uses minimal RAM, PROGMEM and CPU time, requiring as few as 10 bytes of RAM, 866 bytes of PROGMEM, and less than 1mS of CPU time per sentence.

It supports the following protocols and messages:

NMEA 0183

  • GPGGA - System fix data
  • GPGLL - Geographic Latitude and Longitude
  • GPGSA - DOP and active satellites
  • GPGST - Pseudo Range Error Statistics
  • GPGSV - Satellites in View
  • GPRMC - Recommended Minimum specific GPS/Transit data
  • GPVTG - Course over ground and Ground speed
  • GPZDA - UTC Time and Date

The "GP" prefix usually indicates an original GPS source. NeoGPS parses all Talker IDs, including

This means that GLRMC, GBRMC or BDRMC, GARMC and GNRMC from the latest GPS devices (e.g., ublox M8N) will also be correctly parsed. See discussion of Talker IDs in Configurations.

Most applications can be fully implemented with the standard NMEA messages above. They are supported by almost all GPS manufacturers. Additional messages can be added through derived classes (see ublox and Garmin sections below).

Most applications will use this simple, familiar loop structure:

NMEAGPS gps;
gps_fix fix;

void loop()
{
  while (gps.available( gps_port )) {
    fix = gps.read();
    doSomeWork( fix );
  }
}

For more information on this loop, see the Usage section on the Data Model page.

(This is the plain Arduino version of the CosaGPS library for Cosa.)

Goals

In an attempt to be reusable in a variety of different programming styles, this library supports:

  • resource-constrained environments (e.g., ATTINY targets)
  • sync or async operation (reading in loop() vs interrupt processing)
  • event or polling (deferred handling vs. continuous calls in loop())
  • coherent fixes (merged from multiple sentences) vs. individual sentences
  • optional buffering of fixes
  • optional floating point
  • configurable message sets, including hooks for implementing proprietary NMEA messages
  • configurable message fields
  • multiple protocols from same device
  • any kind of input stream (Serial, NeoSWSerial, I2C, PROGMEM arrays, etc.)

Inconceivable!

Don't believe it? Check out these detailed sections:

Section Description
License The Fine Print
Installing Copying files
Data Model How to parse and use GPS data
Configurations Tailoring NeoGPS to your needs
Performance 37% to 72% faster! Really!
RAM requirements Doing it without buffers!
Program Space requirements Making it fit
Examples Programming styles
Troubleshooting Troubleshooting
Extending NeoGPS Using specific devices
ublox ublox-specific code
Garmin Garmin-specific code
Tradeoffs Comparing to other libraries
Acknowledgements Thanks!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].