Measuring a survey marker with the DataGNSS D302-RTK

In my last post I reviewed the D302-RTK receiver from DataGNSS.


Since the unit is designed for surveying, I thought it would be fun to use it to try and measure an actual survey marker, something I’ve never done before.

So, to find an official marker I went to the NGSDataExplorer website from the U.S. National Geodetic Survey group and brought up an easy-to-use interactive map of the local area with different types of survey markers marked.   Here’s a zoom in of the map showing a nearby marker I found with easy access and a decent sky view.


Clicking on “Datasheet” brings up the following information about the marker.


About halfway down, you can see that the NAD83 (2011) coordinates for this site are:

latitude               =   40 05 14.86880 N
longitude           = 105 09 01.68689 W
ellipsoidal height = 1613.737 meters

So let’s see how close we get to these numbers with the D302-RTK.  The D302-RTK uses a u-blox M8T receiver and a version of the demo5 RTKLIB code, so any results from this experiment should be valid not just for the D302-RTK, but for any M8T/RTKLIB based solution.

The survey marker is just over 1 km from my house and so I will use the antenna mounted on my roof connected to another M8T receiver as the base station.  The base observations are then broadcast to the internet with an NTRIP caster as I described in this post.  Using an M8T receiver for the base station allows me to enable GLONASS ambiguity resolution in the solution since both receivers are using identical hardware.

Since I am doing a real-time solution, I need internet service at the site of the measurement to get the base observations.  I got this by enabling a hot spot on my cell phone and connecting the D302-RTK to that.  I have surveyed the base station antenna with both RTK solutions from nearby CORS stations as well as online PPP solutions so I have a fairly good idea of it’s location, maybe within a cm or so.

The clamp and surveying pole in the top photo look nice but I don’t own anything like that, so instead I used a $20 camera tripod, a piece of wood, two rubber bands, a wood clamp, a piece of string, and a carriage bolt.  Here is the resulting setup aligned over the survey marker.  Note that I am using the optional helix antenna which was included with the receiver that was sent to me rather than an external antenna.


Here’s a close-up of the marker itself with the carriage bolt and string aligned over the top of the marker pin.   The other end of the string is fastened directly underneath the D302-RTK, making it easy to align the receiver directly over the marker and measure the vertical distance between the two.    If you’re wondering about the film canister at the bottom of the well, it seems that the marker is also serving as a local geocache location.


At this point everything is ready to go.  I powered on the receiver, enabled the RTK service for a static solution, waited five minutes and then recorded the position.  I did this three times to get three different measurements.  Here are some not-so-good photos from the screen of the D302-RTK for the three runs.  It is possible to store these values to the unit using an additional Android app, then uploading with a USB cable later, but in my case I just copied the values manually to my computer.


The numbers are a little hard to read but are very consistent between results so I’ll just use the middle values.  The indicated height is the height of the base of the antenna, not the survey marker so I need to subtract the difference which I got by adding the length of string and bolt to the height of the receiver, in this case 1.49 meters.

latitude              =   40 05 14.8870 N
longitude           = 105 09 01.7374 W
ellipsoidal height = 1614.393 – 1.49 = 1612.903 meters

Comparing to the published survey numbers, we are not very close.  It’s a little less intuitive to compare degrees of latitude and longitude but the height is obviously off by almost a meter, so something is wrong.

Usually this kind of large error suggests there may be a mismatch between coordinates.  Sure enough, when I double-checked the base location that I had entered into the D302-RTK, I realized that I had used WGS84 coordinates, not NAD83.  As I mentioned earlier I had computed the base position using both RTK solutions from nearby CORS stations as well as online PPP solutions.  RTK solutions are always relative to the base station so will be in the same coordinate system as the base.  CORS stations locations in the U.S are normally specified in NAD 83 so using those coordinates would have been fine, but instead I had used coordinates from the online PPP solution which were in WGS-84 coordinates.  Since the RTK solution will be in the units of the base station, my results are in WGS-84 coordinates, and the published survey coordinates are in NAD83.

Fortunately there is another easy-to-use tool from the U.S. National Geodetic Survey that will translate from one coordinate system to another.  Entering the WGS84 coordinates from the measurement and translating to NAD83 gave the following:


You can see the WGS-84 coordinates on the left and the NAD83 translations on the right.  The translated coordinates from above are:

latitude                =   40 05 14.86828 N
longitude             = 105 09 01.68627 W
ellipsoidal height = 1614.393 – 1.49 = 1613.759 meters

Compare these to the marker coordinates we got from the NGS website earlier:

latitude              =   40 05 14.86880 N
longitude           = 105 09 01.68689 W
ellipsoidal height = 1613.737 meters

That’s looking much better.  The heights now differ by only about 2 cm, well within the expected vertical accuracy given the fact that my base station location was not exact, both antennas were uncalibrated, and my tripod setup was a little imprecise.

How about latitude and longitude?  The error in latitude is 0.00052 arc seconds and in longitude is 0.00062 arc seconds.  Those seem small, but unless you are a professional surveyor these numbers are probably not very meaningful to you, they certainly are not to me.

Meters would be much easier to interpret.  I usually use a free matlab geodetic toolbox, available on the Matlab file exchange to do these sorts of translations, but this time, let’s do it by hand.

At the equator, one arc second of longitude or latitude is approximately equal to the circumference of the earth divided by 360 degrees, then by 60 min/degree, then 60 sec/min.  A quick google search finds that the equatorial circumference of the earth is about 40.07 million meters.  Divide that by 360*60*60 gives 30.92 meters per arc second.  This is not exact but good enough for our exercise.  Arc-seconds of latitude remain nearly constant with location but arc-seconds of longitude will get smaller as we approach the poles of the earth by the cosine of the latitude.  I am located at approximately 40 degrees latitude, so 30.92*cos(40 degrees)=23.68 meters per arc second of longitude.

The error in latitude in our measurement from above was 0.0052 arc seconds.  Multiply this by 30.92 meters/arcsec gives an error in meters of 0.016 or 1.6 cm.  For longitude, multiplying 0.000062*23.68 meters/arcsec gives 0.0015 meters or 0.15 cm.

So total error in this exercise was 2.2 cm of vertical error and 1.6 cm of combined horizontal error.  Not too bad for two rubber bands, a piece of string, a bolt, and a wood clamp (as well as a nice low-cost receiver)!

Although I used the D302-RTK for this experiment, I believe the results would be very similar for any solution using a pair of M8T receivers and RTKLIB.


8 thoughts on “Measuring a survey marker with the DataGNSS D302-RTK”

  1. Hi Tim,
    If the app you are using is RTKGps+, then if you enable the log rover & log base and select type file, you will get a .ubx format file named rover_xxxxx.log and a rtcm3 file for the base named base_xxxxx.log.
    If you enable Solution1 in output solutions and select type file, you will get a file named solution1_xxxx.pos.
    I have yet to test my version of RTKGps+ with a short baseline reference station, but yesterday I got a fixed solution within about 10 minutes with a CORS station 50 miles away via NTRIP.


  2. Nice post covering the basics. I think most people working with low cost equipment start out with a camera tripod. Add a plumb line, tape measure, and maybe a few other items and for well under $50 you can position an antenna to a few millimeters with some careful work. Centimeter level can be done fairly quickly. The professional solutions are better, but typically cost in the hundreds of dollars.

    When you get down to positioning at the centimeter or millimeter level there are a ton of things that come into play. While not usually the case, sometimes even the published coordinates of a survey marker or CORS station will be in “error” of a centimeter or two. I think the NGS still has a policy that the “error” has to be greater than 2 cm horizontal or 4 cm vertical before they change the
    published values.

    Another thing to worry about is exactly where your measurement reference point is. With higher-end equipment there will be an antenna model and an ARP (Antenna Reference Point). This is often the bottom center of the antenna. Without an antenna model the coordinates you get will be for the antenna phase center. Typically it won’t be at the bottom of the antenna, but perhaps more toward the center. With some antennas that could make a significant difference. For example one Maxtena helix I looked at is 4.9 cm tall and the L1 phase center seems to be roughly in the middle of the antenna so if measuring a height there would be a 2.5 cm difference between the base and phase center. Not really important if you only care about a decimeter or so, but for cm level work you wouldn’t want that bias there.

    I know your exercise was just about seeing if you got within a few cm – and you did, but for the height did you measure to the bottom of the antenna? Did the manufacturer say anything about the phase center of the antenna? I’m guessing not and that for precise measurements they suggest using the other antenna and hopefully have at least a phase center estimate for it.


    1. Hi JB. Good points. I used the base of the antenna as my measurement reference point. It is a Harxon CH6601A helix antenna but I don’t have any calibration data for it or know if it exists. I agree that for more precise measurements an external antenna with phase center calibrations would be preferable. Fortunately it is very easy to remove the helix antenna and attach an external one.


  3. Did you record logs for the rover & base? I’d be interested is seeing them as I am working on the same basic code base and having some issues with fixed solution time. It would also be useful to know the config as then I could compare apples & apples. Unfortunately, RTKGPS+ does not have a way to export the config, but in my code base the parameters are named as in rtknavi and in the same order.
    RTKGPS+ has many forks, mine included. An interesting chicken & egg problem to be sure.
    How do they handle software/firmware updates? is their app on Google Play? Their web site has changed since earlier this year, the pictures of RTKGPS+ are gone, replaced by the pay-for app SuperSurv, which is said to be included.
    How long did it take from power on to first fixed solution?
    The unit looks like a nicely put together piece of kit, a bit pricey, but not bad considering there is probably ~$600+ worth of hardware, some of it customized at very low volume.


    1. Hello cynfab, could publish the reference to your fork, very interestingly what changes you have made.
      Now I use indonesian fork – “Geotagging+”. It’s application exist on Google Play, but last version (v 1.2 (2018 year)) – published only on their website ( For me I have made some little changes font and color of the statuses solution and replace function NTRIPSVR to TCPSVR. But my application (M8N+android phone) it’s worked sucessfully, but only used GPS (I now why – base another receiver).
      Also, I use RTKNavi v. b29b from Rtklibexplorer and with option AR Glonass – Fix and Hold – it seems working well.


      1. Max.
        Did you find the source for Geotagging+ somewhere? How did you make your changes?
        My fork is on GitHub and is the only one with any current activity.
        The only thing not in my repo are the changes made to RTKLIB (demo5 b29b) that enable a few features I find useful that are not necessary if you are using an M8T. There are also other changes to RTKLIB that are required for Bluetooth and USB support, but those are available from other repo’s. A little work will always be required to make use of any code I write or modify, and people are encouraged to contribute changes back.
        My current version is 1.0 beta 6, but beta 4 is where the repo is at as I am testing some bug fixes.
        I am a firm believer in open source and Geotagging+ doesn’t seem to have its source available even though it is based on RTKGps+ and RTKLIB, it also contains adds.
        RTKExplorer works well. I use it under wine on Linux, I was maintaining mashup of it and a fork of Jen’s fork which supported the Qt build, but too many other projects got in the way and with the improvements in wine, I just use RTKExplorer under wine, or the command line tools compiled with my changes to RTKLIB.


        1. I do not have the source code and I do not know how to build an application from it. But minor changes can be made in the. apk file itself using APKTool.
          Also, there is not enough opportunity to import and export config.
          Do you have a compiled application in the form of a file?


    2. Hi Cynfab. No, I don’t think there is a way to record the raw observations with the D302-RTK. They sent me an apk file to copy to the unit to upgrade the FW but I imagine they have plans to automate the process. I did not monitor the time to first fix for the actual survey, just confirmed that it was locked after 5 minutes. In an earlier test I saw first fixes in 1-3 minutes, about the same as I see with my other M8T receivers. That wasn’t from power on though, I haven’t measured that directly.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: