What is SPARTN and how can it improve my GPS receiver’s performance?

What is SPARTN?

SPARTN (Secure Position Augmentation for Real Time Navigation) is an open protocol for data transmission in a GNSS (Global Navigation Satellite System). It is used to encapsulate individual satellite correction data from a service provider’s base station to a mobile GNSS receiver, thereby providing centimeter accuracy. In some ways it has become a desirable stamp of compliance for the GPS receiver such as ZED-F9P installed on the SparkFun Electronics GPS-22560 receiver shown in Figure 1.

Figure 1: Image of the SparkFun GPS-22560 receiver featuring a ZED-F9P GNSS module and a NEO-D9S-00B correction receiver. By default, the correction data is transferred from the NEO correction receiver to the ZED receiver using a serial interface carrying the UBX protocol. However, the data, including SPARTN, may be transferred via an external source to the ZED GNSS receiver using the I2C on the QWIIC connector.

Tech Tip: Technically, the ZED is SPARTN capable while the NEO is not. The small NEO digital receiver module speaks a proprietary ublox protocol known as UBX. The larger ZED GNSS receiver can decode CLAS, RTCM, and SPARTN messages.

Tech Tip: To be very specific, the proprietary ublox UBX protocol contains frames to configure the receiver as well as frames to transfer the GNSS corrections. These SPARTN-like frames known as UBX-RXM-PMP messages serve as the default communication between the NEO and the ZED. It is possible that the proprietary UBX-RXM-PMP share a common structure as the SPARTN frames, as they serve the same purpose.

Tech Tip: SPARTN frames rarely appear alone. Instead, they are wrapped in a broader transport protocol such as MQTT.

GNSS foundations

Recall that the GNSS system depends on time. There are many systems included in the GNSS category including GPS, Galileo, GLONASS, BeiDou, QZSS, and NavIC. All satellites are equipped with extremely precise atomic clocks. These rubidium and cesium oscillators provide the time reference dictating when each satellite will ping its unique identifier.

Also recall that a user’s receiver obtains a navigational fix by receiving the ping from four satellites. It’s like mathematics when we solve simultaneous equations where we have four equations and four unknowns. In this case, the unknowns are latitude, longitude, altitude, and time. When your receiver resolves the equation all four variables are available. This is a simplification as the receiver must apply the ephemeris data. This allows the receive to know the exact location of each satellite at the precise moment the fix is calculated.

In all cases we recognize that precision time is foundational to the GNSS system. Variations in time degrade the quality of the GNSS 4-equation solution. Time variations can be caused by:

  • drift in an individual satellite’s atomic clock
  • ionospheric and tropospheric disturbances (time of day and seasonal)
  • satellite deviations from the ephemeris data

Tech Tip: Note that ionospheric disturbances are not a simple calculation involving a straight line to satellite directly overhead. Instead, we must account for the time of flight spent in the atmosphere. For example, the signal from a satellite 30 degrees up from the horizon spends more time interacting with the atmosphere than a satellite directly overhead (90 degrees from the horizon). It’s a fascinating signal processing problem that the GNSS receiver must solve.

How does SPARTN based system operate?

With our simplified understanding of GNSS, we can now explore the system in which SPARTN is defined. This consists of the base station, communication channel, and the GNSS receiver. SPARTN is the protocol used to communicate data across the communication channel.

Service provider base stations

The United States Space Force operates the GPS system out of Schriever AFB. They are tasked with monitoring the satellite health, adjusting the atomic clocks to agree with [UTC] (https://www.cnmoc.usff.navy.mil/Our-Commands/United-States-Naval-Observatory/Precise-Time-Department/). The USSF does an excellent job of maintaining this critical infrastructure so essential to our everyday life. However, the system was designed decades ago and does not have the capability of providing the highly desired inch-level navigational fix. Also, GPS is but one of many GNSS systems. Ideally, we would use healthy in-view GNSS satellites.

The GNSS system may be augmented by providing correction errors to individual in-view satellites. Think of this as a fine adjustment to the ping time for each satellite to account for the various disturbances.

The foundation of the base station is a precision time reference. This is the standard – the truth – to which all measurements are made. The base station will compare the perceived time for individual satellites to this standard. Software algorithms compute corrections for individual satellites so that the received matches the ideal. These individual satellite corrections are then formatted into a SPARTN protocol and passed to the communication channel. Note that SPARTN is one of several different protocols that may be used.

Tech Tip: There is a real cost to construct and maintain a base station. To recoup this cost, the GNSS corrections are offered as a paid subscription service. As an example, the SparkFun receiver shown in Figure 1 was designed to use ublox’s PointPerfect service.

Communications channel

The communication channel is used to transfer messages from the base station to the mobile GNSS receiver. The channel must be compatible with the need of the mobile user with high priority given to signal availability. Common examples include L1 satellite and cellular. Other systems could certainly be used. For example, the corrections could be sent over Ethernet with the last hundred feet broadcast over Zigbee. This setup may work for a small backyard coverage area such a required for a robotic lawnmower.

Figure 2 taken from the ublox ZED-F9P application note presents two unique communication channels. On the top we see the space-based channel using a L1 satellite and the NEO-D9S-00B correction receiver. The terrestrial channel, assumed to be cellular is shown as a direct connection.

Tech Tip: The SPARTN defined the protocol for data encapsulation. Here the term protocol describes an agreed upon structure for transferring data. Refer to www.spartnformat for the latest copy of the protocol. Other transport protocols may be required to transmit the SPARTN frame over IP-based Ethernet or cellular networks.

GPS receiver

Now that the data has been transferred to the mobile user device, it can be used by the GNSS receiver. It is here within the receiver’s equation solving matrix that the corrections are applied. We can think of this a fine tuning for the ping time for each individual satellite. The result is an advertised southern clear-sky navigation fix of 3 to 6 cm.

Figure 2: This image presents a space-based channel and a terrestrial channel along the connection to reach the ZED-F9P receiver. The ubox UBX protocol is implemented in the space-based path. The SPARTN frames are contained within MQTT for the terrestrial path.

Conclusion

The SPARTN protocol demands a deep dive into the inner working of GNSS, communications, and the world of computer networking. This post only begins to scratch the surface as the augmented GNSS system. Yet, we have discovered that SPARTN is a containerization to pass individual satellite data corrections from a service provider’s base station to your GNSS receiver. This action provides a significant improvement to the navigation fix.

As we close, I encourage you to look at the open SPARTN protocol description. While you are unlikely to manually decode individual messages, the document will give you a better understanding of how the corrections are applied to a GNSS receiver. Also, be sure to test your knowledge by answering the questions and critical thinking question at the end of this note.

Please give a thumbs up if you learned something from this post. Also, be sure to leave your comments and suggestions in the space below.

Best wishes,

APDahlen

Helpful links

Please follow these links to related and useful information:

About this author

Aaron Dahlen, LCDR USCG (Ret.), serves as an application engineer at DigiKey. He has a unique electronics and automation foundation built over a 27-year military career as a technician and engineer which was further enhanced by 12 years of teaching (partially interwoven with military experience). With an MSEE degree from Minnesota State University, Mankato, Dahlen has taught in an ABET-accredited EE program, served as the program coordinator for an EET program, and taught component-level repair to military electronics technicians. Dahlen has returned to his Northern Minnesota home and thoroughly enjoys researching and writing educational articles about electronics and automation.

Highlighted Experience

Dahlen is an active contributor to the DigiKey TechForum. At the time of this writing, he has created over 160 unique posts and provided an additional 500 forum posts. Dahlen shares his insights on a wide variety of topics including microcontrollers, FPGA programming in Verilog, and a large body of work on industrial controls.

Connect with Aaron Dahlen on LinkedIn.

Questions

The following questions will help reinforce the content of the article.

  1. What is meant by the term “augmented GNSS” system?

  2. What is SPARTN?

  3. Why is it preferable to use an all-in-view solution as opposed to reliance on GPS itself? Are there exceptions to this rule?

  4. With regards to Figure 2, where does the SPARTN encoder reside. Also, where does the SPARTN decoder reside.

  5. What is the purpose of each ublox module installed on the Sparkfun receiver shown in Figure 1?

  6. Does SPARTN improve heading accuracy for a stationary GNSS receiver?

  7. What is the significance of a “southern clear sky” for precision navigation?

  8. Could the Sparkfun receiver shown in Figure 1 be configured to use SPARTN packets received over an Ethernet connection? Hint Use a Raspberry Pi if necessary.

  9. Sketch a drawing showing how a satellite directly overhead has a lower interaction with the ionosphere when compared to a satellite close to the horizon.

  10. UBX and SPARTN perform the same GNSS functions. What is the fundamental difference between the two protocols?

  11. Contrast and compare an IP-based correction with a satellite-based solution.

Critical thinking questions

These critical thinking questions expand the article’s content allowing you to develop a big picture understanding the material and its relationship to adjacent topics. They are often open ended, require research, and are best answered in essay form.

  1. A L1 satellite may have multiple spot beams. How does a beamed signal improve the response/efficiency of a GNSS correction system?

  2. GPS augmentation systems have been around nearly as long as GPS. Compare the modern SPARTN solution against the once popular method of establishing a personal base station in the immediate vicinity of the user.

  3. A 3D GNSS receiver incorporates multiple antennas to determine heading and pitch (tilt). Would SPARTN improve heading accuracy for a stationary 3D GNSS receiver? As a related question, could the antenna baseline be reduced?

  4. The article presented an example of SPARTN transmitted over Ethernet with the last 100 feet as ZigBee. Research the bandwidth required for the SPARTN corrections and support or refute the Zigbee SPARTN lawnmower idea. Hint Start with the default baud rate for the NEO and ZED.

  5. What is the current version of SPARTN protocol? What changes were made relative to the previous version? Also, what SPARTN version is supported by the ZED-F9P?

  6. Contrast and compare uncorrected, RTCM, CLAS, and SPARTN correction messages.

  7. Suppose you are traveling to the north pole. How does this complicate your ability to apply corrections to the GNSS receiver. Hint: Identify challenges associated with the base station as well as the challenges with satellite orbits such as LEO and GEO.