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.
With just a few minutes of setup, the RTK Facet is one of the fastest ways to take centimeter grade measurements.
Surveying with a monopod and SW Maps
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.
- Reversible USB A to C Cable - 0.8m
- USB 2.0 Type-C Cable - 1 Meter
- USB Wall Charger - 5V, 2A
- USB-C Wall Adapter - 5.1V, 3A (Black)
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
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
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.
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
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
The SparkFun RTK Facet connectors shown with the dust cover removed
There are a variety of connectors protected by a dust flap.
USB:
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.
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:
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:
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:
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:
Qwiic:
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:
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.
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
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
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.
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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 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
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
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
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.
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.
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:
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.
- Wi-Fi - Recommended
- Serial Terminal - Requires a computer but allows for all configuration settings
- Settings File - Error Prone; for very advanced users only
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.
Desktop vs Phone display size configuration
Device ready for cellphone configuration
To get into Wi-Fi configuration follow these steps:
- Power on the RTK Facet
- Once the device has started press the Setup button repeatedly until the Config menu is highlighted
- The RTK Facet will blink a Wi-Fi icon indicating it is waiting for incoming connections
- Connect to Wi-Fi network named ‘RTK Config’
- Open a browser (Chrome is preferred) and type 192.168.4.1 into the address bar
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.
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.
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)
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.
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
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
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
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.
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
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
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.
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.
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.
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
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.
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.
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:
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
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.
Every second a few hundred bytes, up to ~2k, will be transmitted to your mount point.
Configure Ports Menu
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.
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:
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
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
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.
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
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
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:
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:
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.
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.
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.
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:
- ZED-F9P GNSS Receiver Datasheet
- MAX17048 Fuel Gauge IC
- SparkFun RTK Facet GitHub Repo (contains the open-source hardware electronics and enclosure)
- SparkFun RTK Firmware GitHub Repo (contains the firmware that runs SparkFun RTK products)
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum