C-RTK3 X20P Centimeter-Level Positioning Module
CUAV 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) |
C-RTK3 X20P User Guide
This chapter 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.
Using as an RTK Base Station
The C-RTK3 X20P supports operation as an RTK base station. When used as a base station:
- Connect the X20P to the flight controller via CAN or UART.
- Set the base station position through the ground station (enter precise known coordinates).
- The base station will broadcast differential correction data via the RTCM protocol.
Flight Controller Parameter Configuration (CAN Connection, Recommended)
- 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):
| Parameter | Value | Remark |
|---|---|---|
GPS_TYPE | 9 | DroneCAN: 9; UART: 26 |
CAN_P1_DRIVER | 1 | Enable CAN1 driver |
GPS_AUTO_CONFIG | 2 | Auto configure DroneCAN GPS |
GPS_POS1_X | Value (m); set according to installation | Antenna X-axis offset relative to center of gravity, positive forward |
GPS_POS1_Y | Value (m); set according to installation | Antenna Y-axis offset relative to center of gravity, positive right |
GPS_POS1_Z | Value (m); set according to installation | Antenna 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.
Troubleshooting
- Unable to obtain RTK Fixed solution. Possible causes:
- The base station is not working properly or the data link is disconnected.
- Poor satellite positioning quality; place the module outdoors with open sky view.
- Poor antenna and feeder connection; check the connection status.
- RTCM data is not correctly received by the module.
- Position drift or insufficient accuracy in GPS mode:
- Check whether the GPS position offset settings match the actual installation (
GPS_POS1_X/Y/Z). - Poor GNSS positioning quality; check satellite count and HDOP.
- Disable SBAS augmentation. In areas with weak or no SBAS coverage, enabling SBAS may cause position drift.
UART Connection Parameter Configuration
Note
ArduPilot 4.4.0 and later versions support the C-RTK3 X20P.
| Parameter | Value | Remark |
|---|---|---|
GPS1_TYPE | 26 | DroneCAN: 9; UART: 26 |
GPS_AUTO_CONFIG | 1 | Auto configure serial 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 |
SERIAL3_PROTOCOL | -1 | Disable Serial3 if no GPS is connected to GPS&Safety port; GPS2/UART4 will be recognized as GPS1 |
SERIAL4_PROTOCOL | 5 | Set Serial4 as GPS port, generally no modification required |
SERIAL4_BAUD | 460800 | Set Serial4 baud rate to 460800 |
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 chapter 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 in GLOBAL_POSITION_INT to verify the positioning data is correct.
Firmware Upgrade
Note
No official upgrade firmware has been released for the time being. Do not use any third-party firmware.
FAQ
- Does C-RTK3 X20P support working as an RTK base station?
Answer: Yes. The C-RTK3 X20P supports operation as both an RTK base station and an RTK rover.
- Does C-RTK3 X20P support dual-antenna heading?
Answer: 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-RTK2 HP.
- What differential correction services does C-RTK3 X20P support?
Answer: It supports traditional RTK differential correction, PPP-RTK (u-blox PointPerfect correction service), and SBAS augmentation.
- Does it default to standard CAN 2.0 or CAN FD?
Answer: 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.
- What application fields is C-RTK3 X20P suitable for?
Answer: 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.
- What is the Galileo OSNMA feature on the C-RTK3 X20P?
Answer: 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.









Leave a comment
You must be logged in to post a comment.