Issues with rover GNSS signal reception via Ucenter with the Pixhawk 4

Hello, I am currently setting up an RTK base and rover via Ucenter. The base was able to receive at least some GNSS signals through Ucenter, but there were issues with the rover. I connected the H-RTK F9P Rover Lite directly to the GPS Port on the Pixhawk 4 and then the Pixhawk 4 to the PC. However, I couldn’t receive any GNSS signal in Ucenter, although it worked in Mission Planner. I have also reset the FC multiple times and reinstalled software via MP.

Before someone mentions that I can also activate the RTK via MP, I aim to automate the entire process in case the RTK station and rover need to reboot at any time, which apparently can only be done through Ucenter.
However, my goal for now is simply to receive any GNSS signals at all through Ucenter.

Thank you for your support.

Warm regards,
Spy

You can’t just arbitrarily connect uCenter to an autopilot’s USB port and expect anything to happen. uCenter expects GNSS messages (UBX, NMEA, RTCM). The autopilot only communicates via MavLink.

There should be almost zero need to connect your autopilot or its onboard GPS module to uCenter.

Most users create problems for themselves when attempting to do anything with uCenter. Recommend you stop using it unless you know what you’re doing (this post indicates that you do not).

Thank you very much for the quick response!

As I mentioned earlier, I aim to automate the entire process in case the RTK station and rover need to reboot at any time, which apparently can only be done through Ucenter.

Holybro had sent me to the following link:
Portable RTK Base Station Setup

In that link, a block entry was also written:
Simple Portable RTK Base Station

Some settings need to be made on the GNSS receiver through UCenter. Therefore I am forced to work with UCenter. Both instances used an H-RTK F9P Helical or a similar antenna which can be directly connected to a PC. However, this didn’t work for me, and my first attempt looked like this.

1:

Would you now suggest I try it this way?

2:

I would prefer to utilize it as in the first variant. Otherwise, I’d have to consistently purchase this additional block, which apparently only intercepts the GNSS data and allows U-center to read it via the USB-C port (blue). Please correct me if I’m mistaken. Or is there an even simpler solution?

It’s extremely unclear what you’re trying to do. I assume you want to transmit RTCM3 wirelessly to the autopilot, but you’re showing a spiderweb of wiring that makes absolutely no sense.

You need a fixed base station that transmits RTCM3 correction data either over MAVLink telemetry (via Mission Planner) or via its own radio link. You show no such architecture.

Also, the Rover Lite module that you’ve chosen exposes only one communication port to the autopilot, so I think you’re fairly stuck using MAVLink as the mechanism to transmit RTCM3 data.

Hello Yuri,
I’m going to attempt to clarify my plan and current setup a bit. I have a drone and an RTK base. My primary goal is to achieve highly accurate positioning through RTK. This has worked quite well via Mission Planner (MP). However, my issue arises when my computer/RTK base loses power and reboots, requiring manual reconfiguration of the RTK base by a person in MP. Ideally, I need the RTK base to automatically configure itself and connect with the drone without human intervention. Holybro suggested that I could find guidance for this under the Portable RTK Base Station Setup and following that some settings need to be made on the GNSS receiver through UCenter

Here are the components I have:

RTK Base:

Drone:


Communication:

Before I can proceed with anything, my initial goal was to display any GNSS signals via UCenter. This worked flawlessly with the RTK base alone. However, I encountered difficulty with the drone as it failed to display GNSS signals, which is my current problem. Since I had this cube from the RTK base, I thought of attaching my GPS antenna to it and seeing what would happen. Afterwards some settings need to be made on the GNSS receiver (GPS antenna) through UCenter.

First, the Rover Lite is not just a GPS antenna. It is a complete GPS module, and you won’t achieve anything by trying to daisy chain it through the base module.

Technically, it’s possible to configure Rover Lite while connected to the autopilot via serial passthrough:
UBlox GPS Configuration — Copter documentation (ardupilot.org)

HOWEVER:
As I stated before, the Rover Lite only exposes one serial port. If you look closely at the documentation and projects you’ve linked, they all use a more fully featured GPS onboard the vehicle that has at least two ports available. One port is connected to the autopilot for positioning, while the other is tied to the radio providing RTCM3.

Your chosen rover GPS cannot be configured that way, and ArduPilot’s present firmware doesn’t accept a raw RTCM3 stream on a serial port.

To provide corrections to the Rover Lite, you need to combine the RTCM3 stream with MAVLink telemetry so that the autopilot can pass corrections over the sole serial port on that rover GPS. The only way to do that (off the shelf) that I’m aware is through Mission Planner.

If you want to connect that radio directly to the rover GPS, you’ll need one like the H-RTK F9P Helical or the QioTek model that @hwurzburg used in his project that you linked.

1 Like

Hey Yuri,
Thank you very much for the great help!!

Would it be possible for you to describe this part a bit more precisely?

"To provide corrections to the Rover Lite, you need to combine the RTCM3 stream with MAVLink telemetry so that the autopilot can pass corrections over the sole serial port on that rover GPS. The only way to do that (off the shelf) that I’m aware is through Mission Planner.

If you want to connect that radio directly to the rover GPS, you’ll need one like the H-RTK F9P Helical or the QioTek model that @hwurzburg used in his project that you linked."

Wouldn’t it be sufficient to connect the radio to the Tele Port on the Pixhawk4?
And how exactly can I merge the RTCM3 stream with MAVLink via MP?

Not exactly. The autopilot won’t accept a raw RTCM3 stream.

If you connect the radio to the autopilot’s telemetry port, you must use MAVLink for it to be useful.

For MP:
https://ardupilot.org/copter/docs/common-rtk-correction.html

Admittedly, I don’t quite understand the following sentence from the link:

The correction data is passed from the Base unit through the GCS program to the vehicle’s MAVLink connection to the GCS, providing the vehicle’s RTK GPS with correction data to enable its position reporting to become more accurate.”

Okay, this sentence seems to have too many "to"s, right? XD

But can I infer from this that my RTK Base Station sends RTCM messages which are then packaged in MAVLink by the GCS, and then passed on to the drone, which then decodes them back into RTCM messages for the GPS? That’s how I imagine it, as otherwise my Pixhawk wouldn’t be able to handle such things…

I never fully understood the exact sequence of the RTK process as who does what?

And regarding your point:

“To provide corrections to the Rover Lite, you need to combine the RTCM3 stream with MAVLink telemetry so that the autopilot can pass corrections over the sole serial port on that rover GPS. The only way to do that (off the shelf) that I’m aware is through Mission Planner.”

Doesn’t MP do that automatically, as described above?

Yes, Mission Planner takes care of packaging RTCM3 and MAVLink. I highly suggest you follow that path, at least for now.

You stated a desire to avoid using Mission Planner. With your present architecture, I don’t see a way around it without some custom programming and additional hardware (it could be done with a microcontroller, but I’m afraid that’s a more involved topic than I’m prepared to tackle here).

Hey Yuri, I’m back! You’re absolutely right! Before I buy the Holybro H-RTK F9P Helical, I wanted to see if there are any other options available. I still have an Ardusimple-RTk-Kit and I wanted to ask if the following setup for the RTK base and drone is correct?

I was able to set up the RTK base via the following Link successfully. However, I’m encountering significant issues with the Sik Radios not transmitting data, even though they are supposed to work with 3.3V.

You said you want to avoid using a laptop for your application, yet all of your pictures show one connected. I’m confused by that.

What is the USB-UART converter with a wall adapter supposed to do? It can’t do anything useful as depicted.

Your SiK radios are probably defaulted to 57600 baud. The fastest they’ll go is 115200, which is configurable on the Mission Planner Setup page. I’d use that rate and make sure the associated GPS UART is set to 115200. Select RTCM3 as the only output protocol to avoid exceeding the bandwidth limit at that baud rate.

Lastly, ArduSimple labels their TX/RX pins backwards. So, connect TX↔TX and RX↔RX when using that module.

Hey Yuri, as I mentioned, unfortunately, I can’t use MP, and it should ideally work with Ucenter. I noticed you’ve worked with the modules before. The last part about RX → RX is very helpful. I’ll try it out in the next few days. I recall accidentally wiring it the wrong way once before, but nothing happened. I’ll give it another shot. My guess is that it only works with the antennas provided with the kit, which doesn’t really make sense. Should I also attach an XBee antenna to the RTK base then?

„What is the USB-UART converter with a wall adapter supposed to do? It can’t do anything useful as depicted.“

Holybro docs:
H-RTK UART1 & UART2 VCC ports are connected internally, so if you powered one, the other will output power also. But if you supply power the RTK module with USB-C ONLY, the UART1 & UART2 VCC port will not output power.

Ok, I understand your use of the USB adapter now.

MP is required to set up SiK radios. It doesn’t need to stay connected. I linked the documentation.

Any serial based radio will work if set up properly.

Beyond that, I’m kind of at a loss. I’ve tried to explain what you need to do, and I don’t really know how to explain it further.

Sometimes it just takes another voice coming from a different perspective to explain it in different words. @ktrussell could weigh in here if he has time at some point. He has at least as much experience as I do with RTK GPS, if not more.

It seems to me @The_Spy that you are trying to set up your RTCM3 comm from your RTK Fixed Base to your Rover very much the way I do. I have direct communication using a separate telemetry link so that Mission Planner is not needed. I went a little rogue with my choice of telemetry, somewhat out of a desire to experiment with LoRa technology (about 6 years ago) and hoping to get decent range from inexpensive hardware.

I used Adafruit Feather M0 LoRa modules. I wrote a small TX program that simply brute force packetizes the incoming serial stream and transmits the packets. The RX program on the other end just sends the received data out the serial port to the Rover GPS. I had serious doubts that this simple scheme would work due to timing issues, as the RTCM3 comes in bursts of about 1000 bytes and the LoRa module has a max data payload size of 252 bytes per packet. But, it just worked!

I have not whole-heartedly recommended this solution to everyone because:
(a) It is not just plug-and-play. For instance, the Feather modules have no antenna or antenna jack installed. Pads are on the board for a uFL connector that you must purchase separately and solder in place. It is a pretty small SMD device. In addition, you have to load the Arduino sketch into the Feather modules, do some soldering, etc.
(b) GPS Injection in Mission Planner is easy to setup and just works.

If, however, you have a reason to stay independent of MP, as I did, and don’t mind a little work, I highly recommend this method.

If interested:
Code: https://github.com/ktrussell/Serial_to_LoRa
Board (2 required): Adafruit Feather M0 with RFM95 LoRa Radio - 900MHz [RadioFruit] : ID 3178
Connector (2 required): uFL SMT Antenna Connector : ID 1661
Antennae: your choice of 915MHz antenna
Note: There is a 433MHz Version also. I see it uses an RFM96, not RFM95. I do not know if there is a difference other than frequency. I used the 915MHz version.
Mouser and Digikey stock the Adafruit devices also, sometimes providing faster shipping.

Hello @ktrussell thank you very much for your detailed assistance. You are absolutely right, that could be a solution. If I had the time, I would do that as well. However, I think it might be easier to purchase the H-RTK F9P Helical. What bothered me, as I mentioned in my last post, was that despite what I perceived as the correct wiring, no data was transmitted, even though the radios were connected. Through the set, I still have these Xbee antennas that are supposed to go on the simpleRTK2B board. However, I’m not sure if I can attach them to the RTK base and if that could work? Alternatively is it possibl, that my RTK base still utilizes this Sik radio and communicates with the Xbee antenna on the board, as shown in the following image.

The computers are still there for the initial configuration and will, of course, be disconnected afterward.

Thank you very much for your help.

I’m not sure I completely follow, but I don’t think the SiK radios and the XBee radios can talk to each other.

I also do not know anything about the Holybro H-RTK F9P. Sorry.

Happy Easter, everyone! Ktrussell, those are very valuable insights regarding the antenna. I had the same thought; it operates in a completely different frequency range as well. Now I’ve revised my plan to make progress. Currently, I have the Ardusimple RTK2B kit and intend to set one up as an RTK base. Both should then communicate using Xbee antennas. Setting up the base went smoothly, but I’m puzzled as to why the drone isn’t picking up the base RTCM3 signals.

I’ve adjusted the settings according to the specified values.

For Base RTK:

Attach USB to the unit, start the UBLOX U-Center app, connect, and in the U-Center configuration view, set:

  • PRT: UART1, 57600 baud, RCTM3 out, UBX in…press send button in lower left

  • TMODE3: Survey-in, 60seconds, 2 meters…press send

  • MSG: RTCM3.3 - 1005, UART1 in/out, 1sec…press send RTCM3.3 - 1074, UART1 in/out, 1sec…press send RTCM3.3 - 1084, UART1 in/out, 1sec…press send RTCM3.3 - 1094, UART1 in/out, 1sec…press send RTCM3.3 - 1124, UART1 in/out, 1sec…press send RTCM3.3 - 1230, UART1 in/out, 5sec…press send

  • CFG: Save current configuration to FLASH…press send

For the Rover unit:

Attach USB and use U-Center to set:

  • PRT: UART2, 57600Kbaud, RCTM3 in, UBX out…press send

  • CFG: Save current configuration to FLASH…press send

In general I followed the following tutorial:
Setting up a Rover Base RTK System

Have I done something wrong? :slight_smile:

PS: Additionally, I plan to switch to using the Hoybro base later on.