With GPS you are able to know where you are, where you're going, and how to get there anywhere on Earth within 30 seconds. This means the higher the accuracy the better! GPS Real Time Kinematics (RTK) has mastered dialing in the accuracy on their GPS modules to to just millimeters, and that's why we had to put it on this board!
The SparkFun GPS-RTK2 raises the bar for high-precision GPS and is the latest in a line of powerful RTK boards featuring the ZED-F9P module from u-blox. The ZED-F9P is a top-of-the-line module for high accuracy GNSS and GPS location solutions including RTK that is capable of 10mm, three-dimensional accuracy. With this board, you will be able to know where your (or any object's) X, Y, and Z location is within roughly the width of your fingernail! The ZED-F9P is unique in that it is capable of both rover and base station operations. Utilizing our handy Qwiic system, no soldering is required to connect it to the rest of your system. However, we still have broken out 0.1"-spaced pins in case you prefer to use a breadboard.
We've even included a rechargeable backup battery to keep the latest module configuration and satellite data available for up to two weeks. This battery helps 'warm-start' the module decreasing the time-to-first-fix dramatically. This module features a survey-in mode allowing the module to become a base station and produce RTCM 3.x correction data.
The number of configuration options of the ZED-F9P is incredible! Geofencing, variable I2C address, variable update rates, even the high precision RTK solution can be increased to 20Hz. The GPS-RTK2 even has five communications ports which are all active simultaneously: USB-C (which enumerates as a COM port), UART1 (with 3.3V TTL), UART2 for RTCM reception (with 3.3V TTL), I2C (via the two Qwiic connnectors or broken out pins), and SPI.
We've also written an extensive Arduino library for u-blox modules to make reading and controlling the GPS-RTK2 over our Qwiic Connect System easy. Leave NMEA behind! Start using a much lighter weight binary interface and give your microcontroller (and its one serial port) a break. The SparkFun Arduino library shows how to read latitude, longitude, even heading and speed over I2C without the need for constant serial polling.
Note: The I2C address of the ZED-F9P is 0x42 and is software configurable. A multiplexer/Mux is required to communicate to multiple ZED-F9P sensors on a single bus. If you need to use more than one ZED-F9P sensor consider using the Qwiic Mux Breakout.
The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.
The ZED-F9P GPS-RTK2 can also be automatically detected, scanned, configured, and logged using the OpenLog Artemis datalogger system. No programming, soldering, or setup required!
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 21 ratings:
2 of 2 found this helpful:
I purchased two of these; one to act as a base station sending correction data to a rover. I am getting 14mm accuracy (estimated).
Only IMHO, the software library is missing some functionality and it really should be able to be used with less polling...more interrupt driven. Also, there are a couple of items in the Hookup Guide that could use some clarification.
6 of 6 found this helpful:
We bought 2 of the ZED-F9P modules from SparkFun, one for a base station and the other for a rover. After setup, both are working great for us, providing Fixed RTCM corrections. We will probably buy a third unit for fixed installation on a UAV. We are using SNIP to push out the base station RTCM corrections and our rover uses Android app NTRIP Client to pull those in from RTK2go.com:2101 (if you have a static IP you can forego the RTK2go layer).
Our rover is using a SparkFun BlueSMIRF bluetooth module, however we recommend following the SparkFun instructions in the GPS-RTK2 hookup guide that suggests using the Bluetooth Mate. The BlueSMIRF and Mate both perform the same functions however the pinout on the Mate lines up directly to the ZED-F9P pins and makes life easier.
For our base station we are also using a Redboard (Qwiic) and SparkFun 20x4 SerLCD which helps in monitoring the RTCM output status at a quick glance (without using u-center). We also have tested using Ublox' u-center app which is an important (for us) step in testing and customization of the modules. On a side-note, when connecting to or disconnecting from the Qwiic connectors attached to the board, don't go Rambo on them and think you can yank them around. We accidentally ripped one of the Qwiic connectors out by not following this advice. You may not need both connectors and can daisy-chain off of one if necessary.
We are able to obtain a fix using Survey-In without a problem. Note that the longer you can leave it in Survey-In mode the more accuracy you'll obtain. If you are going to leave the base unit in a fixed spot we'd recommend leaving this in Survey-In mode for at least 4-6 hours, the longer the better (24 hours?). Once you have obtained your Fixed Lat/Lng/Height you can put the unit in Fixed Mode with those X,Y,Z coordinates.
We still need to add a radio module onto our base unit so that we can get rid of the USB wire between our laptop and the base unit (so we can mount this outside permanently), however that is a pretty straightforward step. Another addition may be a solar charger to trickle charge battery(s) on the base, eliminating all cords to the base making it self-sufficient.
The initial learning curve can seem somewhat daunting, however Google is your friend. Watch YouTube videos on RTCM if you don't have at least a basic understanding of the topic. U-Blox has many detailed instruction manuals around the F9P but also for u-Center which is an integral part of this system. SparkFun has many manuals as well which are VERY helpful in getting this setup and running. If you aren't afraid of doing a little bit of reading and research you should be able to get a base station and rover up and running just like we did.
1 of 1 found this helpful:
We have successfully tested and made to work in RTK mode. The performance is excellent. We could get position fixing accuracies within 15 mm. For the time being we made communication link using RF amplifiers and using GSM network still to explore. Of course, lack of literature on F9 device is a hurdel yet.
1 of 1 found this helpful:
Wicked-fast TTFF, and the input sensitivity with the recommended antenna is noticeably improved over my M8P-based setup (even with the newest firmware). I can now get a decent fix indoors!
Would I love a smaller board? Sure. But for the enhanced performance, I'll find room for it.
1 of 1 found this helpful:
It's early in the development cycle, so the device and the doc's for it have a few rough edges still. It also does L2 GPS data slightly differently than the survey gear does. That can lead to issues with a whole range of support and analysis software. Mine decided to move 40 M over night. I checked and the antenna is still right where it was yesterday .....The NetR9 running next to it had no issues ...
1 of 5 found this helpful:
Board is easy to set up but near impossible to get to work. I baught 2 of them one for base and one for rover and although i did everything correct i can not rover to receive the RTCM data from the base. Documentation is mediocre.
Do yourself a favor and stay away from this board.
The system seems very accurate. But it also is less than easy to set up.
Hardware: Two SparkFun "GPS-RTK2 Board - ZED-F9P (Qwiic)" boards, one for use as a BASE and one as a ROVER. One each Sparkfun Redboard Qwicc. A few Qwicc connector cables (only really needed 1). Two 900 mhz Digi Xbee radios Running DigiMesh. I bought 3 plus serial boards from DigiKey for $99 (Digi-XBee Mesh Kit on DigiKey "XBEE-PRO 900HP DIGIMESH KIT (US/". DigiKey part number "602-1843-ND"). For the price I couldn't turn the kit down. Two plugs and attached wiring to connect the radios. Two UBLOX antenna. Although available from SparkFun I bought them (DigiKey part number 672-ANN-MB-00-00-ND) from DigiKey, mainly because they had longer antenna leads. A 33 ft antenna extension cable from Amazon. I don't have it yet and probably don't need it, but I may want to mount the Base on my roof. Two 4.5 inch round electrical box covers for use as ground planes.
Software: Set the radios 230400 baud. Used "Example3_StartRTCMBase" as the basic setup for the Base after changing the output port for all the messages to UART 2 and the baud rate for that port to 230400, "myGPS.setSerialRate(230400, COM_PORT_UART2)". Ended up running "In-Survey" for a couple hours instead of 5 minutes. That got the uncertainty down pretty low. May run it longer to see what happens. The docs say up to 1 day may be desirable. Used "Example8 _GetHighPrecisionAndAccuracy" as the basic setup for the Rover.
Some issues: Pretty much the main issue is the GPS board needs to be reset almost every time you make a change. I used "Example12_FactoryDefault_I2C". When you load the sketch, depending on what you were running befor, you may need to disconnect the GPS from the RedBoard (I2C) and/or you may need to cycle the power on the GPS.
Making heads or tails of the U-Center software is more fun than I can tell you. :)
Stick with it and you'll get good results.
GPS RTK2 this board is easy to implement and It's performance quite good/accurate. Yes it quick to recapture the location after it sleep. So far, we are satisfied.
It seems to interface with gpsd in Linux but should I have gotten an antenna. I hooked a wifi passive antenna to the UFL connector. No satellites responded; at least non-intelligible. Hopefully this is an oversight on my part and not a defective unit.
Please tell me what more I will need to get this unit to respond. I have read good things about this unit.
Unfortunately WiFi is in a different frequency band than GPS/GNSS and a WiFi antenna will not work with these modules. You need a GPS antenna like part number GPS-14986 for this to get any signal. Please see the hookup guide for more information on antennas and if you have any more questions, check out our technical assistance page.
The F9P picks up dozens of signals with a good antenna attached. Update your firmware quarterly. Ideal for streaming data to galmon.eu for GNSS monitoring. Adding an ESP32 for NTRIP from CRTN/UNAVCO.
Great product for learning all about GPS Real Time Kinematics (RTK). It took me a few nights to go through the tutors and get it up running the way I wanted. It was amazing to see it track 30 satellites all the time. And with the backup battery it cool to watch it acquire satellites and lock in a position in less than 30 seconds. The closest RTCM source is 300 miles away that I could find, so I could lock down to about a meter of accuracy which is great, but I am hoping for more. It looks like I will have to buy a second unit to get the accuracy that I want. Just not in the budget yet. The U-Center software is great and lets you do all kids of cool stuff to understand what is going on inside this little red PCB. U-Center is like a great piece of test gear to evaluate GPS. At first the it can be overwhelming because of what you can change and play with but hang in there. Hope to update this when I get a better RTK source.
Thanks for the product. Really satisfied with the product. However, I would like to see some ROS support from your github page. There are supports from ublox but not for this specific device. Communication with the device with rtcm enabled is a little difficult to handle in ROS. Also, one should try to buy 2 units together ( & accesories to communicate in between) which is the ultimate goal of real time kinematics support.
No problems. It started right up receiving 46 satellites and the clock started improvements right away. A fantastic board with access to all the important pins.
I've been running Sparkfun GPS boards for years for both personal and government projects. Analysis continues to get easier. When the previous GPS-RTK board came out I jumped for it... antenna on roof... local CORS station for a reference... RTKLIB post-processing. By averaging weeks of data I got to a sub-cm solution for my roof antenna. Still... it was a differential measurement with a 6 km baseline. Now, however, with the F9P and the NTRIP stream of SSR corrections I see a real time solution of roughly 2-3 cm. Your Hookup Guide was a great help to getting it up and running quickly. Now its time to dive back into RTKLIB (demo5 from rtkexplorer.com) to reach a PPP absolute position in post-processing and see what happens.
The F9P gave me the relative position between two moving objects using patch antennae and the RELPOSNED message.
Works perfect, I use a radio to supply RTCM3 via RS232 (Via Serial to TTL Adaptor). Setup the baud rate and perfect RTK fixed postion.
ZED-F9P is plug and play board, simple to use and does not need any setting adjustments prior to first use. I was using it together with Bluetooth Mate Silver for RTK correction. BT Mate was attached to the board like described in GPS-RTK2 Hookup Guide. Assumingy in one moment there was a shortcut between BT Mate and the ZED-F9P module (in the section where there are jumpers on ZED-F9P) and I was not been able to connect to the ZED-F9P module again. I also noticed that RTK led is barely on. I reccomend to put inslulating tape between BT mate and ZED-F9P board. I would like to buy a new one, but the price is just not that attractive.
This product has many terminals and can be used conveniently. It is also nice to provide design information. Very easy to use. I want to buy more, so I want to increase production quickly.
I have been using this in static mode and post-processing the data with RTKLIB. While I have not yet been able to verify the absolute accuracy of a fix with integer ambiguity resolution after post-processing, I did get a fix with 1800 points on 1 second epochs while on a hilltop that put all points within a 5mm circle. This would be survey grade accuracy for about 2% of the cost of a survey grade system. Have not yet attempted real-time kinematic operation yet.
Well module is everything you need to prototype, I wish if can add a TTL level shifter in UART terminal because some radiomodens work to 5V and module justt support 3.3 V levels
Now its easier to track my wife location