Ublox F9P dual GPS RTK moving baseline problem

Hello All,

I am having bad problems with my 2 CUAV F9P GPS modules attached to my Cube Orange autopilot with ArduPlane v.4.3.5 (official) firmware. The two GPS modules are configured as “moving baseline” (GPS_TYPE1 = 17 , GPS_TYPE2 = 18) and I am using GPS for Yaw / heading thanks to the RTK.

In the attached document, I have described the problem in depth. The document contains all the logs, parameters and details etc…

In short, this is how the problem looks: 2023-06-11 14-35-48.bin - Google Drive
This is the GPS: C-RTK 9P High precision positioning module – CUAV 雷迅创新

I think that this could be a similar issue with incompatible GPS firmware as described here: EKF Failsafe - f9p rtk corrections causes gps glitches - #46 by jstroup1986

I would appreciate help, as this is an urgent problem for us and caused some dangerous situations. Thanks!
CUAV F9P GPS Problem Description.pdf (198.1 KB)

Firmware version of the F9P: HPG 1.13

Your problem appears very correlated to maneuvering. Satellite count remains high while in QLOITER, but as soon as maneuvering in pitch and roll begins, the satellite count plummets. You may be able to improve reception by using a higher antenna position that does not get masked by fuselage/airframe elements during maneuvering, and/or changing to a different antenna type. What antennas are you using?

You are also quite behind on F9P firmware version. The latest is 1.32, which is compatible with ArduPilot and contains some fixes that certainly won’t hurt.

EDIT: Ignore what I said about GPS rate params. 200 is the proper setting.

Thanks for this.

I’ll update the firmware in that case. When updating the F9P firmware should I reset the GPS settings to defaults in U Center?

Here is how the GPS antennas are currently installed. Do you still think it could be the antennas causing the issue @Yuri_Rage ?


Usually when flying this drone we are using RTK (moving baseline) with the two CUAV F9P GPS modules, and we use the GPS yaw/heading. Under good conditions, the GPS statuses are 3D dgps and RTK-fixed.

Here is the configuration onboard the Cube Orange autopilot in ArduPlane parameters:
GPS_TYPE = 17 , GPS_TYPE2 = 18, EK3_SRC1_YAW = 3 .

I conducted a series of 10 consecutive 5 minute tests on the ground (propellers removed, arm the drone, switch into AUTO mode) during which the problem would’ve occurred with the previous parameters, except now with the parameters adjusted as follows so that the drone does not use RTK.
GPS_TYPE = 1 , GPS_TYPE2 = 1, EK3_SRC1_YAW = 1 . The GPS statuses were now both 3D dgps (so no RTK used).
RESULTS:
Arm test 1 - GPS fine, no problems
Arm test 2 - GPS fine, no problems
Arm test 3 - GPS fine, no problems
Arm test 4 - GPS fine, no problems
Arm test 5 - GPS fine, no problems
Arm test 6 - GPS fine, no problems
Arm test 7 - GPS fine, no problems
Arm test 8 - GPS fine, no problems
Arm test 9 - GPS fine, no problems
Arm test 10 - GPS fine, no problems

The problem did not happen during these tests when RTK was not used.

For comparison, this is what the problem looks like on the [ground](WhatsApp Video 2023-06-17 at 15.33.50.mp4 - Google Drive and WhatsApp Video 2023-06-17 at 15.33.47.mp4 - Google Drive ). And in flight 1 and flight 2.

This leads me to believe that there is a compatibility issue between Ublox F9P receivers with 1.13 firmware and ArduPlane v4.3.5 / Cube Orange. This appears to be a similar problem to this one, which was resolved by upgrading the firmware on the F9Ps from 1.12 to 1.32.

How do you draw that conclusion? I clearly showed the problem is related to satellite reception during maneuvering.

A more interesting test would be to mount the vehicle on a swiveling/rotating base (like a camera tripod) and move it through various attitudes to see how satellite reception changes and potentially determine a max pitch/roll angle.

Connecting to uCenter for such a test would be very interesting as well to note which constellations (GPS, GLONASS, Beidou, etc) are most affected by attitude changes.

I don’t have an answer to your problem - but here are a few thoughts:

  1. For moving baseline implementations, the antenna are typically placed further apart than it appears in your photo.

  2. The problem I had when implementing RTK on ublox F9P GNSS was that the latest firmware has a known problem (it’s in the ublox firmware release notes) that the receiver can only support two constellations when operating over 7hz.

The solution I implemented was to use the ArduPilot parameters to limit the constellations to just two, and to set the receiver refresh rate to 10hz.

Good luck on your project - I look forward to hearing about your success!

5Hz remains the upper limit of recommended GPS data rates for use with ArduPilot in RTK applications.

Well, although maneuvering seems to be linked I think it is correlation not causation. We also did 8 hover tests (takeoff in VTOL mode, 1 min hover, VTOL land) and none of them had any GPS problems. We also flew in QHOVER for 5 min (right after this GPS problem happened in flight, just after transition from VTOL to fixed-wing in AUTO mode) and this had no GPS problems.

I think that moving / flying worsens the problem, but only if the drone has been armed AND is in AUTO mode. So I believe the trigger related to what happens when the drone is armed AND switched to AUTO mode. Maybe that is when the EKF starts using GPS for Yaw? Maybe that is when the RTK starts to be used?

Thanks for your feedback!

  1. The antennas are 37cm apart to be exact.

  2. Which latest firmware had the known problem? And what firmware version do you recommend using when I want to implement RTK / moving baseline / GPS for Yaw using these two F9P GPS with my Cube Orange and ArduPlane v.4.3.5?

So @jstroup1986 , do you think this is the same problem as you expreienced?

And @Yuri_Rage , would you now agree with me that it is unlikely that the maneuvering itself is the cause of the problem, but rather arming AND AUTO mode?

Also, which firmware version for the F9P GPS is compatible for RTK / moving baseline / GPS for Yaw applications with Cube Orange / ArduPlane v.4.3.5?

I use 1.32 on all of my vehicles at 10Hz with RTK corrections enabled, moving baseline on several, and most (if not all) constellations enabled. I have no issues with it.

The core GPS libraries do not differ between Rover, Plane, and Copter, so I am highly suspect of any firmware incompatibility. Full disclosure, I use Copter and Rover, primarily.

I disagree with your conclusion. Please specifically test how changes in attitude affect satellite reception.

Your second flight shows similar reception issues as pitch/roll become more dynamic.

RTK does not “get used” differently when flight mode changes. As soon as the GCS messages show “EKF IMUx Yaw Aligned,” RTCM3 is actively in use for yaw, regardless of flight mode.

@tridge, is there something else I could be missing that is contributing to any correlation/causation error on either my or Jan’s part?

Thanks for the ideas.

Take a look at the following logs please. This one shows you the GPS problem happening right after the VTOL to fixed-wing transition.

Now this log shows you a flight in QHOVER in the same location right after the previous flight linked above. The GPS problem did not happen, GPS behaviour was great, despite me purposefully jerking the aircraft around a bit in roll / pitch / yaw.

And this log shows you a different flight where the GPS problem also happened, but during VTOL takeoff, when the flight was very smooth and little roll / pitch behaviour.

Therefore, I believe that the problem is not caused by roll / pitch behavior of the drone and I believe that it must be something about AUTO mode that is different.

I will take a look at the logs a bit later. I still think that flight mode is inconsequential, and the issue is satellite reception, whether correlated to maneuvering or not.

Perhaps the antennas are close to high current wiring or other sources of interference? Maybe it’s possible to temporarily move them up higher off of the fuselage, just to further isolate the root cause?

I tagged Tridge, as he is the primary developer for the GPS libraries, and his insight is often invaluable when it comes to confusing issues like this one.

I haven’t implemented the moving base for yaw implementation - so I can’t say if it’s the same or not.

1 Like

But does the problem appear / look similar to what you experienced?

My problem was GPS glitches that caused the GPS fail.

I’m sorry - but because I haven’t done the moving base implementation, I haven’t looked at your problem closely. I’ll see if I can find time. I saw that you uploaded some bin files - that’s a good place for me to start.

If I recall correctly, Joe’s problem had more to do with data rates and throughput than reception. I don’t think he was experiencing loss of satellite data.

@Yuri_Rage

I agree that the issue is satellite reception - the question is what triggers a rapid loss of it.

Whatever it is that triggers it, here are the facts about it:

  1. It only occurs after the drone is armed.
  2. It can occur both when the drone is stationary and when the drone is flying. However, it occurs a lot sooner and more frequently (now effectively 100% of the time) in flight than on the ground.
  3. It can occur both during VTOL (quadplane) and fixed-wing (airplane) flight.
  4. It has only ever occurred in AUTO flight mode, never in QHOVER flight mode.
  5. It is consistent / identical across both of the two pairs of CUAV F9P GPS modules I have.

Secondly, it is highly unlikely that the issue is caused by interference, which suggests the problem is something internal to the GPS / ArduPilot (and I highly doubt that its ArduPilot)
Here is my reasoning for that:
External interference: the problem happened at 2 different locations ( ~ 30 km away from each other) in the same way. One of these locations (the flying location) is far away from any infrastructure / city, and it is in the middle of a farm in a rural area in West Africa. There is very unlikely to be any GPS jamming or radio devices around. Therefore, external interference is unlikely to be the cause of the problem.
Internal interference (onboard the drone): the problem happens when the VTOL motors have no power as well as when they have power. There is little correlation between high current and the problem occurring. The problem occurs both when the drone is not moving, motors off and on the ground as well as in flight. The problem occurs both in VTOL and fixed-wing flight. After the installation environment was improved (GPS antenna cables moved away from power cables, both GPS modules moved away from each other) the logs show that the GPS noise is reduced, but the problem happens anyway. Therefore, internal interference is unlikely to be the problem.