RTK! which is better

cuav c-rtk 9p - holybro h-rtk f9p which is better?

Big GPS Round Up here are some comparisons.

Here are some additional thoughts you might want to append to the excellent report by @tridge .

GNSS receivers utilizing F9P are other uBlox receivers are fundamentally a packaging of uBlox GNSS receivers. To fully understand and utilize them, you have to approach them as uBlox devices - not Holybro, Cuav, etc. In fact companies such as Holybro, Cuav have little to say about the underlying uBlox receivers.

Here’s the example that led me to understand this -

Using a Holybro Helical F9P receiver, I implemented RTK on a small quad-copter. The result was a cascade of GPS glitches. (I don’t recall the specific ArduPilot warning verbiage.)

Investigating this, I discovered that ArduPilot expects the GNSS receiver to provide messages every 200ms - 5hz. I discovered in the release notes of the latest F9P firmware update, that the F9P can’t deliver messages any faster than 7hz when locking on to 4 constellations and conducting RTK. By default, the F9P was using 4 or 5 constellations.

You could clearly see this by looking at the ArduPilot BIN data: GPA.DELTA

Finding this limitation required participation in the uBlox discussion forum. Here’s a link to a similar discussion thread on the uBlox portal: https://portal.u-blox.com/s/question/0D52p0000DUh4laCQB/f9p-firmware-132-rtk-fix-rate-issue

So to get full use of any uBlox receiver conducting RTK may require learning a bit about the uBlox receiver, the uBlox support portal, and the uBlox utility uCenter that allows you to both set up the receiver and observe it’s performance.

With this being said - one of the things that matters is how easily it is to directly access the uBlox receiver itself. This is one reason why I like the Holybro products - they provide convenient connectors for USB connection of the receiver to a PC for uploading firmware and modifying parameters.

ArduPilot provides access to modifying many uBlox parameters. I’ve found that the best approach is to use the uBlox utility, uCenter, to set the receiver to it’s default parameters, then use ArduPilot to make the necessary changes for your needs.

In the case of RTK, I found that using the ArduPilot parameters to set the uBlox receiver’s parameters to only two constellations, and increasing the frequency to 10hz, ensured that the receivers messages always arrived within the 200ms that ArduPilot requires to avoid a GPS glitch warning - and possible EKF failsafe.

So back to the question you ask in this post - I’d choose the receiver that makes it easiest to directly access the receiver. This is one reason I avoid CAN attached GNSS receivers - getting access to the receiver with the uCenter utility can be complicated.

I understanding you’re operating “plane” not “copter” - but if you’d like more detailed information about my experience implementing RTK with an F9P and Ardupilot, you might like to read the article I wrote about my experience: Technical Article – ArduPilot F9P RTK | Copter Cam Tech

1 Like