Product · Catalog 2026

AP-RTK X20DComing Soon

Dual-Antenna RTK GNSS with u-blox ZED-X20D
AP-RTK X20D
Description

AP-RTK X20D uses one u-blox ZED-X20D all-band receiver and two antennas for RTK positioning and heading. The STM32 forwards the receiver's position and heading plus separate RM3100 compass measurements over DroneCAN to the flight controller; yaw fusion belongs to the flight controller, not the peripheral MCU. Product images are renders of the enclosure design fitted with the R3 PCB, with engraved port and LED names; the gallery also shows the R3 PCB CAD renders. Firmware 1.0.1 is supplied for engineering evaluation, not as production or flight-qualified firmware.

Basic Specifications
Receiver
u-blox ZED-X20D — single module, dual antenna, HDG 2.00
GNSS Bands
All-band GNSS on both antennas (L1 / L2 / L5 / L6)
MCU
STM32F412Rx, ARM Cortex-M4, 512 KB flash
Compass
PNI RM3100 on I2C3 — axis qualification pending
Heading
Receiver-computed ANT1-to-ANT2 heading; UBX-NAV-DAHEADING v2
Update Rate
Firmware requests 5 Hz navigation at 230400 baud; end-to-end CAN rate requires measurement
Comm. Protocol
DroneCAN — position, ardupilot.gnss.Heading and separate magnetometer data
I/O Ports
2× MMCX antenna · CAN · UART (RTCM input) · DEBUG (SWD + console) · PPS/EVENT · USB-C (MCU)
PCB
R3 · 33.00 × 45.17 mm · 4 layers · 0.8 mm
Firmware
AP_Periph · novaX 1.0.1 engineering release · board ID 6205
Validation Status
Windows GCC 10.2.1 build verified; first-article hardware and flight qualification pending
AP-RTK X20D pinout
AP-RTK X20D pinout

Pin definitions below are checked pin by pin against the R3 schematic netlist. CAN and UART: pin 1 = GND and pin 4 = 5 V, the reverse of the Pixhawk numbering (pin 1 = 5 V). DEBUG: pin 1 = 5 V and pin 6 = GND. PPS: pins 1 and 3 = GND. Pin order and cables follow AP-RTK dual; check both ends before using a generic 1:1 Pixhawk cable. Power can come from the CAN/UART 5 V pin, the DEBUG 5 V pin or USB VBUS, each through its own 2 A PPTC fuse and Schottky diode. USB-C is wired to the STM32F412 (service, bootloader, DFU), not to the ZED-X20D; the receiver talks to the MCU over USART2 (GPS port 4). ANT1 is the heading reference at the rear and ANT2 goes at the front, the reverse of AP-RTK dual; swapped cables turn the heading by 180°. Status LEDs on the side of the case: PWR red = power, STAT green = AP_Periph status, SAFE red = safety, HDG green = heading valid, RTK blue = RTK fixed. Images are renders of the case design with the engraved port and LED names.

PinSignalFunction
CAN · JST-GH 4P · DroneCAN to the flight controller · power input
1GNDGround
2CAN_LCAN bus low
3CAN_HCAN bus high
45V5 V supply input — shared with UART pin 4
UART · JST-GH 4P · RTCM correction input · power input
1GNDGround
2TXMCU transmit (PC6, USART6_TX) — not used by firmware 1.0.1
3RXRTCM corrections into the ZED-X20D UART2 (also MCU PC7, USART6_RX)
45V5 V supply input — shared with CAN pin 4
DEBUG · JST-GH 6P · SWD programming · MCU debug console
15V5 V supply input
2SWDIOSWD data (PA13) — bootloader programming and firmware recovery
3SWCLKSWD clock (PA14)
4RXDebug console receive (PB7, USART1_RX)
5TXDebug console transmit (PB6, USART1_TX)
6GNDGround
PPS · JST-GH 4P · Receiver timing — PPS output · EVENT input
1GNDGround
2EVENTExternal event input to the receiver (EXTINT) — e.g. camera trigger time stamps
3GNDGround
4PPSPulse-per-second output from the receiver (TIMEPULSE, also MCU PA7)
ANT1 · ANT2 · MMCX · GNSS antenna inputs · 3.3 V antenna bias · ESD protected
ANT1RF_IN_1Heading reference antenna — mount at the rear of the vehicle
ANT2RF_IN_2Mount at the front — heading = direction from ANT1 to ANT2
TypeVersionDateSizeDownload
AP_Periph (DroneCAN OTA)
Application binary for DroneCAN OTA. Bench update and recovery qualification is pending.
1.0.12026-09-07196 KBAP-RTK_X20D-v1.0.1.bin
SHA-256: d83dacf71278302587b3fc6e42c9c7e2d5eeab3d308bc7dc85302b4e9407f452
AP_Periph (.apj package)
Board ID 6205 application package for ArduPilot-compatible uploaders over the MCU USB bootloader. Not offered in this catalog's Web Updater.
1.0.12026-09-07197 KBAP-RTK_X20D-v1.0.1.apj
SHA-256: e896e08ee87b92bc930ebd737ad5196fe2973cf6ef569962d2d067d2c94d21e0
Bootloader + App (merged HEX)
First-article SWD / STM32 ROM USB DFU image at 0x08000000. Raw DFU/SWD does not enforce board ID; verify X20D R3 hardware before programming.
1.0.12026-09-07714 KBAP-RTK_X20D-v1.0.1_with_bl.hex
SHA-256: 2c843e66707e2843c5364f9f82a821954192b20ba6020b3f252d686b97733b36
Release verification (JSON)
File sizes and SHA-256 hashes, committed source and patch validation, binary/HEX consistency and Windows build tool provenance. Not a flashable image.
1.0.12026-09-073 KBAP-RTK_X20D-v1.0.1-verification.json
SHA-256: a2f054d1672cd6afc6fc220d10d97b8a3e8b9735e764ee4c6daa8bc4a12311eb

v1.0.1 is an engineering release, not hardware/flight approval. Native Windows GCC 10.2.1 build (Cygwin, no WSL). Product firmware string: novaX AP-RTK X20D v1.0.1; upstream AP_Periph numeric version remains 1.8.0-dev, so DroneCAN GetNodeInfo major/minor can show 1.8. Board ID 6205; never substitute dual (1085) or G5H (6206) images. Raw DFU/SWD does not enforce board ID. Downloads are available here without access to the private GNSS source repository. Live GNSS, heading, compass axes and USB/DFU/CAN update/recovery still need first-article testing. The catalog Web Updater is not enabled for this unqualified target.

ParameterValueDescription
AF-H7E flight controller — DroneCAN and EKF3
CAN_P1_DRIVER1Enable CAN1; reboot after changes
CAN_D1_PROTOCOL1DroneCAN
GPS1_TYPE9DroneCAN GPS (GPS_TYPE on older firmware)
GPS1_MB_TYPE0No moving-baseline offset conversion; receiver already supplies forward heading
AHRS_EKF_TYPE3Use EKF3
EK3_ENABLE1Enable EKF3
EK3_SRC1_YAW2GPS yaw; use 3 for compass fallback only after the RM3100 axes and calibration have been qualified

1. Antenna direction — ANT1 / RF_IN_1 at the rear; ANT2 / RF_IN_2 at the front. The receiver reports the ANT1-to-ANT2 vector, so the firmware sets CFG-NAVSPG-DAHEADING_OFFSET to 0. Keep antennas on the centerline at equal height and measure the baseline. This direction is opposite to the AP-RTK dual artwork; swapping cables produces a 180° heading error. 2. H7E connection — Use DroneCAN and the flight-controller parameters above. X20D needs only its AP_Periph image; no X20D-specific H7E firmware rebuild is required. Do not copy G5H GPS1_MB_* offsets onto this node. 3. Position offset — Measure ANT1 relative to the vehicle center of gravity and enter GPS1_POS_X/Y/Z on H7E (+X forward, +Y right, +Z down). Do not reuse example offsets without measurement. 4. First-article checks — Confirm factory receiver startup, RTK corrections, live position, yaw at known headings, loss/reacquisition, RM3100 axes, power and all update/recovery paths on a bench before any flight use. 5. Receiver reference — u-blox ZED-X20D official product information: https://www.u-blox.com/en/product/zed-x20d-module