u-blox GNSS, GPS receiver library minimalistic light weight for low power tracking application.
- Use Stream class to work with both Harware and Software serial
- Implement better debug handler
- Update Keywords
- Implement serial timeout
- Add AssistNow AID support
When first powered the GNSS module automatically starts sending NMEA messages over the iterface, so the basic setup would be:
- Disable NMEA and enable UBX protocol;
- Especify the Power Save Mode;
- Save configuration, otherwise it will reset to default configuration after waking up;
- 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.
- 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 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.
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.
Github Shields and Badges created with Shields.io
u-blox official mBed library