C-RTK3 X20P Centimeter-Level Positioning Module
The C-RTK3 X20P is an integrated positioning module that combines professional-grade positioning, industrial-grade attitude awareness, and multi-layer security protection. Built on the u-blox X20 full-band GNSS platform, it supports all-constellation, all-band concurrent reception, delivering centimeter-level positioning accuracy through RTK/PPP-RTK technology. Powered by the STM32H523 high-performance processor and integrated with the RM3100 industrial-grade electronic compass, it features a built-in spectrum analyzer for real-time RF interference monitoring, Galileo OSNMA navigation message authentication, and secure boot. With CAN FD bus support, it can operate as both an RTK rover and base station. Meeting the demands of harsh industrial environments and compact device integration, it provides highly reliable, plug-and-play precision positioning services for high-end applications including unmanned systems, intelligent driving, agricultural machinery navigation, industrial automation, and robotics.

Product Features
- Full-band GNSS positioning (GPS / GLONASS / BeiDou / Galileo / QZSS / NavIC)
- PPP-RTK (PointPerfect) precision point positioning support
- 672 hardware channels with 25 Hz high refresh rate
- STM32H523 high-performance processor (280 MHz)
- Dual-mode: RTK rover and base station capable
- Galileo OSNMA navigation message authentication (anti-spoofing)
- Built-in CW interference detection and spectrum analysis
- Secure boot, configuration lock, and tamper-proof storage
- MIL-STD-810G vibration resistance (7.7g RMS)
Electrical & Hardware Specifications
| C-RTK3 X20P | Specifications |
|---|---|
| Built-in Processor | STM32H5 (280MHz, Flash 512KB, RAM 128KB) |
| Hardware Channels | 672 |
| Supported Constellations & Frequency Bands | GPS: L1C/A / L2C / L5 GLONASS: L1OF / L2OF BeiDou: B1I / B1C / B2a / B3I Galileo: E1-B / C / E5a / E6 QZSS: L1C/A / L1C/B / L2C / L5 NavIC: L1 - SPS / L5 - SPS |
| Assisted & Augmented Positioning | AssistNow™ Live Orbits: GPS L1C/A, Galileo E1, QZSS L1C/A, BeiDou B1I SBAS: EGNOS / GAGAN / MSAS / WAAS / BDSBAS u-blox PointPerfect correction service (Flex / Live / Global) |
| Security | Built-in CW interference detection & spectrum analysis; Galileo OSNMA navigation message authentication; Secure boot (signed firmware only), configuration lock, tamper-proof storage; Active antenna short/open detection |
| Positioning Accuracy | Single Point: Horizontal 1.2 m, Vertical 2.0 m DGNSS Aided: Horizontal 0.6 m, Vertical 1.0 m PPP-RTK: Horizontal < 6 cm, Vertical < 10 cm RTK: Horizontal 1 cm + 1 ppm, Vertical 1 cm + 1 ppm |
| Max Update Rate | 25 Hz |
| Convergence Time | PPP-RTK: < 40 s RTK: < 7 s |
| Startup Time | Cold Start: 25 s Hot Start: 2 s Aided Start: 2 s |
| Sensitivity | Tracking: -167 dBm Cold Start: -148 dBm Re-acquisition: -160 dBm Hot Start: -158 dBm |
| PPS Time Pulse | Pulse Accuracy RMS: 20 ns Pulse 99% Confidence: 60 ns Frequency: 1PPS (default), configurable 0.25 Hz ~ 10 MHz |
| Built-in Electronic Compass | RM3100 |
| Measurement Range | ±1100 μT (wide dynamic magnetic field adaptation) |
| Resolution | 13 nT @200 Cycle Count; detection sensitivity 2.7 nT @1 Hz |
| Noise Level | 15 nT @200 Cycle Count; noise floor 4 pT/√Hz (1Hz) |
| Linearity | 0.50% within ±200 μT |
| Communication Protocols | CAN: DroneCAN / CAN FD UART: NMEA 4.11/4.10/4.0, UBX, RTCM 3.4, SPARTN 2.0.2 |
| Communication Baud Rate | 1 Mbit/s (CAN) 8 Mbit/s (CAN FD) |
| Firmware Upgrade | Supported |
| Default Firmware | C-RTK 3 M4C |
| Data Interfaces | 1 × UART (JST GH 1.25 4P) 1 × CAN (JST GH 1.25 4P) 1 × USB Type-C 1 × ANT (BWMCX-KEF) |
| Operating Voltage | 4.75 ~ 5.3V (200 mA) |
| Dimensions | 52 × 48.5 × 16.5 mm (Including mounting holes) |
| Weight | 30 g (Excluding antenna and cable) |
| Operating Temperature | -15 ~ +85 ℃ |
Dimensions
C-RTK3 X20P Dimension Drawing

Pin Definition

C‑RTK3 X20P System Parameters
[!NOTE] The following are internal configuration parameters for the C‑RTK3 X20P; modification is generally unnecessary.
| Parameter | Range / Options | Default | Description |
|---|---|---|---|
| CAN1_FD_BITRATE | 1–8 (Mbps) | 4 | CAN1 FD data bitrate; must match flight controller CAN_P1_FDBITRATE |
| CAN1_FD_EN_MODE | 0~2 | 2 | CAN FD mode: 0=disable; 1=force enable; 2=auto |
| CAN_NODE_ID | 0~127 | 0 | CAN node ID; 0=auto-assign; set unique non-zero value if conflicts occur |
| CAN_R | True/False | False | CAN 120Ω termination resistor; True=enable |
| FLASH_BOOTLOADER | True/False | False | Update bootloader; auto resets to False after completion |
| GNSS_BASE_ECEFX | -2147483648.00 to 2147483647.00 |
— | Base ECEF X coordinate in cm (GNSS_BASE_MODE=1) |
| GNSS_BASE_ECEFY | -2147483648.00 to 2147483647.00 |
— | Base ECEF Y coordinate in cm (GNSS_BASE_MODE=1) |
| GNSS_BASE_ECEFZ | -2147483648.00 to 2147483647.00 |
— | Base ECEF Z coordinate in cm (GNSS_BASE_MODE=1) |
| GNSS_BASE_H_CM | -2147483648.00 to 2147483647.00 |
— | Base height WGS-84 HAE in cm (GNSS_BASE_MODE=2) |
| GNSS_BASE_LAT | -90.000 to 90.000 |
— | Base latitude in decimal degrees (GNSS_BASE_MODE=2) |
| GNSS_BASE_LON | -180.000~180.000 | — | Base longitude in decimal degrees (GNSS_BASE_MODE=2) |
| GNSS_BASE_MODE | 0~2 | 0 | Base position mode: 0=Survey-in; 1=Fixed ECEF; 2=Fixed LLH |
| GNSS_BASE_PACC | 0–4294967295 | 1 | Fixed base position accuracy in 0.1mm |
| GNSS_CFG_MODE | 0/1 | 1 | Receiver config: 0=bypass; 1=auto by controller |
| GNSS_DYN_MODEL | 0~13 | 10 | Dynamic model: 0=Base;1=Quasi-static;2=Robot; 3=Pedestrian;4=Automotive;5=Motorcycle;6=Racing;7=Heavy Machinery; 8=Marine;9=Air(<1g);10=Air(<2g);11=Air(<4g);12=Wearable;13=Unconstrained |
| GNSS_ITFM_SEND | True/False | False | Send interference/spoofing detection data via CAN Fix2 message |
| GNSS_MODE | 0–65535 (bitmask) | 239 | Satellite systems: Bit0=GPS, Bit1=SBAS, Bit2=Galileo, Bit3=BeiDou, Bit4=IMES, Bit5=QZSS, Bit6=GLONASS, Bit7=NavIC |
| GNSS_RATE_MS | 25–500 (ms) | 200 | GNSS output period (200ms=5Hz; 40ms=25Hz max) |
| GNSS_RTK_MSM_VER | 0–255 (bitmask) | 16 | RTCM MSM version: Bit4=MSM4, Bit7=MSM7; base station only |
| GNSS_SVIN_ACC_M | — | — | Survey-in min accuracy in m (default 2.5m) |
| GNSS_SVIN_DUR_S | 0–4294967295 | 60 | Survey-in min duration in seconds |
| GNSS_UART2_BAUD | 9600–8000000 | 230400 | UART2 baud rate |
| GNSS_UART2_PROT | 0–65535 (bitmask) | 1 | UART2 output protocol: Bit0=UBX, Bit1=NMEA, Bit2=RTCM3X |
| GNSS_USB_PROT | 0–65535 (bitmask) | 5 | USB output protocol; same bit definitions as GNSS_UART2_PROT |
| GPS_MB_ONLY_PORT | 0/1 | 0 | Dedicated UART2 for MovingBase; 1=enable, data not forwarded to CAN |
| GPS_TYPE | 0~18 | 2 | Role mode: 0=Standalone; 1=RTK Base; 2=RTK Rover; 17=MovingBase Base; 18=MovingBase Rover |
| UBX_PPS_DUTY | 1–99 (%) | 10 | PPS duty cycle |
| UBX_PPS_POL | 0/1 | 0 | PPS polarity: 0=idle low, rising edge; 1=idle high, falling edge |
| UBX_PPS_PRD_US | 0–50000000 (μs) | 1000000 | PPS pulse period in μs (0=Off) |