How to Convert u-blox UBX Raw Data to RINEX 3: Practical Guide for Surveyors
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:
| Constellation | Frequency Band | RINEX 3 Observation Code | Observed Signal |
|---|---|---|---|
| GPS | L1 (1575.42 MHz) | 1C | L1 C/A pseudorange and carrier phase |
| GPS | L2 (1227.60 MHz) | 2S / 2L / 2X | L2C signal components; 2W is not L2C |
| GLONASS | G1 (~1602 MHz) | 1C | Standard precision FDMA carrier phase |
| GLONASS | G2 (~1246 MHz) | 2C | L2 sub-band FDMA carrier phase |
| Galileo | E1 (1575.42 MHz) | 1X / 1C | Open Service carrier phase and code |
| Galileo | E5b (1207.14 MHz) | 7X | High-accuracy dual-frequency carrier phase |
| BeiDou | B1I (1561.098 MHz) | 2I | BDS-2 & BDS-3 legacy civil carrier phase |
| BeiDou | B2I / B2a | 7I / 5X | BDS-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.