Adding Base Station Location to STRSVR

This article reviews how to set the location of your GNSS Base Station in the RTKLIB “STRSRV”  (stream server) tool.

In order to use any GNSS Base Station for RTK, the Rover device MUST know the precise location of the Base.  This is sent in the two RTCM3 message types; MT1005 and MT1006.

High grade devices have various ways to determine and to enter this data. Low grade devices (read:uBlox) typically do not, therefore you need to set it and send it with STRSRV.     If a device which sending an empty location is received by SNIP, it will will give a warning to the operator.  If you see a messages stating one of your Base Stations is claiming that it is located at the North or South pole, this indicates the location still needs to be set.

Finding your precise location

Before you can add your location, you must determine what it is. This is typically a task with two major steps. First collecting several hours of observation data from your Base Station once it is in a final position.  And then submitting that data to a 3rd party for a precise determination of the position, expressed in the local datum you wish to use.  Most commonly the submitted data is in a RINEX format (not raw RTCM) and the RTKConv tool can assist you with that translation.

There are many articles on the web, and one on this site, which cover this process in more detail; here are some good ones:

There are many reliable 3rd party processing sites that can use your data.  Most require both L1 and L2 data, but a few can also handle L1-only data sets, if that is what you have.  Here is an industry article with a list of several such sites, with thanks to Eric Gakstatter for creating this list.

Seven Free Alternatives to OPUS GPS Post-Processing During U.S. Federal Government Shutdown

Note: Please keep in mind that any residual error or offset you have in the Base Station position is transmitted as an offset to the NTRIP Clients, and hence directly to your Rover devices.  For some applications where you can “fix it in post” such an error is not a big issue, but for others it is.  This typically turns on your mission needs for repeatability vs accuracy.  Do this correctly and you can have both.

Expressing the LLH as ECEF Coordinates

The precise location point which the above process determines will often be expressed in Latitude – Longitude – Height (LLH) coordinates (degrees of Lat Long and Height) along with the reference ellipsoid (datum) it is based on.   The epoch time at which it was determined is also provided (but is not used here).  This location is turned into a set of orthogonal ECEF (Earth Centered, Earth Fixed) coordinates when used. [The RTCM 3.x message set makes no provisions for ground velocities or the datum used. It is important to be certain of the datum and the epoch time for the position of any Base Station you use if there is doubt.  Typically, daily tide loading effects are not an issue in RTK as both the Rover and the Base are operating on the same local crustal plate.]

This value represents the best estimate the electrical phase center of the L1 frequency for your Base Station antenna.  If you determined the location point by placing your Base Station antenna over a known monument, you will also need to add the antenna height to the data to account for the offset.  Aside: High quality Base Station software also provides a means to send the antenna design (model and serial number) that is being used for greater modeling at the Rover end.  You can enter and edit these values below or by using the SNIP PFAT™ translations tools.  Should there be a need see this article for details.  Most post-processing tools also require entering this value for the greatest accuracy.

Very often both LLLH and ECEF forms for the same point are given as well.   But when one needs to precisely convert a location between these two systems, the article below and its links may be of value:

Converting ECEF to LLH and back

Now armed with the precise location value to be entered, we can resume the main thread…

Aside: If you are simply trying to get your RTK system up and running, you can use the rough LLH value your Base provides in autonomous mode as a starting  point.  Such a value will be precise and repeatable but not accurate.

How to Set Values in STRSRV

The ECEF values are set using the “Options…” button on the main dialog of STRSVR.

This brings up the “Options” dialog where these values are set.

Press the button Frank...

When first presented, the LLH values are greyed out. Press the “Station ID” checkbox to active them.   That is the big trick people most often trip over.

You can now enter the Latitude – Longitude – Height (LLH) values you determined in the prior steps, and STRSVR will convert them their ECEF formats (in units of 0.1mm) using the standard WGS84 ellipsoid.

Important: You should be entering at least 9 digits past the decimal point for the Latitude and Longitude values and at least 3 for the Height.  This ensures mm level precision.  The Height is the (signed) height above the reference ellipsoid, and not the local geoid or sea level.

There is no a way to enter an additional antenna height offset here.  It is presumed that any such offset has already been “baked into” the LLH/ECEF value.  You can enter E-W/N-S/U-D offset values, but these are rarely used in practice.

If you instruct STRSVR to send a MT1006 (in the output control settings for a stream), the Ant Ht value will be set to zero.  [The difference between an MT1005 and MT1006 is the presence of this one additional data element.]

Note that you can also (optionally) enter details about the antenna model and the receiver type used in this dialog.

That is all there is to it. Now, when STRSRV sends MT1005/1006 the content will reflect the values you set.

Other RTKILIB related articles


Message MT1005/1006 Still not going out?


  • Use the SNIP RTCM 3 Viewer tool to see the messages and examine their contents.
  • Or just right click on the context menu and select “Show Message Types” for a rapid summary of the stream contents.

Is the Value Grossly Right?

Always a good idea to check your work.

  • Use a SNIP Navigation filter to run using the observations data  (support article)
  • The resulting plot (the moving orange data points) should be within a meter or so of the precise location you entered (the stationary red point), much like the image below. If the two points are widely divergent, there is a problem with the value you entered.

Was this article helpful?

Related Articles