Example3: Get latitude, longitude, altitude, and satellites in view (SIV). This example also demonstrates
how to turn off NMEA messages being sent out of the I C port. You'll still see NMEA on UART1 and USB,
2
but not on I C. Using only UBX binary messages helps reduce I C traffic and is a much lighter weight
protocol.
Example4: Displays what type of a fix you have the two most common being none and a full 3D fix. This
sketch also shows how to find out if you have an RTK fix and what type (floating vs. fixed).
Example5: Shows how to get the current speed, heading, and dilution of precision.
Example6: Demonstrates how to increase the output rate from the default 1 per second to many per
second; up to 30Hz on some modules!
Example7: Older modules like the SAM-M8Q utilize an older protocol (version 18) whereas the newer
modules like the ZED-F9P depricate some commands using the latest protocol (version 27). This sketch
shows how to query the module to get the protocol version.
Example8: u-blox modules use I C address 0x42 but this is configurable via software. This sketch will allow
you to change the module's I C address.
Example9: Altitude is not a simple measurement. This sketch shows how to get both the ellipsoid based
altitude and the MSL (mean sea level) based altitude readings.
Example10: Sometimes you just need to do a hard reset of the hardware. This sketch shows how to set
your u-blox module back to factory default settings.
NEO-M8P
NEO-M8P Example1: Send UBX binary commands to enable RTCM sentences on u-blox NEO-M8P-
2 module. This example is one of the steps required to setup the NEO-M8P as a base station. For
more information have a look at the u-blox manual for setting up an RTK link.
NEO-M8P Example2: This example extends the previous example sending all the commands to the
NEO-M8P-2 to have it operate as a base. Additionally the
allows the user to overwrite the function to direct the RTCM bytes to whatever connection the user
would like (radio, serial, etc).
NEO-M8P Example3: This is the same example as NEO-M8P's Example2. However, the data is sent
to a serial LCD via I C.
ZED-F9P
ZED-F9P Example1: This module is capable of high precision solutions. This sketch shows how to
inspect the accuracy of the solution. It's fun to watch our location accuracy drop into the millimeter
scale.
ZED-F9P Example2: The ZED-F9P uses a new u-blox configuration system of
VALGET/VALSET/VALDEL. This sketch demonstrates the basics of these methods.
ZED-F9P Example3: Setting up the ZED-F9P as a base station and outputting RTCM data.
ZED-F9P Example4: This is the same example as ZED-F9P's Example3. However, the data is sent
to a serial LCD via I C.
This SparkFun u-blox library really focuses on I C because it's faster than serial and supports daisy-chaining. The
library also uses the UBX protocol because it requires far less overhead than NMEA parsing and does not have
the precision limitations that NMEA has.
Arduino Examples
Example 1: Positional Accuracy
As a quick test, we will be using the first example in the ZED-F9P folder (located in File Examples > SparkFun u-
blox GNSS Arduino Library > ZED-F9P > Example1_GetPositionAccuracy).
2
2
2
2
2
2
2
processRTCM
function is exposed. This
Need help?
Do you have a question about the ZED-F9P and is the answer not in the manual?
Questions and answers