Maker.io main logo

SparkFun RTK Facet Hookup Guide

2022-03-22 | By SparkFun Electronics

License: See Original Project

Courtesy of SparkFun

Guide by NATE

Introduction

The RTK Facet from SparkFun is our most advanced GNSS receiver to date. It's your one stop ‎shop for high precision geolocation and surveying needs. For basic users, it’s incredibly easy to get ‎up and running and for advanced users, the RTK Facet is a flexible and powerful tool.‎

SparkFun RTK Facet

With just a few minutes of setup, the RTK Facet is one of the fastest ways to take centimeter grade ‎measurements.‎

measure_1

Surveying with a monopod and SW Maps

map_2

An RTK Fix with 14mm accuracy in SW Maps

By connecting your phone to the RTK Facet over Bluetooth, your phone can act as the radio link to ‎provide correction data as well as receive the NMEA output from the device. It’s how $10,000 ‎surveying devices have been operating for the past decade - we just made it easier, smaller, and a ‎lot more economical.‎

Required Materials

The RTK Facet has all you need built into one small unit. In addition, the RTK Facet Kit includes ‎everything you might need as well. The only thing you need to add is your own tablet or cell phone ‎‎(Android and IOS supported).‎

Depending on your setup you may want to use your phone for RTCM correction data. If a source is ‎not available online, you will need a 2nd RTK Facet setup in base mode and a radio link connecting ‎the Base to the Rover. We'll go into details, but we designed RTK Facet to work with these 100mW ‎‎915MHz telemetry radios out of the box.‎

To charge the RTK Facet you will need a USB C cable and a power supply. These are included with ‎the kit, but any USB C port should charge the Facet at a maximum rate of 1A per hour.‎

Suggested Reading

GNSS RTK is an incredible feat of engineering that has been made easy to use by powerful GNSS ‎receivers such as the ZED-F9P by u-blox (the receiver inside RTK Facet). The process of setting ‎up an RTK system will be covered in this tutorial but if you want to know more about RTK here are ‎some good tutorials to brush up on:‎

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.‎

GPS-RTK2 Hookup Guide: Get precision down to the diameter of a dime with the new ZED-‎F9P from u-blox.‎

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.‎

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!‎

Hardware Overview

The RTK Facet is a fully enclosed, preprogrammed device. There are very few things to worry ‎about or configure but we will cover the basics.‎

Power/Setup Button

power_3

The RTK Facet has one button used for both Power and Setup for in-field configuration changes. ‎Pressing and holding the Power button will cause it to power on or off. Short pressing the button ‎will cause the RTK Facet to change modes.‎

This device can be used in four modes:‎

  • GNSS Positioning (~30cm accuracy) - also known as 'Rover'‎
  • GNSS Positioning with RTK (1.4cm accuracy) - also known as 'Rover with RTK Fix'
  • GNSS Base Station
  • GNSS Base Station NTRIP Server

At Power On the device will enter Rover or Base mode; whichever state the device was in at the last ‎power down. When the POWER/SETUP button is pressed momentarily, a menu is presented to ‎change the RTK Facet to Rover or Base mode. The display will indicate the change with a small car ‎or flag icon.‎

In Rover mode the RTK Facet will receive L1 and L2 GNSS signals from the four constellations ‎‎(GPS, GLONASS, Galileo, and BeiDou) and calculate the position based on these signals. Similar to ‎a standard grade GPS receiver, the RTK Facet will output industry standard NMEA sentences at ‎‎4Hz and broadcast them over any paired Bluetooth device. The end user will need to parse the ‎NMEA sentences using commonly available mobile apps, GIS products, or embedded devices ‎‎(there are many open-source libraries). Unlike standard grade GPS receivers that have 2500m ‎accuracy, the accuracy in this mode is approximately 300mm horizontal positional accuracy with a ‎good grade L1/L2 antenna.‎

When the device is in Rover mode and RTCM correction data is sent over Bluetooth or into the ‎radio port, the device will automatically enter Positioning with RTK mode. In this mode RTK Facet ‎will receive L1/L2 signals from the antenna and correction data from a base station. The receiver ‎will quickly (within a second) obtain RTK float, then fix. The NMEA sentences will have increased ‎accuracy of 14mm horizontal and 10mm vertical accuracy. The RTCM correction data is most easily ‎obtained over the internet using a free app on your phone (see SW Maps or Lefebvre NTRIP) and ‎sent over Bluetooth to the RTK Facet but RTCM can also be delivered over an external cellular or ‎radio link to a 2nd RTK Facet setup as a base station.‎

In Base mode the device will enter Base Station mode. This is used when the device is mounted to ‎a fixed position (like a tripod or roof). The RTK Facet will initiate a survey. After 60 to 120 seconds ‎the survey will complete and the RTK Facet will begin transmitting RTCM correction data out the ‎radio port. A base is often used in conjunction with a second RTK Facet (or RTK Surveyor) unit set ‎to 'Rover' to obtain the 14mm accuracy. Said differently, the Base sits still and sends correction data ‎to the Rover so that the Rover can output a really accurate position. You’ll create an RTK system ‎without any other setup.‎

Power

startup_4

RTK Facet startup display with firmware version number

The Power button turns on and off the unit. Press and hold the power button until the display ‎illuminates. Press and hold the power button at any time to turn the unit off.‎

buttons_5

RTK Facet showing the battery level

The RTK Facet has a large, built-in 6000mAh lithium polymer battery that will enable over 25 hours ‎of field use between charging. If more time is needed a common USB power bank can be attached ‎boosting the field time to any amount needed.‎

Charge LED

charge_6

The Charge LED is located on the front face. It will illuminate any time there is an external power ‎source and will turn off when the internal battery is charged. With the unit fully powered down, ‎charging takes approximately 6 hours from a 1A wall supply or 12 hours from a standard USB port. ‎The RTK Facet can run while being charged but it increases the charge time. Using an external ‎USB battery bank to run the device for extended periods or running the device on a permanent wall ‎power source is supported.‎

Connectors

connectors_7

The SparkFun RTK Facet connectors shown with the dust cover removed

There are a variety of connectors protected by a dust flap.‎

USB:‎

usb_8

This USB C connector is used for three purposes:‎

  • Charging the device
  • Configuring the RTK Facet, and reprogramming the ESP32‎
  • Directly configuring and inspecting the ZED-F9P GNSS receiver

There is a USB hub built into the RTK Facet. When you attach the device to your computer it will ‎enumerate as two COM ports.‎

ports_9

In the image above, the USB Serial Device is the ZED-F9P and the USB-SERIAL CH340 is the ‎ESP32.‎

Don't See 'USB-Serial CH340'? If you've never connected a CH340 device to your computer ‎before, you may need to install drivers for the USB-to-serial converter. Check out our section ‎on "How to Install CH340 Drivers" for help with the installation.‎

Don't See 'USB Serial Device'? The first time a u-blox module is connected to a computer you ‎may need to adjust the COM driver. Check out our section on "How to Install u-blox Drivers" for ‎help with the installation.‎

Configuring the RTK Facet can be done over the USB-Serial CH340 COM port via serial text menu. ‎Various debug messages are printed to this port at 115200bps, and a serial menu can be opened to ‎configure advanced settings.‎

Configuring the ZED-F9P can be configured over the USB Serial Device port using u-center. It’s ‎not necessary in normal operation but is handy for tailoring the receiver to specific applications. As ‎an added perk, the ZED-F9P can be detected automatically by some mobile phones and tablets. If ‎desired, the receiver can be directly connected to a compatible phone or tablet removing the need ‎for a Bluetooth connection.‎

Radio:‎

radio_10

This port is used when an external cellular or radio link is needed. This port is not used if you ‎transfer RTCM from your phone to the RTK Facet over Bluetooth.‎

This 4-pin JST connector can be used to allow RTCM correction data to flow into the device when it ‎is acting as a rover or out of the device when it is acting as a base. The connector is a 4-pin locking ‎‎1.25mm JST SMD connector (part#: SM04B-GHS-TB, mating connector part#: GHR-04V-S). The ‎RTK Facet comes with a cable to interface to this connector but additional cables can be purchased. ‎You will most likely connect this port to one of our Serial Telemetry Radios if you don’t have access ‎to a correction source on the internet. The pinout is 3.5-5.5V / TX / RX / GND from left to right as ‎pictured. 3.5V to 5.5V is provided by this connector to power a radio with a voltage that depends on ‎the power source. If USB is connected to the RTK Facet, then voltage on this port will be 5V (+/-‎‎10%). If running off of the internal battery, then voltage on this port will vary with the battery voltage ‎‎(3.5V to 4.2V depending on the state of charge). This port is capable of sourcing up to 600mA and ‎is protected by a PTC (resettable fuse). This port should not be connected to a power source.‎

Data:‎

data_11

This port is used when an external system is connected such as a rover, car, timing equipment, ‎camera triggers, etc. This port is not used if you transfer NMEA positional data to your phone from ‎the RTK Facet over Bluetooth.‎

This 4-pin JST connector is used to output and input a variety of data to the RTK Facet. The ‎connector is a 4-pin locking 1.25mm JST SMD connector (part#: SM04B-GHS-TB, mating ‎connector part#: GHR-04V-S). The RTK Facet comes with a cable to interface to this connector ‎but additional cables can be purchased.‎

Internally the Data connector is connected to a digital mux allowing one of four software selectable ‎setups:‎

  • NMEA - The TX pin outputs any enabled messages (NMEA, UBX, and RTCM) at a default of ‎‎460,800bps (configurable 9600 to 921600bps). The RX pin can receive RTCM for RTK and ‎can also receive UBX configuration commands if desired.‎
  • PPS/Trigger - The TX pin outputs the pulse-per-second signal that is accurate to 30ns RMS. ‎The RX pin is connected to the EXTINT pin on the ZED-F9P allowing for events to be ‎measured with incredibly accurate nano-second resolution. Useful for things like audio ‎triangulation. See the Timemark section of the ZED-F9P integration for more information.
  • I2C - The TX pin operates as SCL, RX pin as SDA on the I2C bus. This allows additional ‎sensors to be connected to the I2C bus.‎
  • GPIO - The TX pin operates as a DAC capable GPIO on the ESP32. The RX pin operates as a ‎ADC capable input on the ESP32. This is useful for custom applications.‎

Most applications do not need to utilize this port and will send the NMEA position data over ‎Bluetooth. This port can be useful for sending position data to an embedded microcontroller or ‎single board computer. The pinout is 3.3V / TX / RX / GND. 3.3V from left to right as pictured, ‎which is provided by this connector to power a remote device if needed. While the port is capable ‎of sourcing up to 600mA, we do not recommend more than 300mA. This port should not be ‎connected to a power source.‎

microSD:‎

microsd_12

This slot accepts standard microSD cards up to 32GB formatted for FAT16 or FAT32. Logging any ‎of 67 messages at up to 4Hz is supported for all constellations.‎

The following 67 messages are supported for logging:‎

messages_75

Qwiic:‎

qwiic_13

This 4-pin Qwiic connector exposes the I2C bus of the ESP32 WROOM module. Currently, there is ‎no firmware support for adding I2C devices to the RTK Facet, but support may be added in the ‎future.‎

Antenna:‎

antenna_14

It's built in! Housed under the dome of the RTK Facet is a surveyor grade L1/L2 antenna. It is the ‎same element found within our GNSS Multi-Band L1/L2 Surveying Antenna. Its datasheet is ‎available here.‎

grade_15

SparkFun RTK Facet Antenna Reference Points

The built-in antenna has an ARP of 61.4mm from the base to the measuring point of the L1 antenna ‎and an ARP of 57.4mm to the measuring point of the L2 antenna.‎

Power

power_16

RTK Facet Display showing three battery bars

The RTK Facet has a built in 6000mAh battery and consumes approximately 240mA worst case with ‎Bluetooth connection active and GNSS fully tracking. This will allow for around 25 hours of use in ‎the field. If more time is needed in the field a standard USB power bank can be attached. If a ‎‎10,000mAh bank is attached one can estimate 56 hours of run time assuming 25% is lost to ‎efficiencies of the power bank and charge circuit within RTK Facet.‎

The RTK Facet can be charged from any USB port or adapter. The charge circuit is rated for ‎‎1000mA so USB 2.0 ports will charge at 500mA and USB 3.0+ ports will charge at 1A.‎

To quickly view the state of charge, turn on the unit. The battery icon will indicate the following:‎

  • ‎3 bars: >75% capacity remain
  • ‎2 bars: >50% capacity remain
  • ‎1 bar: >25% capacity remain
  • ‎0 bars: <25% capacity remain

Hardware Overview - Advanced Features

hardware_17

The boards that make up the RTK Facet

The RTK Facet is a hacker’s delight. Under the hood of the RTK Facet is an ESP32 WROOM ‎connected to a ZED-F9P as well as some peripheral hardware (LiPo fuel gauge, microSD, etc). It is ‎programmed in Arduino and can be tailored by the end user to fit their needs.‎

scheme_18

Schematic‎

facet

The Facet with three sub boards, the battery, and antenna

ZED-F9P GNSS Receiver

The ZED-F9P GNSS receiver is configured over I2C and uses two UARTs to output NMEA (UART1) ‎and input/output RTCM (UART2). In general, the ESP32 harvests the data from the ZED-F9Ps ‎UART1 for Bluetooth transmission and logging to SD.‎

ESP32‎

The ESP32 uses a standard USB to serial conversion IC (CH340) to program the device. You can ‎use the ESP32 core for Arduino or Espressif’s IoT Development Framework (IDF).‎

The CH340 automatically resets and puts the ESP32 into bootload mode as needed. However, the ‎reset pin of the ESP32 is brought out to an external 2-pin 0.1” footprint if an external reset button is ‎needed.‎

Note: If you've never connected a CH340 device to your computer before, you may need to install ‎drivers for the USB-to-serial converter. Check out our section on "How to Install CH340 Drivers" for ‎help with the installation.‎

LiPo and Charging

The RTK Facet houses a standard 6000mAh 3.7V LiPo. The charge circuit is set to 1A so with an ‎appropriate power source, charging an empty battery should take a little over six hours. USB C on ‎the RTK Facet is configured for 2A draw so if the user attaches to a USB 3.0 port, the charge ‎circuit should operate near the 1A max. If a user attaches to a USB 2.0 port, the charge circuit will ‎operate at 500mA. This charge circuit also incorporates a 42C upper temperature cutoff to insure ‎the LiPo cannot be charged in dangerous conditions.‎

Fuel Gauge and Accelerometer

The MAX17048 is a simple to use fuel gauge IC that gives the user a statement of charge (SOC) ‎that is basically a 0 to 100% report. The MAX17048 has a sophisticated algorithm to figure out what ‎the SOC is based on cell voltage that is beyond the scope of this tutorial but for our purposes, ‎allows us to reliably view the battery level when the unit is on.‎

The RTK Facet also incorporates a the LIS2DH12 triple-axis accelerometer to aid in leveling in the ‎field.‎

Qwiic

An internal Qwiic connector is included in the unit for future expansion. Currently the stock RTK ‎Facet does not support any additional Qwiic sensors or display but users may add support for their ‎own application.‎

microSD

A microSD socket is situated on the ESP32 SPI bus. Any microSD up to 32GB is supported. RTK ‎Facet supports RAWX and NMEA logging to the SD card. Max logging time can also be set (default ‎is 24 hours) to avoid multi-gigabyte text files. For more information about RAWX and doing PPP ‎please see this tutorial.‎

Data Port and Digital Mux

The 74HC4052 analog mux controls which digital signals route to the external Data port. This allows ‎a variety of custom end user applications. The most interesting of which is event logging. Because ‎the ZED-F9P has microsecond accuracy of the incoming digital signal, custom firmware can be ‎created to triangulate an event based on the receiver's position and the time delay between multiple ‎captured events. Currently, TM2 event logging is supported.‎

Additionally, this mux can be configured to connect ESP pin 26 (DAC capable) and pin 39 (ADC ‎capable) for end user custom applications.‎

Hardware Assembly

The RTK Facet was designed to work with low-cost, off the shelf equipment. Here we’ll describe ‎how to assemble a Rover and Base.‎

Surveying (Rover Mode)‎

survey_20

Basic RTK Facet Rover setup with RTCM over Bluetooth

Shown above is the most common RTK Rover setup. A monopole designed for cameras is used. ‎The ¼” camera thread of the monopole is adapted to ⅝” 11-TPI and the RTK Facet is mounted on ‎top. No radio is needed because RTCM correction data is provided by a phone over Bluetooth.‎

If you’re shopping for a monopole (aka monopod), get one that is 65” in length or greater to ensure ‎that the antenna will be above your head. We’ve had good luck with the Amazon Basics brand.‎

If you prefer to mount your tablet or cell phone to the monopole be sure to get a clamp that is ‎compatible with the diameter of your monopole and has a knob to increase clamp pressure. Our ‎monopole is 27mm in diameter so a device clamp would need to be able to handle that diameter.‎

mount_21

‎2nd most common setup with a 915MHz Radio providing RTCM‎

If you are receiving RTCM correction data over a radio link it’s recommended that you attach a radio ‎to the bottom of the RTK Facet.‎

link

Picture hanging strips from 3M make a nice semi-permanent mount. Plug the 4-pin to 6-pin JST ‎cable included with the RTK Facet from the Radio port to either of the Serial Telemetry ‎Radios (shipped in pairs). We really love these radios because they are paired out of the box, either ‎can send or receive (so it doesn't matter which radio is attached to base or rover) and they have ‎remarkable range. We achieved over a mile range (nearly 1.5 miles or 2.4km) with the 100mW ‎radios and a big 915MHz antenna on the base (see this tutorial for more info).‎

Temporary Base

A temporary or mobile base setup is needed when you are in the field too far away from a ‎correction source and/or cellular reception. A 2nd RTK Facet is mounted to a tripod and it is ‎configured to complete a survey-in (aka, locate itself), then begin broadcasting RTCM correction ‎data. This data (~1000 bytes a second) is sent to the user's connected radio of choice. For our ‎purposes, the 915MHz 100mW telemetry radios are used because they provide what is basically a ‎serial cable between our base and rover.‎

base_23

Temporary RTK Facet Base setup

Any tripod with a ¼” camera thread will work. The Amazon Basics tripod works well enough but is a ‎bit light weight and rickety. The ¼” camera thread is adapted to ⅝” 11-TPI and the RTK Facet is ‎attached on top.‎

Once the base has been setup with a clear view of the sky, turn on the RTK Facet. Once on, press ‎the Setup button to put the device in Base mode. The display will show the Survey-In screen for ‎‎60-120 seconds. Once the survey is complete the display will show the 'Xmitting' display and begin ‎producing RTCM correction data. You can verify this by viewing the LEDs on the telemetry radio (a ‎small red LED will blink when serial data is received from the RTK Facet). The RTK Facet is ‎designed to follow the u-blox recommended survey-in of 60s and a mean 3D standard deviation of ‎‎5m of all fixes. If a survey fails to achieve these requirements it will auto-restart after 10 minutes.‎

Note: A mobile base station works well for quick trips to the field. However, the survey-in method is ‎not recommended for the highest accuracy measurements because the positional accuracy of the ‎base will directly translate to the accuracy of the rover. Said differently, if your base's calculated ‎position is off by 100cm, so will every reading your rover makes. If you’re looking for maximum ‎accuracy consider installing a static base with fixed antenna. We were able to pinpoint the antenna ‎on the top of SparkFun with an incredible accuracy +/-2mm of accuracy using PPP!‎

Bluetooth and NTRIP

The RTK Facet transmits full NMEA sentences over Bluetooth serial port profile (SPP) at 4Hz and ‎‎115200bps. This means that nearly any GIS application that can receive NMEA data over serial port ‎‎(almost all do) can be used with the RTK Facet. As long as your device can open a serial port over ‎Bluetooth (also known as SPP) your device can retrieve industry standard NMEA positional data. ‎The following steps show how to use SW Maps, but the same steps can be followed to connect any ‎serial port-based GIS application.‎

swmaps

SW Maps with RTK Fix

The best mobile app that we’ve found is the powerful, free, and easy to use SW Maps by Softwel. ‎You’ll need an Android phone or tablet with Bluetooth. What makes SW Maps truly powerful is its ‎built-in NTRIP client. This is a fancy way of saying that we’ll be showing you how to get RTCM ‎correction data over the cellular network. If you’re using a serial radio for your correction data, you ‎can skip the later section.‎

address_25

MAC address 5522 is shown in the upper left corner

Note: 5522 is the last four digits of your unit's MAC address and will be unique to the device in ‎front of you. This is helpful in case there are multiple RTK Facets within Bluetooth range. The MAC ‎address for an RTK Facet is shown in the upper left corner of the display.‎

display_26

Pairing with the 'Facet Rover-37E2' over Bluetooth‎

When powered on, the RTK Facet will broadcast itself as either 'Facet Rover-37E2' or 'Facet Base-‎‎37E2' depending on which state it is in. Discover and pair with this device from your phone or tablet. ‎Once paired, open SW Maps.‎

display_27

List of available Bluetooth devices

With SW Maps open, click on the blue button in the upper left corner to open the main menu. ‎Select Bluetooth GNSS. This will display a list of available Bluetooth devices. Select the Rover or ‎Base you just paired with. For the Instrument Model drop down select 'SparkFun RTK Surveyor' or ‎‎'u-blox RTK' (rather than just 'u-blox'). This is important and will enable the use of NTRIP.‎

If you are taking height measurements (altitude) in addition to position (lat/long) be sure to enter the ‎height of your antenna off the ground including the ARP offset of the RTK Facet.‎

offset

SparkFun RTK Facet Antenna Reference Point

The built-in antenna has an ARP of 61.4mm from the base to the measuring point of the L1 antenna ‎and an ARP of 57.4mm to the measuring point of the L2 antenna. So, if your monopod is 67 inches ‎long fully extended, the antenna offset is 1701.8mm + 61.4mm = 1763mm. You would want to enter ‎‎1.763m into SW Maps to get accurate altitude of the point being measured on the ground.‎

Click on 'CONNECT' to open a Bluetooth connection. Assuming this process takes a few seconds, ‎you should immediately have a location fix.‎

Next, we need to send RTCM correction data back to the RTK Facet so that it can improve its fix ‎accuracy. You can either provide this from the phone or you can use your own radio backhaul (via ‎‎915MHz serial radios, cellular, LoRa, etc). We will describe in detail the use of NTRIP and your ‎cellular phone because we find it's the easiest and fastest to get setup.‎

setup

NTRIP Connection - Not there? Be sure to select 'SparkFun RTK Surveyor' or 'u-blox RTK' ‎instrument

This is the amazing power of RTK Facet and SW Maps. Your phone can be the radio link! From the ‎main SW Maps menu select NTRIP Client. Not there? Be sure to select 'SparkFun RTK Surveyor' ‎or 'u-blox RTK' instrument when connecting. Disconnect and change the instrument choice to ‎enable the NTRIP Connection option.‎

option

Connecting to an NTRIP caster

Enter your NTRIP caster credentials and click connect. You will see bytes begin to transfer from ‎your phone to the RTK Facet. Within a few seconds the RTK Facet will go from ~300mm accuracy ‎to 14mm. Pretty nifty, no?‎

What's an NTRIP caster? In a nutshell, it's a server that is sending out correction data every second. ‎There are thousands of sites around the globe that calculate the perturbations in the ionosphere ‎and troposphere that decrease the accuracy of GNSS accuracy. Once the inaccuracies are known, ‎correction values are encoded into data packets in the RTCM format. You, the user, don't need to ‎know how to decode or deal with RTCM, you simply need to get RTCM from a source within 10km ‎of your location into the RTK Facet. The NTRIP client logs into the server (also known as the ‎NTRIP caster) and grabs that data, every second, and sends it over Bluetooth to the RTK Facet.‎

Don't have access to an NTRIP caster? We have a tutorial for that! Checkout How to Build a DIY ‎GNSS Reference Station. If you'd just like a service, Syklark provides RTCM coverage for $49 a ‎month (as of writing) and is extremely easy to setup and use. Remember, you can always use a 2nd ‎RTK Facet in Base mode to provide RTCM correction data, but it will less accurate than a fixed ‎position caster.‎

Once you have a full RTK fix you'll notice the location bubble in SW Maps turns to green. Just for ‎fun, rock your rover monopole back and forth on a fixed point. You'll see your location accurately ‎reflected in SW Maps. Millimeter location precision is a truly staggering thing.‎

Display

The RTK Facet has a 0.96" high-contrast OLED display. While small, it packs various situational data ‎that can be helpful in the field. We will walk you through each display.‎

Power On/Off

power_32

RTK Facet Startup and Shutdown Screens

Press and hold the power button until the display illuminates to turn on the device. Similarly, press ‎and hold the power button to turn off the device.‎

Rover Fix

rover_33

Rover with location fix

Upon power up the device will enter either Rover mode or Base mode. Above, the Rover mode is ‎displayed.‎

  • MAC: The MAC address of the internal Bluetooth module. This is helpful knowledge when ‎attempting to connect to the device from your phone. This will change to a Bluetooth symbol ‎once connected.
  • HPA: Horizontal positional accuracy is an estimate of how accurate the current positional ‎readings are. This number will decrease rapidly after first power up and settle around 0.3m ‎depending on your antenna and view of the sky. When RTK fix is achieved this icon will ‎change to a double circle and the HPA number will decrease even further to as low as 0.014m.‎
  • SIV: Satellites in view is the number of satellites used for the fix calculation. This symbol will ‎blink before a location fix is generated and become solid when the device has a good location ‎fix. SIV is a good indicator of how good of a view the antenna has. This number will vary but ‎anything above 10 is adequate. We've seen as high as 31.‎
  • Model: This icon will change depending on the selected dynamic model: Portable (default) ‎Pedestrian, Sea, Bike, Stationary, etc.
  • Log: This icon will remain animated while the log file is increasing. This is a good visual ‎indication that you have an SD card inserted and RTK Facet can successfully record to it.‎

Rover RTK Fix

fix

Rover with RTK Fix and Bluetooth connected

Once NTRIP is enabled on your phone or RTCM data is being streamed into the Radio port the ‎device will gain an RTK Fix. You should see the HPA drop to 14mm with a double circle bullseye as ‎shown above.‎

Base Survey-In

base_35

RTK Facet in Survey-In Mode

Pressing the Setup button will change the device to Base mode. If the device is configured ‎for Survey-In base mode, a flag icon will be shown, and the survey will begin. The mean standard ‎deviation will be shown as well as the time elapsed. For most Survey-In setups, the survey will ‎complete when both 60 seconds have elapsed and a mean of 5m or less is obtained.‎

Base Transmitting

transmit_36

RTK Facet in Fixed Transmit Mode

Once the survey-in is complete the device enters RTCM Transmit mode. The number of RTCM ‎transmissions is displayed. By default, this is one per second.‎

The Fixed Base mode is similar but uses a structure icon (shown above) to indicate a fixed base.‎

Base Transmitting NTRIP

If the NTRIP server is enabled the device will first attempt to connect over Wi-Fi. The Wi-Fi icon will ‎blink until a Wi-Fi connection is obtained. If the Wi-Fi icon continually blinks be sure to check your ‎SSID and PW for the local Wi-Fi.‎

server_37

RTK Facet in Transmit Mode with NTRIP

Once Wi-Fi connects the device will attempt to connect to the NTRIP mount point. Once successful ‎the display will show 'Casting' along with a solid Wi-Fi icon. The number of successful RTCM ‎transmissions will increase every second.‎

Note: During NTRIP transmission Wi-Fi is turned on and Bluetooth is turned off. You should not ‎need to know the location information of the base so Bluetooth should not be needed. If necessary, ‎USB can be connected to the USB port to view detailed location and ZED-F9P configuration ‎information.‎

Output to an Embedded System

Many applications using the RTK Facet will use a 3rd party GIS application or mobile app like SW ‎Maps and receive the data over Bluetooth. Alternatively, for embedded applications a user can ‎obtain the NMEA data over serial directly.‎

For this example, we will connect the output from the Data port to a USB to Serial adapter so that ‎we can view the serial data.‎

serial_38

Connect the included 4-pin JST to breadboard cable to the Data port. The cable has the following ‎pinout:‎

  • Red - 3.3V‎
  • Green - TX (output from RTK Facet)
  • Orange - RX (input to RTK Facet)
  • Black - GND

Open a terminal at 115200bps and you should see NMEA sentences:‎

com_39

The Data connector on the RTK Facet is a 4-pin locking 1.25mm JST SMD connector (part#: ‎SM04B-GHS-TB, mating connector part#: GHR-04V-S). 3.3V is provided by this connector to ‎power a remote device if needed. While the port is capable of sourcing up to 600mA, we do not ‎recommend more than 300mA. This port should not be connected to a power source, so if your ‎embedded device has its own power do not connect the red wire.‎

Warning! All data in and out of RTK Facet is 3.3V. Exposing these pins to 5V logic will damage ‎the device.‎

The parsing of NMEA sentences is straightforward and left to the reader. There are ample NMEA ‎parsing libraries available in C++, Arduino, python, and many more languages.‎

System Configuration

The RTK Facet is an exceptional GNSS receiver out-of-box and can be used with little or no ‎configuration. The following information is for advanced setups including advanced survey-in ‎scenarios and post processing RAWX data.‎

All the following settings are stored both on internal memory and an SD card if one is detected. The ‎RTK Facet will load the latest settings at each power on. If there is a discrepancy between the ‎internal settings and a settings file then the settings file will be used. This allows a group of RTK ‎Facets to be identically configured using one 'golden' settings file loaded onto an SD card.‎

There are three ways to configure the RTK Facet.‎

System Configuration - Wi-Fi

Starting with firmware v1.7, Wi-Fi based configuration is supported and recommended. For more ‎information about updating the firmware on your device, please see Firmware Updates and ‎Customization.‎

The RTK device will present a webpage that is viewable from either a desktop/laptop with Wi-Fi or a ‎cell phone. For advanced configurations, a desktop is recommended. For quick in-field changes, a ‎cell phone works great.‎

web_40

Desktop vs Phone display size configuration

config_41

Device ready for cellphone configuration

To get into Wi-Fi configuration follow these steps:‎‎

  1. Power on the RTK Facet
  2. Once the device has started press the Setup button repeatedly until the Config menu is ‎highlighted
  3. The RTK Facet will blink a Wi-Fi icon indicating it is waiting for incoming connections
  4. Connect to Wi-Fi network named ‘RTK Config’
  5. Open a browser (Chrome is preferred) and type 192.168.4.1 into the address bar

browser_42

The Wi-Fi network RTK Config as seen from a cellphone

Note: Upon connecting, your phone may warn you that this Wi-Fi network has no internet. That's ok. ‎Stay connected to the network and open a browser.‎

note_43

Connected to the RTK Wi-Fi Setup Page

Clicking on a category 'carrot' will open or close that section. Clicking on an ‘i’ will give you a brief ‎description of the options within that section.‎

category_44

This unit has firmware version 1.8 and a ZED-F9P receiver

Please note that the firmware for the RTK device and the firmware for the ZED receiver are shown ‎at the top of the page. This can be helpful when troubleshooting or requesting new features.‎

GNSS Configuration

The ZED-F9P module used in the Facet is immensely configurable. The RTK Facet will, by default, ‎put the ZED-F9P into the most common configuration for rover/base RTK for use with SW Maps. ‎The GNSS Receiver menu allows a user to enable/disable various sentences and options for the ‎ZED-F9P:‎

  • Measurement Frequency
  • Dynamic Model
  • Constellation Support
  • Messages (NMEA Sentences)‎

gnss_45

The most common settings on the RTK Facet

Measurement Frequency

By default, the RTK Facet outputs a solution or location 'fix' 4 times a second. This can be ‎increased but anything above 4Hz is not guaranteed to be stable. The Bluetooth buffer can quickly ‎become overwhelmed and/or if datalogging is enabled the system can become bogged down with ‎SD write delays. Decreasing to 1Hz is completely acceptable and will reduce the log sizes ‎significantly.‎

Note: When in base mode, measurement frequency is set to 1Hz. This is because RTK ‎transmission does not benefit from faster updates, nor does logging of RAWX for PPP.‎

Dynamic Model

The ZED-F9P uses various models to augment the location fix. Select the model appropriate for ‎your particular application for best performance. The default is Portable.‎

Constellation Support

The ZED-F9P is capable of tracking 184 channels across four constellations and two bands (L1/L2) ‎including GPS (USA), Galileo (EU), BeiDou (China), and GLONASS (Russia). SBAS (satellite-based ‎augmentation system) is also supported. By fault, all constellations are used. Some users may want ‎to study, log, or monitor a subset. Disabling a constellation will cause the ZED to ignore those ‎signals when calculating a location fix.‎

Messages

The ZED-F9P supports more than 70 different messages. Some messages, like NMEA, output ‎location information. Other messages report the internal status of the ZED-F9P. Please see ‎the ZED-F9P Integration Manual for more information about specific message types.‎

Each message rate input controls which messages are disabled (0) and how often the message is ‎reported (1 = one message reported per 1 fix, 5 = one report every 5 fixes). The message rate ‎range is 0 to 20.‎

messages_46

Message rate configuration

The two large buttons at the top allow you to quickly enable the defaults or logging defaults.‎

NMEA Defaults: By default, the RTK Facet outputs 5 NMEA sentences allowing for connectivity to ‎most GIS applications. These include GxGGA, GxGSA, GxGST, GxGSV, and GxRMC.‎

Logging Defaults: If you are doing post processing (PPP) for base station creation or study, it is ‎handy to record RAWX and SFRBX messages in addition to the 5 NMEA message. Pressing this ‎button will set the messages accordingly.‎

Note: All enabled messages are broadcast over Bluetooth and logged (if a microSD card is present ‎and enabled).‎

Base Configuration

base_47

Controlling the type of Base

Survey-In

By default, the RTK Facet will enter 'Survey-In' mode when a user presses the POWER/SETUP ‎button and selects 'Base'. The unit will monitor all constellations until both the observation time and ‎required mean 3D standard deviation is met. u-blox recommends 60s and 5m but these are ‎configurable. Please know that setting very long observation times (people have tried 24 hours) and ‎very small means (1m or less) really doesn't get you much. Survey-in is limited in its precision. It's ‎quick (1 minute!) but it's much less precise than a PPP setup.‎

Fixed Base

A fixed base is where the precise location of a device is known. This is either obtained via PPP or ‎by locating a device on a survey marker. Once ‘Fixed’ is selected a user is able to enter the known ‎position of the antenna in either ECEF or Geographic coordinates. Whenever a user selects 'Base' ‎the GNSS receiver will immediately go into base mode with these coordinates and nearly ‎immediately begin outputting RTCM correction data.‎

NTRIP Server

server_48

The RTK Facet can be configured to transmit its RTCM directly over WiFi to the user's mountpoint. ‎This eliminates the need for a radio link or a cell phone link.‎

Once the NTRIP server is enabled you will need a handful of credentials:‎

  • Local WiFi SSID and password
  • A casting service and port such as RTK2Go or Emlid (the port is almost always 2101)
  • A mount point and password

With these credentials set, RTK Facet will attempt to connect to Wi-Fi, then connect to your caster ‎of choice, and then begin transmitting the RTCM data over Wi-Fi. We tried to make it as easy as ‎possible. Every second a few hundred bytes, up to ~2k, will be transmitted to your mount point. Any ‎rover can then connect to this mount point and gain its RTCM correction data over a cellular or ‎internet connection.‎

Ports Configuration

ports_49

Setting the baud rates of the two available external ports

By default, the Radio port is set to 57600bps to match the Serial Telemetry Radios that are ‎recommended to be used with the RTK Facet (it is a plug and play solution). This can be set from ‎‎4800bps to 921600bps.‎

The Data port on the RTK Facet is very flexible. Internally the Data connector is connected to a ‎digital mux allowing one of four software selectable setups. By default, the Data port will be ‎connected to the UART1 of the ZED-F9P and output any messages via serial.‎

  • NMEA - The TX pin outputs any enabled messages (NMEA, UBX, and RTCM) at a default of ‎‎460,800bps (configurable 9600 to 921600bps). The RX pin can receive RTCM for RTK and ‎can also receive UBX configuration commands if desired.‎
  • PPS/Trigger - The TX pin outputs the pulse-per-second signal that is accurate to 30ns RMS. ‎The RX pin is connected to the EXTINT pin on the ZED-F9P allowing for events to be ‎measured with incredibly accurate nano-second resolution. Useful for things like audio ‎triangulation. See the Timemark section of the ZED-F9P Integration Manual for more ‎information.‎
  • I2C - The TX pin operates as SCL, RX pin as SDA on the I2C bus. This allows additional ‎sensors to be connected to the I2C bus.‎
  • GPIO - The TX pin operates as a DAC capable GPIO on the ESP32. The RX pin operates as a ‎ADC capable input on the ESP32. This is useful for custom applications.‎

By default, the Data port is set to NMEA and 460800bps. It is configurable from 4800bps to ‎‎921600bps. The 460800bps baud rate was chosen to support applications where a large number of ‎messages are enabled, and a large amount of data is being sent. If you need to decrease the baud ‎rate to 115200bps or other but be sure to monitor the MON-COMM message within u-center for ‎buffer overruns. A baud rate of 115200bps and the NMEA+RXM default configuration at ‎‎4Hz will cause buffer overruns.‎

buffer_50

Monitoring the com ports on the ZED-F9P

If you must run the data port at lower than 460800bps, and you need to enable a large number of ‎messages and/or increase the fix frequency beyond 4Hz, be sure to verify that UART1 usage stays ‎below 99%. The image above shows the UART1 becoming overwhelmed because the ZED cannot ‎transmit at 115200bps fast enough.‎

Most applications do not need to plug anything into the Data port. Most users will get their NMEA ‎position data over Bluetooth. However, this port can be useful for sending position data to an ‎embedded microcontroller or single board computer. The pinout is 3.3V / TX / RX / GND. 3.3V is ‎provided by this connector to power a remote device if needed. While the port is capable of ‎sourcing up to 600mA, we do not recommend more than 300mA. This port should not be ‎connected to a power source.‎

System Configuration

system_51

Advanced system settings

Log to SD

If a microSD card is detected, all messages will be logged. Once the max log time is achieved, ‎logging will cease. This is useful for limiting long term, overnight, static surveys to a certain length ‎of time. Default: 1440 minutes (24 hours). Limit: 1 to 2880 minutes.‎

Enable Factory Defaults

Factory Defaults will erase any user settings and reset the internal receiver to stock settings. Any ‎logs on SD are maintained. To prevent accidental reset the checkbox must first be checked before ‎the button is pressed.‎

SD Card

Various stats for the SD card are shown. If valid firmware is detected, available firmware files will be ‎shown. The user must select the firmware they would like to update to. To prevent accidental ‎updates the checkbox must first be checked before the button is pressed.‎

Add Firmware

New firmware may be uploaded via Wi-Fi to the SD card. Firmware is only loaded to the SD card ‎and must then be loaded to the unit.‎

Reset Counter

A counter is displayed indicating the number of non-power-on-resets since the last power on.‎

Saving and Exit

saving_52

Once settings are input, please press ‘Save Configuration’. This will validate any settings, show any ‎errors that need adjustment, and send the settings to the unit. The page will remain active until the ‎user presses ‘Exit to Rover Mode’ at which point the unit will exit Wi-Fi configuration and return to ‎standard Rover mode.‎

System Configuration - Serial Terminal

Main Menu

To configure the RTK Facet attach a USB C cable to the USB connector. Open a terminal window at ‎‎115200bps; you should see various status messages every second. Press any key to open the ‎configuration menu. Not sure how to use a terminal? Checkout our Serial Terminal Basics tutorial.‎

menu_53

Main Menu

Pressing any button will display the Main menu. The Main menu will display the current firmware ‎version and the Bluetooth broadcast name. Note: When powered on, the RTK Facet will broadcast ‎itself as either Facet Rover-XXXX or Facet Base-XXXX depending on which state it is in.‎

The menus will timeout after 15 seconds of inactivity, so if you do not press a key the RTK Facet ‎will return to reporting status messages after 15 seconds.‎

Configure GNSS Receiver

Pressing 1 will bring up the GNSS Receiver configuration menu. The ZED-F9P is immensely ‎configurable. The RTK Facet will, by default, put the ZED-F9P into the most common configuration ‎for rover/base RTK for use with SW Maps.‎

The GNSS Receiver menu allows a user to change the report rate, dynamic model, and select ‎which constellations should be used for fix calculations.‎

menu_54

GNSS menu showing measurement rates and dynamic model

Measurement Frequency can be set by either Hz or by seconds between measurements. Some ‎users need many measurements per second; the RTK Facet supports up to 20Hz with RTK ‎enabled. Some users are doing very long static surveys that require many seconds between ‎measurements; RTK Facet supports up to 8255 seconds (137 minutes) between readings.‎

Note: When in base mode, measurement frequency is set to 1Hz. This is because RTK ‎transmission does not benefit from faster updates, nor does logging of RAWX for PPP.‎

The Dynamic Model can be changed but it is recommended to leave as Portable. For more ‎information, please refer to the ZED-F9P Integration Manual.‎

model_55

Enable or disable the constellations used for fixes

Constellations Menu: The ZED-F9P is capable of tracking 184 channels across four ‎constellations and two bands (L1/L2) including GPS (USA), Galileo (EU), BeiDou (China), and ‎GLONASS (Russia). SBAS (satellite-based augmentation system) is also supported. By fault, all ‎constellations are used. Some users may want to study, log, or monitor a subset. Disabling a ‎constellation will cause the ZED to ignore those signals when calculating a location fix.‎

Messages Menu

com4_56

The messages configuration menu

From this menu a user can control the output of various NMEA, RTCM, RXM, and other messages. ‎Any enabled message will be broadcast over Bluetooth and recorded to SD (if available).‎

Because of the large number of configurations possible, we provide a few common settings:‎

  • Reset to Surveying Defaults (NMEAx5)
  • Reset to PPP Logging Defaults (NMEAx5 + RXMx2)
  • Turn off all messages
  • Turn on all messages

Reset to Surveying Defaults (NMEAx5) will turn off all messages and enable the following ‎messages:

  • NMEA-GGA, NMEA-SGA, NMEA-GST, NMEA-GSV, NMEA-RMC

These five NMEA sentences are commonly used with SW Maps for general surveying.‎

Reset to PPP Logging Defaults (NMEAx5 + RXMx2) will turn off all messages and enable the ‎following messages:‎

  • NMEA-GGA, NMEA-SGA, NMEA-GST, NMEA-GSV, NMEA-RMC, RXM-RAWX, RXM-SFRBX

These seven sentences are commonly used when logging and doing Precise Point Positioning ‎‎(PPP) or Post Processed Kinematics (PPK). You can read more about PPP here.‎

Turn off all messages will turn off all messages. This is handy for advanced users who need to ‎start from a blank slate.‎

Turn on all messages will turn on all messages. This is a setting used for firmware testing and ‎should not be needed in normal use.‎

turn_57

Configuring the NMEA messages

As mentioned, is the microSD section of the Hardware Overview there are a large number of ‎messages supported. Each message sub menu will present the user with the ability to set the ‎message report rate.‎

Note: The message report rate is the number of fixes between message reports. In the image ‎above, with GSV set to 4, the NMEA GSV message will be produced once every 4 fixes. Because ‎the device defaults to 4Hz fix rate, the GSV message will appear once per second.‎

Base

The RTK Facet can also serve as a correction source, also called a Base. The Base doesn't move ‎and 'knows' where it is so it can calculate the discrepancies between the signals it is receiving and ‎what it should be receiving. These differences are the correction values passed to the Rover so ‎that the Rover can have millimeter level accuracy.‎

There are two types of bases: Surveyed and Fixed. A surveyed base is often a temporary base ‎setup in the field. Called a 'Survey-In', this is less accurate but requires only 60 seconds to ‎complete. The 'Fixed' base is much more accurate but the precise location at which the antenna is ‎located must be known. A fixed base is often a structure with an antenna bolted to the side. Raw ‎satellite signals are gathered for a few hours then processed using Precision Point Position. We ‎have a variety of tutorials that go into depth on these subjects but all you need to know is that the ‎RTK Facet supports both Survey-In and Fixed Base techniques.‎

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.‎

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.‎

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!‎

The Base Menu allows the user to select between Survey-In or Fixed Base setups.‎

select_58

In Survey-In mode, the minimum observation time and Mean 3D Standard Deviation can be set. ‎The defaults are 60s and 5m as directed by u-blox. Don't be fooled; setting the observation time to ‎‎4 hours is not going to significantly improve the accuracy of the survey - use PPP instead.‎

In Fixed mode, the coordinates of the antenna need to be sent. These can be entered in ECEF or ‎Geographic coordinates. Whenever a user enters Base mode by pressing the SETUP button the ‎GNSS receiver will immediately go into base mode with these coordinates and immediately begin ‎outputting RTCM correction data.‎

NTRIP Server

NTRIP is where the real fun begins. The Base needs a method for getting the correction data to the ‎Rover. This can be done using radios but that's limited to a few kilometers at best. If you've got Wi-‎Fi reception, use the internet!‎

Enabling NTRIP will present a handful of new options seen below:‎

enable_59

Settings for the NTRIP Server

This is a new and powerful feature of the RTK Facet. The RTK Facet can be configured to transmit ‎its RTCM directly over Wi-Fi to the user's mountpoint. This eliminates the need for a radio link.‎

Once the NTRIP server is enabled you will need a handful of credentials:‎

  • Local Wi-Fi SSID and password
  • A casting service such as RTK2Go or Emlid (the port is almost always 2101)
  • A mount point and password

transmit_60

NTRIP Server Connected!

With these credentials set, RTK Facet will attempt to connect to Wi-Fi, your caster of choice, and ‎begin transmitting the RTCM data over Wi-Fi. We tried to make it as easy as possible.‎

set_61

Every second a few hundred bytes, up to ~2k, will be transmitted to your mount point.‎

Configure Ports Menu

config_62

Baud rate configuration of Radio and Data ports

By default, the Radio port is set to 57600bps to match the Serial Telemetry Radios that are ‎recommended to be used with the RTK Facet (it is a plug and play solution). This can be set from ‎‎4800bps to 921600bps.‎

By default, the Data port is set to 460800bps and can be configured from 4800bps to 921600bps. ‎The 460800bps baud rate was chosen to support applications where a large number of messages ‎are enabled, and a large amount of data is being sent. If you need to decrease the baud rate to ‎‎115200bps or other but be sure to monitor the MON-COMM message within u-center for buffer ‎overruns. A baud rate of 115200bps and the NMEA+RXM default configuration at 4Hz will cause ‎buffer overruns.‎

overruns_63

Monitoring the com ports on the ZED-F9P

If you must run the data port at lower than 460800bps, and you need to enable a large number of ‎messages and/or increase the fix frequency beyond 4Hz, be sure to verify that UART1 usage stays ‎below 99%. The image above shows the UART1 becoming overwhelmed because the ZED cannot ‎transmit at 115200bps fast enough.‎

The Data port on the RTK Facet is very flexible. It can be configured in four different ways:‎

data_64

Internally the Data connector is connected to a digital mux allowing one of four software selectable ‎setups. By default, the Data port will be connected to the UART1 of the ZED-F9P and output any ‎messages via serial.‎

  • NMEA - The TX pin outputs any enabled messages (NMEA, UBX, and RTCM) at a default of ‎‎460,800bps (configurable 9600 to 921600bps). The RX pin can receive RTCM for RTK and ‎can also receive UBX configuration commands if desired.‎
  • PPS/Trigger - The TX pin outputs the pulse-per-second signal that is accurate to 30ns RMS. ‎The RX pin is connected to the EXTINT pin on the ZED-F9P allowing for events to be ‎measured with incredibly accurate nano-second resolution. Useful for things like audio ‎triangulation. See the Timemark section of the ZED-F9P Integration Manual for more ‎information.
  • I2C - The TX pin operates as SCL, RX pin as SDA on the I2C bus. This allows additional ‎sensors to be connected to the I2C bus.‎
  • GPIO - The TX pin operates as a DAC capable GPIO on the ESP32. The RX pin operates as a ‎ADC capable input on the ESP32. This is useful for custom applications.‎

Most applications do not need to plug anything into the Data port. Most users will get their NMEA ‎position data over Bluetooth. However, this port can be useful for sending position data to an ‎embedded microcontroller or single board computer. The pinout is 3.3V / TX / RX / GND. 3.3V is ‎provided by this connector to power a remote device if needed. While the port is capable of ‎sourcing up to 600mA, we do not recommend more than 300mA. This port should not be ‎connected to a power source.‎

Configure Data Logging Menu

menu_65‎‎

RTK Facet Data Logging Configuration Menu

Pressing 5 will enter the Logging Menu. This menu will report the status of the microSD card. While ‎you can enable logging, you cannot begin logging until a microSD card is inserted. Any FAT16 or ‎FAT32 formatted microSD card up to 32GB will work. We regularly use the SparkX brand 1GB ‎cards but note that these log files can get very large (>500MB) so plan accordingly.

  • Option 1 will enable/disable logging. If logging is enabled, all messages from the ZED-F9P will ‎be recorded to microSD. A log file is created at power on with the ‎format SFE_Facet_YYMMDD_HHMMSS.txt based on current GPS data/time.‎
  • Option 2 allows a user to set the max logging time. This is convenient to determine the ‎location of a fixed antenna or a receiver on a repeatable landmark. Set the RTK Facet to log ‎RAWX data for 10 hours, convert to RINEX, run through an observation processing station ‎and you’ll get the corrected position with <10mm accuracy. Please see the How to Build a DIY ‎GNSS Reference Station tutorial for more information.‎

Note: If you are wanting to log RAWX sentences to create RINEX files useful for post processing ‎the position of the receiver please see the GNSS Configuration Menu. For more information on ‎how to use a RAWX GNSS log to get higher accuracy base location please see the How to Build a ‎DIY GNSS Reference Station tutorial.‎

Configuring ZED-F9P with u-center

Note: Because the ESP32 does considerable configuration of the ZED-F9P at power on it is not ‎recommended to modify the settings of the ZED-F9P. Nothing will break but your changes may be ‎overwritten.‎

The ZED-F9P module can be configured independently using the u-center software from u-blox by ‎connecting a USB cable to the *Config u-blox’ USB C connector. Settings can be saved to the ‎module between power cycles. For more information, please see SparkFun’s Getting Started with ‎u-center by u-blox.‎

System Configuration - Settings File

system_66

SparkFun RTK Facet Settings File

Note: All system configurations can also be done by editing the SFE_Facet_Settings.txt file (shown ‎above) that is created when a microSD card is installed. The settings are clear text but there are no ‎safety guards against setting illegal states. It is not recommended to use this method unless You ‎Know What You're Doing®.‎

Firmware Updates and Customization

The RTK Facet is open source hardware meaning you have total access to ‎the firmware and hardware. Be sure to checkout each repo for the latest firmware and hardware ‎information. But for those who want to jump right in and tweak the firmware, we will discuss various ‎methods.‎

firmware_67

Main Menu showing RTK Firmware v1.8-Oct 7, 2021‎

You can check your firmware by opening the main menu by pressing a key at any time.‎

Updating Firmware from the SD Card

updating_68

Firmware update taking place

From time-to-time SparkFun will release new firmware for the RTK Facet to add and improve ‎functionality. For most users, firmware can be upgraded by loading the appropriate firmware file ‎from the binaries repo folder onto the SD card and bringing up the firmware menu as shown above.‎

The firmware upgrade menu will only display files that have the "RTK_Surveyor_Firmware*.bin" file ‎name format so don't change the file names once loaded onto the SD card. Select the firmware ‎you'd like to load, and the system will proceed to load the new firmware, then reboot.‎

Note: The firmware is called RTK_Surveyor_Firmware_vXX.bin even though this product is called ‎the RTK Facet. We united the different platforms into one. The RTK Firmware runs on all our RTK ‎products.‎

Updating Firmware from Wi-Fi

syscon_69

Advanced system settings

Alternatively, firmware may be uploaded via the Wi-Fi AP interface. Currently, the upload process is ‎limited in speed resulting in upload times of nearly 2 minutes. Once the firmware has been ‎uploaded it will be viewable on the firmware list on the page. To prevent accidental loading ‎the Enable Firmware Update checkbox must first be checked before the button is enabled.‎

Updating Firmware From CLI

The command line interface is also available for more advanced users or users who want to avoid ‎the hassle of swapping out SD cards. You’ll need to download esptool.exe and ‎RTK_Surveyor_Firmware_vXXX_Combined.bin from the repo.

‎Connect a USB A to C cable from your computer to the ESP32 port on the RTK Facet. Now identify ‎the com port the RTK Enumerated at. The easiest way to do this is to open the device manager:‎

cable_70

CH340 is on COM6 as shown in Device Manager

If the COM port is not showing be sure the unit is turned On. If an unknown device is appearing, ‎you’ll need to install drivers for the CH340. Once you know the COM port, open a command prompt ‎‎(Windows button + r then type ‘cmd’).‎

Navigate to the directory that contains the firmware file and esptool.exe. Run the following ‎command:‎

Copy Code
esptool.exe --chip esp32 --port COM6 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0 RTK_Surveyor_Firmware_v19_combined.bin

Note: You will need to modify COM6 to match the serial port that RTK Facet enumerates at.‎

cli_71

Programming via the esptool CLI

Upon completion, your RTK Facet will have the latest and greatest features!‎

Creating Custom Firmware

The RTK Facet is an ESP32 and high-precision GNSS hackers’ delight. Writing custom firmware ‎can be done using Arduino.‎

custom_72

Selecting ESP32 Dev Module

Please see the ESP32 Thing Plus Hookup Guide for information about getting Arduino setup. The ‎only difference is that you will need to select ESP32 Dev Module as your board.‎

setup_73

Arduino Library Links

Pull the entire RTK Firmware repo and open /Firmware/RTK_Surveyor/RTK_Surveyor.ino and ‎Arduino will open all the sub-files in new tabs. We’ve broken the functional pieces into smaller tabs ‎to help users navigate it. There are a handful of libraries that will need to be installed. To make this ‎easier, we’ve placed a link next to each library that will automatically open the Arduino Library ‎Manager with that library ready for download.‎

After connecting a USB C cable to the ESP32 Config connector and selecting the correct COM port ‎you should be able to upload new firmware through the Arduino IDE. Note: The RTK Facet must be ‎turned on for it to enumerate as a COM port.‎

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 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.

CREATE NEW FORUM ACCOUNT     LOG INTO SPARKFUN FORUMS

Resources and Going Further

We hope you enjoy using the RTK Facet as much as we have!‎

Here are the pertinent technical documents for the RTK Facet:‎

制造商零件编号 CAB-15425
CBL USB2.0 A PLUG TO C PLG 2.62'
SparkFun Electronics
制造商零件编号 CAB-16905
CBL USB2.0 C PLUG TO C PLG 3.28'
SparkFun Electronics
制造商零件编号 GPS-16481
GPS-RTK-SMA ZED-F9P BREAKOUT
SparkFun Electronics
制造商零件编号 WRL-15663
SPARKFUN THING PLUS ESP32 WROOM
SparkFun Electronics
制造商零件编号 PRT-17546
1/4" TO 5/8" ANTENNA THREAD ADAP
SparkFun Electronics
制造商零件编号 DEV-15096
SPARKFUN SERIAL BASIC BREAKOUT -
SparkFun Electronics
Add all DigiKey Parts to Cart
TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum