...

C-RTK3 X20P RTK: Manual, Firmware & Parameters FAQ

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.

Features

  • Full-band GNSS positioning (GPS / GLONASS / BeiDou / Galileo / QZSS / NavIC)
  • PPP-RTK (PointPerfect) precision point positioning support
  • 672 hardware channels with a 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 X20PSpecifications
Built-in ProcessorSTM32H5 (280MHz, Flash 512KB, RAM 128KB)
Hardware Channels672
Supported Constellations & Frequency BandsGPS: 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 PositioningAssistNow™ 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)
SecurityBuilt-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 AccuracySingle 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 Rate25 Hz
Convergence TimePPP-RTK: < 40 s
RTK: < 7 s
Startup TimeCold Start: 25 s
Hot Start: 2 s
Aided Start: 2 s
SensitivityTracking: -167 dBm
Cold Start: -148 dBm
Re-acquisition: -160 dBm
Hot Start: -158 dBm
PPS Time PulsePulse Accuracy RMS: 20 ns
Pulse 99% Confidence: 60 ns
Frequency: 1PPS (default), configurable 0.25 Hz ~ 10 MHz
Built-in Electronic CompassRM3100
Measurement Range±1100 μT (wide dynamic magnetic field adaptation)
Resolution13 nT @200 Cycle Count; detection sensitivity 2.7 nT @1 Hz
Noise Level15 nT @200 Cycle Count; noise floor 4 pT/√Hz (1Hz)
Linearity0.50% within ±200 μT
Communication ProtocolsCAN: DroneCAN / CAN FD
UART: NMEA 4.11/4.10/4.0, UBX, RTCM 3.4, SPARTN 2.0.2
Communication Baud Rate1 Mbit/s (CAN)
8 Mbit/s (CAN FD)
Firmware UpgradeSupported
Default FirmwareC-RTK3 M4C
Data Interfaces1 × UART (JST GH 1.25 4P)
1 × CAN (JST GH 1.25 4P)
1 × USB Type-C
1 × ANT (BWMCX-KEF)
Operating Voltage4.75 ~ 5.3V (200 mA)
Dimensions52 × 48.5 × 16.5 mm (Including mounting holes)
Weight30 g (Excluding antenna and cable)
Operating Temperature-15 ~ +85 ℃

 

Dimensions

C-RTK3 X20P Dimension Drawing

LED Status Indicators

 Note

The silkscreen markings are located beside the LED indicators; the RTK status LED is inactive in base station mode.

SilkscreenIconBlink PatternDescription
PWRRed LED solid onSolid onPower input normal; the module is powered
SYSYellow LED slow blinkSlow blinkBlinks once per second; the system is running normally
SYSYellow LED fast blinkFast blinkFirmware writing/upgrade in progress
SYSYellow LED solid onSolid onSolid on indicates a module fault; troubleshooting is required
PPSYellow LED solid onSolid onNo position fix yet; no PPS output
PPSYellow LED slow blinkSlow blinkBlinks once per second by default, synchronized with the PPS pulse
CANGreen LED fast blinkFast blinkCAN link established; data communication is normal
ModeGreen LED slow blinkSlow blinkWorking mode: normal rover
ModeGreen LED solid onSolid onWorking mode: normal base station
RTKBlue LED offOffNot in RTK mode; the indicator stays off
RTKBlue LED solid onSolid onRTK fixed solution obtained (inactive on the base station)

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 0~5 3 Survey-in min accuracy in m (default 3m)
GNSS_SVIN_DUR_S 0–4294967295 30 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)
 

C-RTK3 X20P User Guide

This section applies to the scenario of using the C-RTK3 X20P with ArduPilot vehicles.

 Note

ArduPilot 4.4.0 and later versions support the C-RTK3 X20P.

Setup as Rover (Air Side)

 Tip

LGC ground station provides graphical configuration and hardware connection guidance for simpler setup. Before configuration, ensure the C-RTK3 X20P is in rover mode (MODE LED flashing green); you can also switch modes by long-pressing the MODE button.

CAN Connection to Flight Controller

  • Take out the CAN cable from the accessory package, connect the flight controller to the CAN port of the C-RTK3 X20P; install the antenna and ensure a clear sky view.
  • Connect the flight controller to the ground station (such as Mission Planner / LGC) via USB.
  • Enter the Full Parameter List, input parameter names in the search bar and set the following parameters. // Mission Planner path: Configuration/Tuning → Full Parameter List → Search bar on the right
Parameter Value Remark
GPS1_TYPE 9 DroneCAN: 9; UART: 26
CAN_P1_DRIVER 1 Enable CAN1 driver
GPS_AUTO_CONFIG 2 Auto-configure DroneCAN GPS
GPS1_POS_X Value (m); set according to installation Antenna X-axis offset relative to center of gravity, positive forward
GPS1_POS_Y Value (m); set according to installation Antenna Y-axis offset relative to center of gravity, positive right
GPS1_POS_Z Value (m); set according to installation Antenna Z-axis offset relative to center of gravity, positive below CG

 Note

The C-RTK3 X20P is a single-antenna positioning module and does not support dual-antenna heading. There is no need to configure antenna offset parameters.

For firmware versions below ArduPilot 4.6 (exclusive):

ParameterValueRemark
GPS_TYPE9DroneCAN: 9; UART: 26
CAN_P1_DRIVER1Enable CAN1 driver
GPS_AUTO_CONFIG2Auto-configure DroneCAN GPS
GPS_POS1_XValue (m); set according to installationAntenna X-axis offset relative to center of gravity, positive forward
GPS_POS1_YValue (m); set according to installationAntenna Y-axis offset relative to center of gravity, positive right
GPS_POS1_ZValue (m); set according to installationAntenna Z-axis offset relative to center of gravity, positive below CG

Positioning Verification

  • GPS positioning data can be viewed in the status bar of the Mission Planner flight data toolbar.
  • Check whether the positioning status is RTK Fixed.
  • Observe the satellite count, HDOP value, and other indicators to confirm good positioning quality.

 Note

For RTK positioning, ensure the base station is functioning properly and the data link is working.

UART Connection to Flight Controller

ParameterValueRemark
GPS1_TYPE1DroneCAN: 9; UART: 1/2
GPS_AUTO_CONFIG0/1Auto-configure serial GPS. For AP firmware below 4.8.0, disable auto-config
GPS1_POS_XValue (m); set according to installationAntenna X-axis offset relative to center of gravity, positive forward
GPS1_POS_YValue (m); set according to installationAntenna Y-axis offset relative to center of gravity, positive right
GPS1_POS_ZValue (m); set according to installationAntenna Z-axis offset relative to center of gravity, positive below CG
SERIAL3_PROTOCOL-1Disable Serial3 if no GPS is connected to GPS&Safety port; GPS2/UART4 will be recognized as GPS1
SERIAL4_PROTOCOL5Set Serial4 as GPS port; generally no modification required
SERIAL4_BAUD230400Set Serial4 baud rate to 230400

Setup as Base Station

 Tip

Use LGC ground station for automated base station configuration. QGC does not yet support C-RTK3 X20P, and Mission Planner cannot configure the base station convergence accuracy and duration.

  • Connect the C-RTK3 X20P to your computer via a USB cable.
  • Confirm the C-RTK3 X20P is in base station mode (MODE LED solid green; long-press the MODE button to switch modes).
  • Launch LGC ground station. When the RTK satellite icon appears, the X20P base station has been recognized.
  • When the satellite icon shows RTK in red and the status displays Converging, the RTK base station is performing survey-in convergence positioning.
  • By default, the convergence accuracy is 3.0m with a minimum duration of 30s.
  • When the convergence accuracy and criteria are met, the RTK text turns white. The status displays RTCM transmitting, indicating base station configuration is complete; the ground station will send differential data to the controller/RTK rover.

 Note

The convergence accuracy can be configured — higher accuracy requires longer convergence time. Under default settings (3.0m accuracy), after the rover resolves, centimeter-level positioning accuracy can be achieved.

Interference Status Display

 Note

The C-RTK3 X20P supports interference status display with built-in CW interference detection and spectrum analysis; this requires compatible flight controller firmware and ground station support. Please contact CUAV technical support if needed.

C-RTK3 X20P (PX4) Configuration Guide

This section applies to using the C-RTK3 X20P with the PX4 flight stack (smart controllers running PX4 firmware).

 Note

The C-RTK3 X20P supports connection to the controller via CAN (DroneCAN) and UART. CAN is recommended. Before configuration, please mount the antenna with a clear view of the sky. Avoid placing near windows or other obstructions, as this may prevent obtaining good positioning data.

Using DroneCAN

Enabling the C-RTK3 X20P

 Note

After setting the following parameters in QGroundControl > Vehicle Setup > Parameters, reboot the controller.

Parameter Name Value Comment
UAVCAN_ENABLE "Sensors Automatic Config" Enable automatic configuration of UAVCAN sensors
EKF2_GPS_POS_X (Fill in according to actual installation, unit: meters) Set the offset of the antenna from the vehicle center of gravity (CG). Example: If the antenna is 25cm forward of the CG, set EKF2_GPS_POS_X to 0.25
EKF2_GPS_POS_Y (Fill in according to actual installation, unit: meters) Set the offset of the antenna from the vehicle center of gravity (CG). Example: If the antenna is 25cm to the right of the CG, set EKF2_GPS_POS_Y to 0.25
EKF2_GPS_POS_Z (Fill in according to actual installation, unit: meters) Set the offset of the antenna from the vehicle center of gravity (CG). Example: If the antenna is 25cm below the CG, set EKF2_GPS_POS_Z to 0.25
UAVCAN_PUB_RTCM Enable / UAVCAN_PUB_MDB If using RTK, subscribe to PX4 forwarding RTCM data to the base station
UAVCAN_SUB_GPS Enable Enable UAVCAN GPS data subscription
UAVCAN_SUB_GPS_R Enable Enable UAVCAN backup GPS data subscription
 

 Note

The C-RTK3 X20P is a single-antenna positioning module. There is no need to configure dual-antenna heading-related parameters (such as EKF2_GPS_CTRL, GPS_UBX_MODE, etc.).

Verifying Positioning Information

  • After configuration, place the vehicle outdoors in an area with a clear view of the sky and wait for GPS lock. Once the GPS has a valid fix, check the positioning status in QGroundControl > MAVLink Inspector > GPS_RAW_INT and confirm that an RTK Fixed solution is obtained.
  • Check the latitude, longitude, and altitude GLOBAL_POSITION_INT to verify that the positioning data is correct.

Firmware Upgrade

This section describes how to upgrade the firmware of the C-RTK3 X20P.

Firmware release notes

Firmware v1.11 was released on 2026-10-14, with the following main updates:

New parameters

  • GNSS_PPP_ENABLE: enables/disables the PPP quick configuration. Default 0 (disabled), 1 to enable. It is recommended to keep it disabled in mainland China.
  • MAG_CAN_SEND: enables/disables compass data. Default 1 (enabled), 0 to disable.
  • CAN1_BITRATE: sets the bitrate of the standard CAN bus (without CAN FD) to remain compatible with other devices on the same bus. Default 1000000; can be changed to 500000.

Fixes

  • Fixed abnormal positioning caused by interference.

 Note

This firmware affects positioning performance and the upgrade is mandatory. Modules delivered on or after 2026-10-14 already have this upgrade applied at the factory; no action is needed.

Preparations before upgrade

Upgrade system firmware

The system firmware is the C-RTK3 X20P device firmware. After the upgrade, you can check the software version on the DroneCAN/UAVCAN screen in Mission Planner.

  1. Connect the C-RTK3 X20P to the controller (the controller must run ArduPilot firmware).
  1. Download the firmware file C-RTK3-X20P-v1.11.bin.
  2. Connect the controller to the computer with a USB cable.
  3. Run Mission Planner, connect, and go to Initial Setup → Optional Hardware → DroneCAN/UAVCAN.
  4. Select MAVLinkCAN1/2 according to your hardware connection to obtain the CAN device list; click the Menu control on the right side of the C-RTK3 X20P device and choose Update, then choose No in the online-upgrade dialog to upgrade from a local file.
  1. In the file selector, select the firmware file and open it, then wait for the upgrade to finish.

Upgrade GNSS receiver firmware

The receiver firmware is the firmware of the GNSS positioning module inside the C-RTK3 X20P. Use the receiver firmware upgrade tool (Windows only) to upgrade it.

  1. Download the C-RTK3 X20P receiver firmware upgrade tool (Windows only).
  2. Download the X20P GNSS firmware file.
  3. Run the C-RTK3 X20P receiver firmware upgrade tool, click Browse, and select the X20P-GNSS-HPGV2.11.bin firmware file.
  4. Plug the C-RTK3 X20P into the computer with a USB cable; the tool automatically detects the device and flashes the firmware to the GNSS receiver.

FAQ

  1. Does C-RTK3 X20P support working as an RTK base station?
  • Yes. The C-RTK3 X20P supports operation as both an RTK base station and an RTK rover.
  1. Does C-RTK3 X20P support dual-antenna heading?
  • No. The C-RTK3 X20P is a single-antenna high-precision positioning module and does not support dual-antenna heading (Moving Baseline). If heading capability is required, please choose the C-RTK3 G5 or C-RTK 2HP.
  1. What differential correction services does C-RTK3 X20P support?
  • It supports traditional RTK differential correction, PPP-RTK (u-blox PointPerfect correction service), and SBAS augmentation.
  1. Does it default to standard CAN 2.0 or CAN FD?
  • To ensure peripheral compatibility, the factory default is standard CAN 2.0. It can be switched to CAN FD mode via parameters. After switching, all devices on the bus must support CAN FD; otherwise, normal communication and device recognition will fail.
  1. What application fields is C-RTK3 X20P suitable for?
  • It applies to all devices and scenarios requiring high-precision GNSS positioning, such as drones, unmanned ground vehicles, intelligent driving, agricultural machinery navigation, industrial automation, robots, and underwater vehicles.
  1. What is the Galileo OSNMA feature on the C-RTK3 X20P?
  • OSNMA (Open Service Navigation Message Authentication) is the navigation message authentication feature of the Galileo satellite navigation system. It effectively detects and defends against GNSS spoofing attacks, ensuring the security and trustworthiness of positioning data.
  1. If the gpsyaw value stays at 0 or 655.35, the flight controller is not obtaining heading data. Possible causes:
  • Incorrect master/slave antenna offset settings; the setting error must not exceed 20%.
  • Satellite positioning looks good, but the slave antenna may be poorly positioned or not fixed; check whether the slave antenna and its feeder cable are properly connected.
  • Poor positioning quality; place the module outdoors with a clear sky view. Do not test near a window.
  • The module is working in single-antenna mode; check the related parameters.
  1. In GPS mode, the vehicle spins 360° and cannot hold its position:
  • First, rule out compass issues, then check the following.
  • GPS position offset parameters are set incorrectly or not set.GPS_POS1_X/Y/Z).
  • Poor GNSS positioning quality.
  • Disable SBAS augmentation. In areas where SBAS is not covered or poorly covered, enabling SBAS may cause position drift.
Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.