MicroMod GNSS Function Board - ZED-F9P Hookup Guide
2023-05-09 | By SparkFun Electronics
License: See Original Project GPS MicroMod Qwiic
Courtesy of SparkFun
Guide by EL DUDERINO
Introduction
As some readers may guess by the assortment of SparkFun products featuring it, we love the ZED-F9P GNSS module from u-blox. The SparkFun MicroMod GNSS Function Board - ZED-F9P provides high precision GNSS capabilities for MicroMod projects using Main Board/Function Board assemblies. The ZED-F9P module from u-blox is capable of up to 10mm 3-dimensional accuracy though the module requires a clear view of the sky as well as correction data from an RTCM source to achieve this accuracy. The ZED-F9P can act as a base station as well so you can use it with a second Function Board (or another SparkFun ZED-F9P product) together to achieve millimeter positional accuracy.
SparkFun MicroMod GNSS Function Board - ZED-F9P
Having the ZED-F9P on a MicroMod Function board allows for even more versatility with projects using the ZED-F9P allowing users to mix and match not only their preferred Processor but also to pair it with another Function Board to add even more versatility to a GNSS project.
This guide will go over the hardware present on this Function Board, how to assemble it into a MicroMod circuit as well as an Arduino example to start getting location data from the ZED-F9P.
Required Materials
You'll need the following materials along with the MicroMod GNSS Function Board - ZED-F9P to complete this tutorial and use the Function Board.
Main Board
All Function Boards require a Main Board and Processor to connect to each other. Depending on your application, you may need either a Single or Dual Main Board:
Processor Board
You'll need a Processor Board to act as a host controller for the Function Board:
- SparkFun MicroMod Teensy Processor
- SparkFun MicroMod SAMD51 Processor
- SparkFun MicroMod ESP32 Processor
- SparkFun MicroMod Artemis Processor
Antenna
The GNSS Function Board also requires an antenna. We recommend using a GNSS multi-band antenna compatible with both L1 and L2 bands for full reception like the ones below:
- GNSS Multi-Band Magnetic Mount Antenna - 5m (SMA)
- GNSS Multi-Band L1/L2 Helical Antenna (SMA) BT-560
Note: If you want to try different GNSS antennas, the following antennas will work but are limited to L1 frequencies so they will not enable the full L1/L2 capabilities of the ZED-F9P.
Antenna Accessories
The GNNS Function Board uses a u.Fl connector for the antenna connection so in order to use the antennas listed above, you will need an adapter cable like the ones below. You may also want a grounding plate to maximize your antenna's reception:
- RP-SMA to U.FL Cable - 150mm
- Interface Cable SMA to U.FL
- GPS Antenna Ground Plate
- Interface Cable U.FL to SMA
Suggested Reading
The MicroMod ecosystem is a unique way to allow users to customize their project to their needs. If you aren't familiar with the MicroMod system, click on the banner below for more information.
Before getting started, be sure to check out our What is GPS RTK? tutorial and if you're not familiar with u-center, have a look at our Getting Started with U-Center as well as these related tutorials:
I2C: An introduction to I2C, one of the main embedded communications protocols in use today.
Serial Basic Hookup Guide: Get connected quickly with this Serial to USB adapter.
What is GPS RTK? Learn about the latest generation of GPS and GNSS receivers to get 14mm positional accuracy!
Getting Started with U-Center for u-blox: Learn the tips and tricks to use the u-blox software tool to configure your GPS receiver.
This tutorial is based around the guide for the SparkFun GPS-RTK2 Board - ZED-F9P so you may want to check out these tutorials for more information on GPS-RTK:
Find out where you are! Use this easy hook-up guide to get up and running with the SparkFun high precision GPS-RTK NEO-M8P-2 breakout board.
Get precision down to the diameter of a dime with the new ZED-F9P from u-blox.
Hardware Overview
Let's take a closer look at the ZED-F9P module and other hardware on this Function Board.
ZED-F9P GNSS Module
The ZED-F9P is a high-precision GNSS module from u-blox capable of up to millimeter X, Y, & Z positional accuracy.
The ZED-F9P with a full RTK lock along with RTCM data streaming to the module can achieve 10mm 3D positional accuracy. Depending on the constellation the module achieves a lock in ~25 seconds from a cold start and 2 seconds from both a hot start and aided start. For a complete overview of the module, refer to the ZED-F9P datasheet.
One of the key differentiators between the ZED-F9P and almost all other low-cost RTK solutions is the ZED-F9P is capable of receiving both L1 and L2 bands.
The module can act as either a rover to receive GNNS location data and RTCM correction data or a base station to send RTCM correction data to another device. For complete information on how to configure the ZED-F9P as a base station or rover, refer to the u-blox Integration Manual or check out this tutorial.
Communication Interfaces
This Function Board routes the ZED-F9P's USB interface to a USB-C connector on the top of the board. The SPI, I2C, and primary serial interfaces are routed to the MicroMod M.2 connector through an isolation circuit.
The board configures the ZED-F9P to communicate via I2C and Serial by default. Adjusting the DSEL solder jumper switches the communication interface to SPI.
The USB-C connector allows direct communication to the ZED-F9P UART interface but does not provide power to the module or other parts of the MicroMod assembly by default. To use this connector for power, adjust the USB PWR EN jumper. Read on to the Solder Jumpers section for more information.
Antenna
The board routes the ZED-F9P antenna connection to a u.Fl connector for an external antenna connection. Most of the recommended antennas use a SMA-type connector so an adapter like this is most likely needed.
The Function Board also includes a RF/antenna supervision circuit to monitor and control the active antenna connection. The supervision circuit protects the ZED-F9P from a short circuit on the antenna connection and monitors the antenna connection to detect a connected antenna or open circuit. By default, the Function Board disables this circuit through the SUP solder jumper. Read on to the Solder Jumpers section for more information on using this jumper and refer to section 4.3.4 of the ZED-F9P Integration Manual for more information on this circuit and how to poll the status using UBX messages.
Backup Battery
The backup battery on the board has a 1.5mAh capacity to maintain settings and other low-power functionality to the ZED-F9P when the module is not fully powered.
PTH Connections
Along with the secondary serial bus, the Function Board routes several other ZED-F9P pins to plated through-hole (PTH) connections.
The list below outlines the labels and functionality of the PTH connections on the Function Board:
- PPS - The board translates the Pulse-Per-Second (PPS) output to a differential output routed to a pair of PTHs along with matching ground PTHs
- RX2/TX2 - The ZED-F9P's secondary UART (RX2/TX2) along with a ground PTH
- Reset - ZED-F9P reset pin
- EXTINT - ZED-F9P external interrupt pin
- SB - ZED-F9P SafeBoot pin
- GND - Several Ground PTHs if needed.
LEDs
The GNSS Function Board - ZED-F9P has three LEDs labeled: PWR, PPS, and RTK.
- PWR - Indicates when the ZED-F9P is powered
- PPS - Tied to the Pulse Per Second pin and acts as a visual indicator to the ZED-F9P pulse per second signal
- RTK - Indicates the status of the RTK lock.
Solder Jumpers
If you have never worked with solder jumpers and PCB traces before or would like a quick refresher, check out our How to Work with Solder Jumpers and PCB Traces tutorial for detailed instructions and tips.
This board has nine solder jumpers. The table below outlines each jumper's label, default state, function, and notes regarding their use:
MicroMod Pinout
This Function Board uses the following pins on a connected Processor Board:
- 3.3V & VCC
- Power enables
- SPI - ZED-F9P SPI
- I2C - ZED-F9P I2C and EEPROM
- UART RX1/TX1 (Slot 0) / UART RX2/TX2 (Slot 1) - ZED-F9P UART1
- CS0 (Slot 0) / CS1 (Slot 1) - ZED-F9P Chip Select
- D0 (Slot 0) / D1 (Slot 1) - ZED-F9P TX Ready
- PWM0 (Slot 0) / PWM1 (Slot 1) - ZED-F9P Pulse-Per-Second
- G0 (Slot 0) / G5 (Slot 1) - ZED-F9P Reset
- G1 (Slot 0) / G6 (Slot 1) - External Interrupt
- G2 (Slot 0) / G7 (Slot 1) - RTK Status
- G3 (Slot 0) / G8 (Slot 1) - Geofence Status
Note: As covered previously, the ZED-F9P uses the same pins for UART/I2C (Default) and SPI depending on the state of the interface select (D_SEL) pin. The Function Board routes these interfaces to the labeled pins on the MicroMod M.2 connector through separate quad bilateral switches that are enabled/disabled depending on the state of the D_SEL pin controlled by the D_SEL solder jumper.
For the complete MicroMod Pinout and pins used by this function board, take a look at the tables below:
GNSS FUNCTION BOARD - ZED-F9P PINOUT TABLE
MICROMOD GENERAL PROCESSOR PINOUT TABLE
MICROMOD GENERAL PIN DESCRIPTIONS
Board Dimensions
The board matches the MicroMod Function Board design specifications and measures 2.56" x 1.48" (65.02mm x 37.69mm) and the USB-C connector protrudes roughly 0.067" (1.70mm) from the edge of the board.
Hardware Assembly
If you're not familiar with assembling boards using the MicroMod connection system, head over to the MicroMod Main Board Hookup Guide for information on inserting and securing your MicroMod Processor and Function Boards to the Main Board:
MicroMod Main Board Hookup Guide
The MicroMod Main Board - Single and Double are specialized carrier boards that allow you to interface a Processor Board with a Function Board(s). The modular system allows you to add an additional feature(s) to a Processor Board with the help of a Function Board(s). In this tutorial, we will focus on the basic functionality of the Main Board - Single and Main Board - Double.
Antenna Connection
The antenna connection on this Function Board uses a u.Fl connector so an adapter like this is most likely needed. For tips on how to properly use a u.Fl connector, this tutorial can help.
Completed Assembly
With the Function and Processor Boards installed on a Main Board and the antenna and USB-C cables plugged in, your completed MicroMod assembly should look similar to the photo below:
With the MicroMod assembly completed, we can move on to setting up the software and start getting location data from the ZED-F9P.
Software Installation
Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first-time using Arduino, please review the following tutorials.
- Installing the Arduino IDE
- Installing Board Definitions in the Arduino IDE
- Installing an Arduino Library
SparkFun u-blox Arduino Library
Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first-time using Arduino, please review our tutorial on installing the Arduino IDE. If you have not previously installed an Arduino library, please check out our installation guide.
The SparkFun u-blox Arduino library enables the reading of all positional datums as well as sending binary UBX configuration commands over I2C. This is helpful for configuring advanced modules like the ZED-F9P but also the NEO-M8P-2, SAM-M8Q and any other u-blox module that use the u-blox binary protocol.
Note: We support two versions of the SparkFun u-blox GNSS library. Version 2 and Version 3. Version 3 uses the u-blox Configuration Interface (VALSET and VALGET) to configure the module, instead of the deprecated UBX-CFG messages. For modules like the F9 and M10, we recommend upgrading to Version 3. However, older modules like the M8 do not support the Configuration Interface. For those you will need to keep using Version 2 of the library. We will continue to support both.
The SparkFun u-blox Arduino library can be downloaded with the Arduino library manager by searching 'SparkFun u-blox GNSS v3' or you can grab the zip here from the GitHub repository to manually install.
SPARKFUN U-BLOX ARDUINO LIBRARY V3 (ZIP)
This SparkFun u-blox library really focuses on I2C 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.
In the next section we'll look at the first example included with the library to verify everything is working properly with the GNNS Function Board - ZED-F9P.
u-center Installation
For those who prefer to communicate directly with the ZED-F9P through the USB-C connector on the Function Board, head over to this tutorial to get started with u-center from u-blox:
Getting Started with U-Center for u-blox
Learn the tips and tricks to use the u-blox software tool to configure your GPS receiver.
Pin Connection Table
The table below helps show which pins the Function Board connects to depending on the slot it is connected to on a Main Board (Note: The Single Main Board connection is Slot 0):
Arduino Example
Example 1: Positional Accuracy
The first example in the SparkFun u-blox GNSS Arduino Library provides a quick test for position and accuracy. Navigate to the example by going to File > Examples > SparkFun u-blox GNSS v3 > ZED-F9P > Example1_GetPositionAccuracy.
Select your Board (in this case the SparkFun ESP32 MicroMod) and associated COM port. Upload the code and open the Arduino Serial Monitor with the baud set to 115200. Make sure the antenna has a clear view of the sky and give the ZED-F9P some time to get a satellite lock. Once the module gets a satellite lock the coordinates and accuracy should start to print out in the serial monitor window.
More Examples!
Now that you got it up and running, check out the other examples located in the ZED-F9P folder!
SparkFun U-BLOX GNSS ARDUNIO LIBRARY: ZED-F9P
In order to get the most out of the ZED-F9P, you will need an RTCM correction source. Depending on your choice of Processor or other items in your setup, you may need a second ZED-F9P for a correction source. The following project tutorials guide you through setting up the ZED-F9P as a reference station or rover.
How to Build a DIY GNSS Reference Station
Learn how to affix a GNSS antenna, use PPP to get its ECEF coordinates and then broadcast your own RTCM data over the internet and cellular using NTRIP to increase rover reception to 10km!
Setting up a Rover Base RTK System
Getting GNSS RTCM correction data from a base to a rover is easy with a serial telemetry radio! We'll show you how to get your high precision RTK GNSS system setup and running.
Troubleshooting
u.Fl Tips
Unplugging the u.Fl adapter from the connector on the Function Board is tricky and improper removal can damage the connector or the board. For tips on using the u.Fl connector, check out this tutorial:
Three Quick Tips About Using U.FL
Quick tips regarding how to connect, protect, and disconnect U.FL connectors.
Position Lock Tips
Depending on your antenna choice and setup, you may experience issues getting your ZED-F9P to achieve a 3D lock. If you run into issues getting a lock, make sure the antenna has a clear view of the sky away from large objects such as buildings that may block the antenna view.
General Troubleshooting
Not working as expected and need help?
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting.
SPARKFUN TECHNICAL ASSISTANCE PAGE
If you don't find what you need there, the SparkFun Forums: MicroMod are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions.
Resources and Going Further
That's all for this tutorial. By now you should be able to start recording positional data with your completed MicroMod Main Board assembly using the GNSS Function Board - ZED-F9P. For more information, check out the following resources:
MicroMod GNSS Function Board Documentation:
ZED-F9P Documentation:
- Datasheet
- UBX and NMEA Protocol Manual
- Integration Manual
- Product Summary
- Release Notes - FW1.00
- Example RTCM output
- u-blox ECCN
MicroMod Documentation:
Ready to get hands-on with GPS?
We've got a page just for you! We'll walk you through the basics of how GPS works, the hardware needed, and project tutorials to get you started.
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum