Creative Commons images are CC BY 2.0

SparkFun RTK Surveyor

The SparkFun RTK Surveyor is an easy to use GNSS receiver for centimeter-level positioning. Perfect for surveying, this preprogrammed device can also be used for autonomous driving, navigation, asset tracking and any other application where there is a clear view of the sky. The RTK Surveyor can also be used as a base station. With the flick of a switch, two RTK Surveyors can be used to create an RTK system capable of 14mm horizontal positional accuracy. The built-in Bluetooth connection via an ESP32 WROOM enables the user to use the RTK Surveyor with their choice of GIS application on a phone or tablet. The built in battery allows field use for up to four hours and is compatible with common USB battery banks.

This device can be used in four modes:

  • GNSS Positioning (~30cm accuracy)
  • GNSS Positioning with RTK (1.4cm accuracy)
  • GNSS Base Station
  • GNSS Base Station NTRIP Server

In Position mode the device receives L1/L2 signals from a user-provided antenna and the high-grade GNSS receiver provides lat/long and altitude with accuracies around 300mm.

In Positioning with RTK mode the device receives L1/L2 signals from the antenna and correction data from a base station. The correction data can be obtained from a cellular link to online correction sources or over a radio link to a 2nd RTK Surveyor setup as a base station.

In Base Station mode the device is mounted to a temporary position (like a tripod) and begins transmitting correction data over a radio or internet connection. A base is often used in conjunction with a second unit set to 'Positioning with RTK' to obtain the 14mm relative accuracy.

In Base Station NTRIP Server mode the device is mounted to a semi or permanently fixed position (like a roof) and connects over WiFi to transmit the correction data to a NTRIP caster so that any rover can access the correction data over a cellular or internet connection. This type of base is a very easy way to setup a very precise absolute correction source.

Two cables are provided with the RTK Surveyor allowing a user to plug on our easy to use Serial Telemetry Radios or their own radio link. If a local correction source is within 10km, a user can also use their phone to provide correction data over the Bluetooth link (no external radio needed!).

Note: The SparkFun RTK Surveyor is just the enclosed device and does NOT include an antenna, serial telemetry radio, or associated mounting pieces. These items will need to be purchased separately from the Hookup Accessories below.

Not Compatible with Rigid Antennas: Helical antennas such as the BT-560 create a lever arm that will permanently damage the unit if dropped. Use only a cabled antenna.
Experimental Product: SparkX products are rapidly produced to bring you the most cutting edge technology as it becomes available. These products are tested but come with no guarantees. Live technical support is not available for SparkX products. Head on over to our forum for support or to ask a question.

GNSS Receiver: ZED-F9P

  • Concurrent reception of GPS, GLONASS, Galileo and BeiDou
  • Receives both L1C/A and L2C bands
  • Current: 68mA - 130mA (varies with constellations and tracking state)
  • Time to First Fix: 25s (cold), 2s (hot)
  • Max Navigation Rate:
    • PVT (basic location over UBX binary protocol) - 25Hz
    • RTK - 20Hz
    • Raw - 25Hz
  • Horizontal Position Accuracy:
    • 2.5m without RTK
    • 0.010m with RTK
  • Max Altitude: 50km (31 miles)
  • Max Velocity: 500m/s (1118mph)

Bluetooth Transceiver: ESP32 WROOM

  • Xtensa® dual-core 32-bit LX6 microprocessor
  • Up to 240MHz clock frequency
  • 4MB of flash storage
  • 520kB internal SRAM
  • Integrated 802.11 BGN WiFi transceiver
  • Integrated dual-mode Bluetooth (classic and BLE)
  • Hardware accelerated encryption (AES, SHA2, ECC, RSA-4096)
  • 2.5 µA deep sleep current

Overall Device

  • Internal Battery: LiPo 1000mAh with 500mA charging
  • Radio Port: 3.3V TTL Serial (57600bps RTCM TX/RX)
  • Data Port: 3.3V TTL Serial (115200bps NMEA)
  • Weight: 132g (entire device including battery)
  • Dimensions: 118mm x 79mm x 30mm (4.7in x 3.1in x 1.2in)
  • 1x Qwiic Connector

SparkFun RTK Surveyor Product Help and Resources

SparkFun RTK Surveyor Hookup Guide

December 3, 2020

Learn how to use the enclosed RTK Surveyor product to achieve millimeter level geospatial coordinates.

How to Upgrade Firmware of a u-blox GNSS Receiver

March 26, 2021

A few steps and you'll upgrade to the latest features on a u-blox GNSS receiver.

Core Skill: Electrical Prototyping

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.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • John Pilgrim / about 4 years ago / 2

    Has this been tested with ESRI Collector iOS over BT? SW Maps is good, but I'd like to use Collector as well.

    • Works like a charm on Android. Unfortunately Apple doesn't support Bluetooth SPP. I was getting 1.3ft (0.4m) reported accuracy with no RTCM correction. And here's a different point with RTK over NTRIP using Lefebure and Mock Location to pipe the corrected data via cellular (0.8 inch accuracy).

      • John Pilgrim / about 4 years ago * / 1

        So then how (technically) are the mid- and high-end GPS Receivers communicating over Bluetooth with ESRI Collector on iOS devices?

        Here are the iOS Collector specs.

        To directly connect a Bluetooth receiver with an iOS device, the receiver has to be part of the MFi program as well as support the output of NMEA sentences.

        Please NO Apple bashing, this is a technical question and technically rigorous answers will be very much appreciated.

        • It's my site and I can bash Apple if I want ;) (but I won't)

          I believe this is why most hardware devices are pushing towards BLE over SPP; SPP has Apple royalties and certification hassles whereas BLE will run on both Android and iOS. So, the real question is what are the BLE UUIDs that ESRI Collector communicates with? ESP32 BLE is easy enough, we just need to find the technical docs to communicate with it.

    • ro777 / about 4 years ago / 1

      Hey John - ESRI integration is a perfect fit for this - I work in with the ESRI mobile team - ping me at rtait AT wh4inc DOT com if you want to talk more - this is great stuff!

  • Member #1399043 / about 3 years ago / 1

    According to Hook up Guide: Power - Blue when attached to power and charging / off when fully charged. Green/Yellow/Red when the Power switch is turned on indicating the state of charge of the internal battery.

    My unit does not charge the battery. The battery was totally empty and it did not charge anymore, The LED was red all the time when trying to charge. So I replaced a new battery, I have USB charging connected on but the new battery is also not charging. The LED is green all the time.

    CONFIG EPS32 port gives the following message: Batt (100%): Voltage: 3.63V Discharging: -167.65%/hr Green

    What is the problem here?

  • Member #1399043 / about 3 years ago / 1

    My Wifi passwd was nothing but numbers. When I changed it to one with alphabet the Wifi password will be saved.

  • Member #1677910 / about 3 years ago / 1

    Dear Nate. You could tell me to take altimetry data, from which part of the antenna the height should be taken. Thank you very much for your attention.

    • I think you're asking what antenna height should you use? ARP is defined (I think) as the distance from the point of interest to the mount point of your antenna. This OPUS page shows it pretty clearly.

  • Hernan_E / about 3 years ago / 1

    It is possible to set a known base (specific coordinates of a point)to work with RTK correction?? Do you need a different app from sw maps??

    • Yep. This is normally done over the serial interface. You can enter lat/long/alt or ECEF. Checkout the hookup guide:

      SparkFun RTK Surveyor Configuration

      Assuming your device is located at the XYZ ECEF coords it will immediately start transmitting RTCM corrections.

      • Hernan_E / about 3 years ago / 1

        In other words, I always need to have a laptop to set the information ?? Or there is another method or maybe another device can be used??

        • Sorry, it's not ideal. Because permanent coordinates are usually associated with a permanent installation, yes, it currently requires a laptop or other device to enter the serial data. We'll be expanding the configuration settings to BLE over the coming months.

  • Surveyor55854 / about 4 years ago * / 1

    As a licensed surveyor (now retired with active license), I would really like to use this for static and rapid-static observations and post-process using OPUS, OPUS-RS, etc... also occasional RTK using an open-source solution if available. The vast majority of my retired work is conventional surveying, but having the ability to set a pair of convenient control points using an affordable GNSS solution would be an immense time-saver and safety improvement.

  • Member #439249 / about 4 years ago / 1

    I realize this is a relatively new item -- and the documentation indicates that the F/W currently does not support read/write of the micro SD. That said, is there any idea on when that support might be integrated? This small receiver would be really useful if it could log data raw data (RINEX) for post-processing.

    • We were conservative with our initial release. In v1.0 of the firmware, datalogging was supported and as of v1.1, it's fully tested for 4Hz logging of NMEA and RAWX. It's pretty easy to configure. Please see the System Configuration section of the hookup guide for more info.

      • Member #439249 / about 3 years ago / 1

        Hi, Nate. Thanks for the feedback. I tried setting up the raw data logging as described in "System Configuration", but it still is not writing the .ubx file. I've set the device for rawGNSSoutput as well as enableSD ... it logs the NMEA messages in the .txt file, but there is no other file.

        I posted in the forum a couple of weeks ago, but nobody has replied, yet, so I'm following up here, as well.

        I'm probably missing something minor, but I'm not seeing it. I appreciate any help.

        As far as utility as an RTK device, this is straightforward ... no problem linking with my radios. It's a really good device. Thanks for all the effort on this!

        • RAWX is a sentence that can be enabled inside the GNSS Receiver Configuration Menu. It's recorded to the SFE_Surveyor_210317_182802.txt type log file. That said, it's honestly not very functional. I've got a few bugs to fix. Additionally, I assumed the txt logging of RAWX would be sufficient for RTKCONV to pick out the obs data. It doesn't seem to be. One work around:

          • Enable RAWX logging via the menu. This will enable the RAWX message over UART1
          • Enable logging within SW Maps. This will create a ubx file on your phone that should capture the data you need to then convert to obs.

          I'll look into logging either ubx or obs directly in a future firmware version.

          edit: Hah. Neat. UBX is just NMEA and RAWX mixed together. No magic to the file format. I was able to capture a txt with RAWX enabled on the surveyor, move the file over via SD to my computer, change file extension to .ubx and RTKCONV was able to spit out a sensible obs file.

          If possible let's move this discussion over to the repo.

          • Member #439249 / about 3 years ago / 1

            Thanks, Nate. The clarification is really helpful ... and makes plenty of sense. I'll look into this and follow up with you in the repo.

  • Soledad / about 4 years ago * / 1

    Good product. I propose for a future version:

    1 Downsize. For surveying a specific software on a tablet is necessary on the pole too. Some antennas has a socket for a custom receiver. There is pro software that works well with Ublox.

    2 Add an IMU, because the specific software calculates the inclination of the pole and it will be able to do GNSS / IMU integration in tree areas to calculate the non-fixed position.

    • Member #1643935 / about 3 years ago * / 1

      I will second the request for the addition of the IMU. This would be a significant improvement. I would also like to see a cellular radio included along with a micro sim card carrier for NTRIP corrections. The reason for inclusion is that if you are using a tablet for your GPS collector, very few tablets have LTE capability. For example, in Canada Samsung will not sell the LTE variant of the Galaxy Tab S7 even though they are carrying it in the US and the UK. Samsung will not sell across the border either. So having native LTE capability would solve that limitation. The price of non-LTE tablets is also much less.

    • John Pilgrim / about 4 years ago / 1

      Interesting...can you share the names of the survey software packages you're referring to?

      • Soledad / about 3 years ago / 1

        Carlson SurvPC 6 works fine with Ublox F9P. You need Windows 7 or higher on a rugged tablet. You can request a demo to check it before purchase.

  • Alwyn Smith / about 4 years ago * / 1

    I'm excited about this, but the accuracy claims are misleading if you are new to surveying and GPS/GNSS. I think the hookup guide should include a discussion of the limitations and conditions required for that accuracy. Some of these survey-grade accuracies require clear sky-views and post-processing. Here's a a primer that can help users to understand more about the subject.

  • Member #150588 / about 4 years ago / 1

    To be effective as a survey tool - using radios - it is necessary, IMO, to use radios with a reach further than 300m. Something in the range of 2-3 km. So it would be nice to see some serial radios better than the current offerings.

    • I agree but there's a few things to consider: if you're in an area with cellular reception I highly recommend using your phone as an NTRIP client. Removes the need for a radio. If you're remote without cellular coverage a long distance radio is a fine solution but it's tricky legally carrying radios with that output power in the USA. Most will be above the power limits for the unlicensed band(s). That said, if you've got a HAM radio license then you can have all sorts of fun! We specifically made the radio external to the RTK Surveyor for this reason. BYOR - bring your own radio. The user is able to select the radio, power, technology, etc that fits their application.

  • Member #227125 / about 4 years ago / 1

    Super excited about this release. Thanks @Sparkfun. Looking forward to experimenting with it. Having used the ZED-F9P breakout board in the past for our work, this should be an easy transition and streamline our process. That said, we like having access to the PPS pin on the board for custom timing. I see it's pulled out on the board, but not on any of the external connectors, necessitating us pulling it out to our own connector and customizing the case on this release. Any chance that might be routed to an external connector on future releases?

    • That is a fine idea. I'll contact you directly to find out your application and see if there's a connector that you'd prefer. We're somewhat limited by the PCB real estate on the end of the board.

      • John Pilgrim / about 4 years ago * / 2

        On many levels, just bringing out more of the ZED communication pins (I2C, SPI, another UART) to through hole solder pads on the main circuit board would go a long way to enabling users to add on custom cables or connectors to daughter devices. Loose individual wires coming out of a JST on the surface of an enclosure aren't that professional looking nor mechanically sturdy. JST's aren't really "locking" in the way an M12 or D-series connector is.

        For example, I'm surveying rural properties and there are often trees and bushes grown up around the property corner fence posts. I need to get my survey pole right up next to the base of the fence post and pointing straight up to the sky (orthagonal to the ground) with the bubble level. So every wire between devices on the pole is an additional point of failure to get snagged and pulled out by a branch.

        • All communication ports and signals are brought out to PTH holes including:

          • UART1
          • UART2
          • I2C (not PTH)
          • PPS
          • SAFE
          • Reset
          • TX Ready
          • Fence

          Now, you can ding us for not breaking out D_SEL (enables SPI) but for folks that want to go to that level of modification one of our RTK breakout boards would be more apt.

          • John Pilgrim / about 4 years ago * / 1

            I saw those PTH in the description and photos in the hookup guide a. I'd ask that in future revisions that you added PTH for I2C and SPI.

            I suppose I could design and 3D print a case extension for the current design to provide an exterior M2 connector from the qwiic JSTs.

            Given the I2C clock stretching deficiencies in the RPi, making SPI accessible would be helpful. But at that point you're probably right that just putting an RTK breakout board in a generic enclosure is arguably a better approach.

  • Member #280317 / about 4 years ago * / 1

    How is it that the receiver datasheet (ZED-F9P) claims position accuracy of 1.5m (without RTK), yet on the main page, you claim the surveyor position accuracy of 30cm (again, without RTK)?

    • John Pilgrim / about 4 years ago / 1

      I recently built a ZED-F9P Base-Rover pair for surveying and configured the Arduino on my rover to log every result from the uBlox. The log interval was 1-2secs. My rover data logs generally show 1.1m-1.3m errors on non-RTK solutions with 24-26 SIV when my rover was running but the base station was off. When the base station is running, the rover logs show consistent 0.0141m error on RTK Fix solutions. When I would walk between survey positions with the GPS antenna tilted away from the sky so that my rover's SIV dropped to about half, or 13 SIV, the logs show the rover briefly got non-RTK solves with 0.1m-0.5m errors. Maybe that's where SF staff got the 30cm (0.3m) number: intermittent non-RTK solves during a period of generally RTK Fix and RTK Float solves.

      • Here's a quick back yard survey while the kids are napping. Admittedly it's only 0.382m but I'm in an urban environment and my view of the sky was pretty poor. Using our listed L1/L2 antenna, and no RTCM data, we regularly see >25 SIV, with ZED-F9P v1.12 firmware and a reported horizontal accuracy of 0.3m or better. I hope I am not overstating the accuracy, I am only reporting what I've experienced. And like John, as soon as RTK kicks in (and boy is it fast once RTCM is available!) the horizontal positional accuracy drops to 0.0141m.

Customer Reviews

4.5 out of 5

Based on 4 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

I'm impressed

I bought the rtk surveyor as a learning tool, I don't think it will replace a $9,000.00 rover. I was able to use it with a novatel survey grade antenna and connect to MoDot;s realtime network using SW Map software. I haven't had time to test results or determine if NAD83 values can be obtained. Sparkfun has done a good job on the documentation and I look forward to exploring it further.

2 of 2 found this helpful:

Pretty impressive for the price

I’m new to the whole RTK world, so the SF RTK Surveyor was a great way to get started. The hardware is well designed and simple to use with two switches. I added the L1/L2 high gain antenna and serial telemetry radios. Setting up as a base simply required connecting the antenna, the serial radio, and turning it on. I mounted these on an ordinary camera tripod. The Hookup guide walks you through the steps explaining the concepts behind the process.

Getting the rover side was much more challenging. It took some research using both the various Hookup guides and the internet to get things working. The Hookup guide uses the SW Maps app on Android. As an iPhone user, I couldn’t find an equivalent ’free’ app, so I ended up using my laptop with a second SparkFun ZED-F9P GPS module . It also takes a while to learn the basics of NTRIP, the protocol for sending the RTK data over the internet. I ending up using to relay the NTRIP data.

Once I got the all pieces working, it worked great. I mapped out my property lines with ~20 cm accuracy.

My only wish is that SF would have used more robust connectors. The little IDC connectors and tiny wires require some care to not damage. I also added a QWIIC microOLED display (support discovered looking at the source code) to the Surveyor that provides better GPS status, maybe a future version could include this

Overall, this is an inexpensive way to get started with RTK. While using the SF RTK Surveyor as a base is easy, getting the rover working will take some time, especially if you want to use NTRIP. It probably would have gone faster if I had an Android device available that matched the Hookup Guide.

2 of 2 found this helpful:

Great network rover!

Works really well using ntrip service from dept of transportation. I look forward to purchasing another along with telemetry radios to use in mobile dead spots.

1 of 1 found this helpful: