Skip to content

How to Convert u-blox UBX Raw Data to RINEX 3: Practical Guide for Surveyors

By PosFlow · Published · updated

Record raw measurements from a supported u-blox receiver, convert the UBX log to a RINEX version your processor accepts, and compare epochs and observation codes before processing. A UBX container containing only position messages cannot supply missing carrier-phase observations.

Why u-blox raw data needs conversion

Supported u-blox receiver models expose raw observations in UBX binary messages. Capabilities vary by model and firmware: a single-frequency timing receiver and a multi-band surveying module do not produce identical signal sets. Converting to RINEX makes those measurements usable by compatible third-party processors, provided that the converter preserves the required observations.

Essential UBX messages for post-processing

To generate valid RINEX observation and navigation files, your u-blox receiver must log specific raw measurement messages. If these messages are not enabled in u-center or your receiver configuration, the resulting file will contain position fixes (NMEA) but no raw carrier phase observables.

  • UBX-RXM-RAWX: The primary measurement message containing raw pseudoranges, carrier phase, Doppler, and signal quality (Carrier-to-Noise C/N0) across all tracked frequencies.
  • UBX-RXM-SFRBX: The broadcast satellite navigation subframes (ephemeris and clock parameters) transmitted by GPS, GLONASS, Galileo, and BeiDou satellites.
  • UBX-TIM-TM2: Time mark information where supported and configured. Camera event synchronisation requires compatible wiring, logging and timing conventions; this message is not required for ordinary RINEX observation conversion.
  • UBX-NAV-PVT: Periodic position, velocity, and time solution (useful for initial coordinate seeding).

Multi-band signal mapping in RINEX 3

The receiver model, firmware and enabled signals determine which observations are available. The examples below illustrate RINEX signal identifiers; they are not a promise that every u-blox module tracks every listed signal. Full RINEX 3 observation codes also include a measurement prefix, such as C for code or L for phase:

ConstellationFrequency BandRINEX 3 Observation CodeObserved Signal
GPSL1 (1575.42 MHz)1CL1 C/A pseudorange and carrier phase
GPSL2 (1227.60 MHz)2S / 2L / 2XL2C signal components; 2W is not L2C
GLONASSG1 (~1602 MHz)1CStandard precision FDMA carrier phase
GLONASSG2 (~1246 MHz)2CL2 sub-band FDMA carrier phase
GalileoE1 (1575.42 MHz)1X / 1COpen Service carrier phase and code
GalileoE5b (1207.14 MHz)7XHigh-accuracy dual-frequency carrier phase
BeiDouB1I (1561.098 MHz)2IBDS-2 & BDS-3 legacy civil carrier phase
BeiDouB2I / B2a7I / 5XBDS-3 modernized dual-frequency carrier phase

Common pitfalls in desktop conversion

RTKLIB convbin and vendor utilities are options when their receiver and signal support matches the log. Check software version, time span, sampling interval and output observation codes. If conversion produces an empty file, inspect the recorded message types before assuming that a different converter will recover missing raw data.

Cloud-native conversion with PosFlow Flux

PosFlow Flux provides browser-based conversion for supported UBX logs. Select an output version supported by your downstream processor, inspect conversion warnings, then compare epoch coverage and observation types. Use Crux to review quality before committing the converted file to precise processing.

References and methodology

Technical definitions follow the sources below. Worked examples are illustrative; product-specific thresholds are identified as PosFlow settings. For corrections, contact PosFlow with the article URL and the relevant specification.

Put this into practice