Skip to content

u-blox GNSS receiver library light weight for low power tracking application

License

Notifications You must be signed in to change notification settings

ldab/u-blox_GNSS

Repository files navigation

u-blox_GNSS

u-blox GNSS, GPS receiver library minimalistic light weight for low power tracking application.

GitHub version Build Status License: MIT

GitHub last commit

SAM-M8Q GNSS Antenna Module

TODO

  • Use Stream class to work with both Harware and Software serial
  • Implement better debug handler
  • Update Keywords
  • Implement serial timeout
  • Add AssistNow AID support

How does it work?

When first powered the GNSS module automatically starts sending NMEA messages over the iterface, so the basic setup would be:

  1. Disable NMEA and enable UBX protocol;
  2. Especify the Power Save Mode;
  3. Save configuration, otherwise it will reset to default configuration after waking up;
  4. Poll messages anytime you want;

You can also turn the GNSS module OFF by GNSS::off() function, and empty command will sleep forever until any activity on the UART interface.

When the GNSS::getCoodinates is called, it try to wake the module and retrive Navigation information, the default timeout is 60 sec and the accuracy can be set as the last parameter of the function.

Power Save Modes

  • Continuous (default) mode for best GNSS performance vs. power consumption;
  • 1, 2 or 4Hz cyclic tracking mode for aggressive power reduction*;
  • ON/OFF interval mode;

We will use UBX-CFG-PMS (only supported in protocol versions 18+).

*Only 1Hz is enabled in this library.

Current consumption of operating modes

Current comsumption is hard to estimate as it would vary significantly based on signal conditions as well as navigation rate but some indicative data is available as follows:

Mode TYP mA
Max 67
Acquisition* 25
Continous 23
PSM 1Hz 9.5

*Current from start-up until the first fix.

Troubleshooting

If you get in trouble or want to try different configurations you can use the serial_bridge.ino example and control the module using u-blox u-center. This example simply bridge the serial USB over the UART connected to the u-blox module defined on the #define interfaces.

Credits

Github Shields and Badges created with Shields.io

u-blox official mBed library