LwGPS is a lightweight, platform independent, all-constellation GNSS NMEA parser library for embedded systems.
- Written in C (C11), compatible with
stdint.hdata types - Platform independent, easy to use
- Built-in support for all-constellation GNSS statements
GPGGA,G*GGAorGNGGA: GNSS fix dataGPGSA,G*GSAorGNGSA: Active satellites and dilution of precisionGPGSV,G*GSVorGNGSV: List of satellites in view zoneGPRMC,G*RMCorGNRMC: Recommended minimum specific GNSS/Transit data
- Optional support for
PUBX(uBlox proprietary) statements, includingPUBX_TIME - Optional detailed per-satellite info (elevation, azimuth, SNR) for
GSVstatement - Optional NMEA checksum validation
- Distance and bearing calculation between two coordi 6823 nates
- Speed conversion helper between many units: metric, imperial and pace
- Optional per-statement processing callback
- C++ wrapper class available
- Optional
floatordoublefloating point units - Low-level layer is separated from application layer, thus allowing you to add custom communication with GPS device
- Works with operating systems
- Works with different communication interfaces
- Can be used as an ESP-IDF component
- User friendly MIT license
Fresh contributions are always welcome. Simple instructions to proceed:
- Fork Github repository
- Follow C style & coding rules and use
clang-formatto format the code - Create a pull request to
developbranch with new features or bug fixes
Alternatively you may:
- Report a bug
- Ask for a feature request
To build the code and run basic tests on your host::
cd examples
make test