RTK and RTCM3 on XXL and XL

Having trouble with setting up rtk. My use case is as follows.

XXL RTK as base
XL RTK as “rover”
Radio Telemetry Kit (433) for communication

I intend to use the “rover” hooked up to a laptop and U-Center for more accurate reading of my location. (No drone/autopilot application.) Is this possible? Should the setup be done by following your instructions on manual configuration of base and rover? That’s what I’ve tried. Doesn’t seem to work.

Base seems to work. Packet console shows RTCM3 packets. TXBUF indicates some traffic on UART1.

Rover never enters rtk mode. I can’t find any sign of incoming RTCM3 traffic on the XL.

Telemetry kit seems to work. I’ve also tried to bypass the radio by connecting the tx and rx of base and rover with a wire.

I tried many different baud rates on the radio and uart, naturally matching. What is the recommended baud rate?

I have the latest firmware (1.40) on both devices. Reference version on base and rover on rover. Also tried reference on both.

On XL the UART cable is on telem port and switch is on telem. No soldering needed, right? Also tried rover on port and switch.

On U-center (18.05.02) the RTCMs are version 3.3 as opposed to 3.2 on your instructions. That shouldn’t matter?

The ports are set as per your instructions. I’ve also tried only outgoing RTCM3 on base and incoming on rover on UART1.

Any ideas or suggestions on what to try next or how to locate the problem?

Much appreciated.

Hi, my config is exactly same as yours and basically it is working althought still I have never get RTK fix on it (Float is OK)
If you follow the instructions on the site it should work.

On base
with CFG-PRT set UART1 protocol out RTCM and desired boudrate (I use 38400)
CFG-MSG set RTCM messages to UART1 (1005,1077,1087,1230)
After that set TMODE3 to survey in e.g. 1 meter and 600 sec

When survey in finishes it starts to send RTCM messages via UART1 with the baud you have set.
You can check RTCM messages on Rover side. Go to Message view - UBX - RXM - RTCM
in it you will see the incomming messages. (Of course on rover UART1 you should set protocol in to RTCM and the same baud what you used on base)


Thanks Rugo,

I think I have those parameters right. I had 1127 instead of 1230. Tried both. No change.

There’s is one thing you could help me with. What is the firmware version on your XL? (Number and Rover or Reference)

Hi jykakall,


Partly solved.

I was able to get the system working with wired connection from XXL to the Rover port of the XL with JST-GH. It would also work by connecting pin5 of the XXL to pin C3 of the XL along with 5V and GND.

Updating firmware with the legacy update option may have done the trick?

Next up is to get the wireless connection working. Any help with the wiring and settings would be welcome. The basic settings with autopilots don’t seem to apply in my case.

Thanks again.

I have done the wireless connection between XXL and XL.
Unfortunately issue is there. RTCM messages received with CRC error on XL(rover) side.
Currently I am not sure if the radio link has a problem or still something has to tweak.
I have tried different serial speed starting from 9600 up to 115200 but result is same, CRC error mostly on RTCM message 1077.
My next plan is to monitor/record messages on base radio input and -in the same time- on rover’s radio output then compare them to see if radio link is OK or not.

I am really curious what will be your experiences (seems to be our configuration is same, XXL, XL and HM-TRLR-S.
You know on rover side you can see received RTCMes on Message view-UBX-RXM-RTCM (input status)
Please take attention to CRC errors. Also important to get low latency. You can see the “age” of received correction on NMEA-GxGGA -> Age of DGNSS correction. Normally it should be around 1-2 sec max.

Please send me your observations when you have done it.

Below you can see from the first 19 1077-es messages 19 were received with CRC error.
Also can see there are some unknow/unwanted receives (garbage?)

I have done radio test.
Seems to be the problem is that our radio HM-TRLR-S (in LoRa mode) behaves like/is a “packet” radio just send/receive packet which max size is defined in radio setup. (I do not know packet readio technique, just have same general idea about it)
Well let take a look on configuration of radio:
Notice “payload data length” is 127 bytes which is the maximum can set.

I have hooked up the two radios to two terminal emulators. I sent different sized mesages on one of them and observed what the other receives.

  1. if I send <127 byte sized message that is received well, no missing bytes or other problem
  2. if I send >127 byte sized messages that is received badly, first few bytes are changed…

See the result here:

NEO M8P creates a “packet” of RTCM messages (1005+1077+1087+1230) then sends out this packet over the UART1 to the input of our radio. Since this packet size is surely bigger than 127 bytes our radio do the “mistake”, change some bytes during sends it out. On received side we receive bad message, therefore we get CRC error and RTCM correction message is useless…(situation more confused! Because usually just the first RTCM message is bad, the others are OK (e.g. 1077 bad, but others 1005,1087,1230 are OK) XL goes to DGNSS/Float RTK mode…we think we just need to wait until RTK fix solution is done, but that has never comes…since the first RTCM message is totally useless…)

All of these mean we would need to “cut” the RTCM message packet into smaller packets (<=127) bytes, send them over the radio and on receiver side (at XL) would need to put togather them again…This can be done only if we would use a microcontroller on both side (I believe) but this would be make more complicated the whole system.
Well, what the solution is? I do not know yet. My next bet to try to use other mode of radio (FSK, GFSK) maybe. Since I do not know too much about these radio modes I should read about them first.
(Before I bought this radio I thought it is “transparent”…I send series of bytes to input and receive that series of bytes on the other ends, but as we can see this is a bit more complicated.)

I’ll keep you informed -if you are interesting.



Actually my radio is the other one made/sold by Drotek, 3DR. They seem to be very similar though. For example max payload is 127. I think most things apply to both.

I still haven’t been able to to get anything from the base uart to the radio. Wired connection works fine as far as the RTCM messages go.

The radios also work fine with usb port and configuration software. Settings can be done remotely and messages sent via terminal.

I think my next step is to connect the radios to arduinos to see if anything goes through the uart of the radios.

I’m certainly no expert, but I would be very surprised if the were a need for chopping and parsing the messages with extra software and devices.

If you haven’t done so already, you could try to limit the UART traffic to outgoing RTCM3 from base and incoming RTCM3 to rover. None to base in and rover out.

Lets keep each other informed. I am a few steps behind you though.

The solution seems to be to change radio “Mode” from LoRa to FSK.
In FSK mode there is no problem with the size of message.

I’ll put togather the stuff then see if RTCMes are received well, without CRC error.


RTCM over the radio is OK now. Use FSK not LoRa!