PPK Help

Hi all,
I’m mapping drying beds and have historically used RTK fix to do all my GCP measures. Recently I have gotten a Phantom 4 RTK and have my base on NTRIP output to get a fix on the drone while it is flying.
Since I now cannot get an fix via Lora while it is up in the air, I’ve decided to trail accuracy using PPK and Emlid Flow to collect GCP data while the drone is flying, but the results are no where near what I measure with RTK fix.
After converting from WGS84 to local (28354), I’m getting a measured deviation of 0.5m upto 1m on the same point, consistently.
I’ve uploaded my base, rover and csv files as well as my calculation spreadsheet - could someone tell me what I am doing wrong please?


OK could you please give more details

  1. Do you use Emlid Flow to do PPK ?
  2. What are your PPK results and statuses ? Float, fix ?
  3. How are the coordinates of the base set up in RTK ? Same question in PPK ?

Check the spatial reference system of your base. Not all corrections are served in WGS84.

For example, my local NTRIP serves corrections in NAD83-2011, which, in my area, is shifted about 1 m from the current version of WGS84.

1 Like

1.I do use Emlid flow
3. Not sure if i understand, but i feed it the base logs, the base is an averaged point over 30 minutes. It’s the same base that i use for rtk

how can I check the spatial reference for the base?

Well, whose base are you using?

my own base, its a RS2 averaged over a point that I come back to every month.
I’m not home to log in and check the interface, but I didnt think the RS2 outputted anything but WGS84.

Hello Joe,

Answering your original question:

I’m getting a measured deviation of 0.5m upto 1m on the same point, consistently.

The difference between real-time RTK and PPK may be explained by different base coordinates used during RTK and PPK.

According to WAY, base coordinates in RTCM3 file are the following:

Converted to LLA:

However, RINEX file from base (very likely used for PPK) has a little bit different coords inside:

If you used coordinates from RINEX file during PPK (not entered manually, the same as in RTCM3), than the difference between RTK and PPK indeed may be about 0.5 m.

Also I’d add that both RTK and PPK are quite challenging w/ the files you provided. Let’s start from RTCM3 corrections for RTK:

PROBLEM_1: number of corrupted messages as well as reduced rate

PROBLEM_2: not optimal SNR figures

PROBLEM_3: already mentioned base position change w/o BaseID updated

As for RINEX file from Base for PPK - the primary problems are:

PROBLEM_1: It is only 30 sec rate while rover data is 5Hz.

PROBLEM_2: it is just GPS L1+L2, there is no GLONASS and GALILEO

PROBLEM_3: SNR figures on rover is even worse. Reliable RTK FIX is really challenging

1 Like

You’ve blown my mind!
Its going to take a little while to digest this and work out solutions, but do you think this would be giving me very unreliable coordinate information when FIX?
I did change my base coordinates shortly into setup after measuring some fixed points and realising I’d set the height incorrectly.
Im very grateful for such a detailed reply


The following items mentioned above may complicate getting FIX or even may give wrong FIX:

  1. Low SNR on base, Low SNR on rover

  2. Lack of multi-system (GPS only) in RINEX base file (reach-base_raw_20240508002626.24O)

  3. Jump in base position w/o baseID change may cause short-term RTK fix loss

  4. Corrupted RTCM3 messages may degrade RTK position quality (less messages, less measurements, worse FIX)

Its strange that I’m getting poor SNR, I’m in a very open clear area on top of a stockpile. I literally couldn’t have a clearer sky. Doing a little research, it looks like I will have to take an iterative approach to adjusting the SNR mask to get a good result.

I did some reading on this, the WAY website states: Issue 9: Many Corrupted Messages

Too many messages w/ wrong checksum (CRC) are detected on rover side. Usually in may appear due to data link issues. For instance, UHF radio link + external jamming. Sometimes the reason is mismatch in RS-232 baud generator frequencies or missed CTS/RTS. In any case, the more RTCM3 messages are corrupted the harder is to maintain stable RTK FIX. WAY service check this parameter as well and raises corresponding alarm if there are too many corrupted messages.

My understanding and experience is that there are set BAUD rates and if you select the wrong one, you wont get a fix. Other than that, what else can you do to reduce corrupted RTCM3?

Hi @pjengineering,

I just want to add that you should input the precise coordinates of the base when post-processing with Emlid Studio.

If not, Emlid Studio will use the coordinates from the RINEX header. The base position in the RINEX header is the last averaged epoch coordinate, which is accurate to a few meters. It is different from the one averaged in Emlid Flow.

This could be why RTK and PPK base positions differ by up to a meter.

1 Like

Joe, just curious. Why can you not do RTK (via NTRIP caster) on your Emlid Rover at the same time the drone is flying? The Emlid caster supports 10 simultaneous rovers. If you have internet for your controller, you should have internet available (meaning to that area) your Emlid Rover as well.


Zero phone reception, just a starlink

Out on site at the minute, the drone is up, so I’m playing with settings on the rover.
I cant get the SNR mask to go past 40, it just won’t allow me to type it in.
Updated the constellations and update rate.
Ill post results when i get home

Settings are only 0 to 40.

Default is 35.

What should i be looking at on the status screen to see an improvement? The green/orange bars look roughly the same?

I’ve signed up for WAY, my account is pending, so I can’t do any further research but I’m quite confused.
I don’t usually use Emlid Flow in my workflow, I just get a FIX onsite, get my GCP points, send the RTK drone up and job done.
When I run my points through Emlid Flow, some of them that were recorded with FIX drop to FLOAT and some of them that were float become FIX.
Example: I took 4 recording at the same point but varied my Elevation Mask and SNR:
(EM: 15 SNR 40
EM: 15, SNR 32
EM: 20, SNR 32
EM: 20; SNR 40) All came back as FIX while most of my FIXed points that I used the default EM 15 SNR 35, came back FLOAT.

I’m very much out of my depth. Could you guys have a look again? I’ve been using these setting for years but if I can nail down some inaccuracy I that would be great.
1: I changed the base location when I turned it on. I manually typed the base location into emlid flow. How do you change the Base ID when you change base position?
2: I’ve changed by GNSS settings to include all GNSS systems.
3: I installed my larger fiberglass antenna to hopefully reduce corrupted messages.

EOM May Logs

Ah, I’ve just increased my base update rate from 1hz to 5hz.
Not sure whatbl difference this will make but rewatching tutorials