RS2 Ubx to Rinex 3.03 converting issue with EZSurv and RTKConv


it is 3 different issues

  1. missing epochs in raw data recorded by RS2
  2. adds up to issue 1: missing L2 carrier phase in raw file (for some satellites)

The 2 previous issues are recording issue for RS2 (not related to post-processing software).
These 2 issues were observed using the UBX format.

Issue 2 is not a drop of L2 carrier data, but the L2 carrier phase is not recorded at all for some satellites. Christian mentioned that older satellites do not have L2C… Weirdly, the satellites with no L2 carrier phase are the ones with no L2C. L2 carrier phase should be present for all satellites in view,

  1. last problem is related to RTKConv. When using RTKConv, some L2 carrier phase is dropped. This issue adds up to issue 1 and 2 above. In UBX file there is missing epochs and missing L2 carrier phase, when you convert the file with RTKConv, you lose even more L2 carrier phase.

Why can we say the issue adds up ?
when a file is converted to RINEX with RTKConv we can see

  1. drop of epochs (same as the one we see in UBX file)
  2. missing L2 carrier for some satellites (same as the one we see in UBX file)
  3. if file was converted by RTKConv, we also see less L2 carrier (some drops L2 drops, partial drops, drops could however be important). This last issue can also be RTKConv not being set properly.
    I do not use RTKConv, I have UBX files that I can compare with its rinex made by RTKConv.
    What I can say is the UBX file has more L2 data than the rinex file converted by RTKConv.
    If I convert UBX with EZSurv converter : UBX and RINEX have the same amount of data.

I am glad you are working on it, and hope a solution will be available soon.


Been looking to simply put all that you’ve posted together in the above writeup for Emlid to understand what the issue is but I’ve been on trek for some weeks now. Decided to make more tests upon my return and provide them with some substantial evidence but voila, someone has finally expressed the little experience I had with RS2s raw data before I went on trek. Thanks @Effigis_OnPOZ

1 Like

Tha is for the write-up!
I am still very interested in a Rinex 3.03 file from the RS2 converted by EZsurv for comparison of the obs types!

Hi Stephanie,

Please check my comment below.

1. Missing epocs in raw data recoded by RS2

We’ve conducted multiple tests and may confirm that Reach RS2 may lose some epochs in raw data. We’re now working on the solution, as I mentioned above.

2. Missing L2 carrier phase in raw data recorded by RS

I examined all the data you shared here and over email once again and can conclude the following:

According to the data you shared, there is no L2 recorded for the G14, G20, and G21 satellites in RS2 raw data.

As Christian said above:

These IIR satellites provide the following positioning signals: L1C/A, L1/2P(Y).
Reach RS2 is able to track GPS L1C/A, L2C.

It seems that the CORS station you mentioned can track L2P signal, that’s why it provides L2 observations. As for Reach RS2, it can track L2C only that is not transmitted by these satellites.

That’s why I assume there should be no issues with logging L2 carrier phase in raw UBX data.

Please let me know your thoughts regarding this case.

3. Converting UBX to RINEX in RTKLib issue

We expect to release the fix to this issue as soon as possible.


I posted one (see above) file name

Yep, I saw, but it is in Rinex 2.10. I need one in Rinex 3.03.

Maybe EZsurv suffers from the same issue as NRCAN ?

Quote from NRCAN, after contacting them:

GPS observations in your Rinex3 file contain C2L signal. The (L) modulation of pseudo range C2 is not supported by our service. That is why the processing of GPS data could not be done.
It is planned to support this and other modulations once specific code biases become available.
Here is the list of currently supported signals:


Note that for Rinex2, the modulation is not specified for C2 signal and it is treated as C2C.

@Effigis_OnPOZ sent me the rinex 3.03 over a PM.

So From EZsurv conversion:

G 8 C1C C1W L1C D1C C2W C2X L2 D2 SYS / # / OBS TYPES

From RTKconv conversion:


Sooo, now I am officially confused! :smiley: “L2” and “D2” in the EZsurv converted obs-types does not seem comply with the Rinex std?

Other observations, the approx position header differs by several meters, no time of last obs entry in ezsurv

That is normal because I skipped the data entry for the rnx header, I just converted the data.

1 Like

Thank you for this reminder!
I check with engineering and they confirmed that we only use L2C, since RS2 does not provide L2P.

So if older satellites do not have L2C it is normal we cannot use these older satellites for L2 (given L2P is not recorded for these older satellites).

If a receiver can record the entire signal, EZSurv will use it all.
If a receiver records part of the signal, EZSurv will use what’s available.

Thank you for the clarification Tatiana!


Hey there,

We’ve just pushed the v2.21.1 dev version fixing bugs with missing epochs and some L2 carriers dropped during conversion to RINEX.

You can subscribe to the dev branch in ReachView Settings. Check out this guide to update the Reach device.

It’d be nice to get your feedback on it! Thanks. :slightly_smiling_face:

1 Like

A post was merged into an existing topic: How to update from 2.20.8 to 2.21.1?

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.