u-blox GPS receivers use a UBX binary protocol to transmit GPS data to a host computer using asynchronous serial ports. This project provides a headers only, platform independent, and bare-metal friendly library implemented in C++(11), which implements all the messages as well as wrapping transport protocol supported by u-blox 4/5/6/7/8 devices.
The library uses COMMS library from comms_champion project to specify all of the existing messages resulting in clear, concise, and very efficient code.
The ublox binary protocol is HUGE and it is unlikely that any product will require support for all the messages the protocol defines. This library allows cherry-picking limited number of the selected messages the product requires, which provides a great flexibility in terms of the final code size.
Full doxygen generated documentation with the full tutorial inside can be downloaded as doc_ublox zip archive from release artefacts.
The "example" folder contains simple example application showing how to use the UBLOX Library. It is implemented using QT5 framework to drive the discovery and handling of asynchronous events. It configures the USB interface to be used for UBX communication using CFG-PRT message and polls for NAV-POSSLLH message every second.
In addition to the library described above, this project provides a protocol plugin for the CommsChampion Tools from the same comms_champion project, which will allow visual analysis of the u-blox binary protocol traffic.
Please refer to How to Use CommsChampion with UBLOX Protocol wiki page for instructions on how to analyse the UBX binary protocol using the CommsChampion Tools.
The UBLOX Library as well as CommsChampion Plugin from this repository are licensed under the classic GPLv3 / Commercial dual licensing scheme. The source code is available for anyone to use as long as the derivative work remains open source with compatible licence. Download and try it! If it works as expected and commercial closed source licence is required for the final product, it can be purchased on binpress. If the offered licences do not satisfy your needs and special conditions need to be included please send me an e-mail (see Contact Information below).
Detailed instructions on how to build and install all the components can be found in BUILD.md file.
This repository will follow the Successful Git Branching Model.
The master branch will always point to the latest release, the development is performed on develop branch. As the result it is safe to just clone the sources of this repository and use it without any extra manipulations of looking for the latest stable version among the tags and checking it out.
For bug reports, feature requests, or any other question you may open an issue here in github or e-mail me directly to: [email protected]