Implementing Dual ZED-F9P Modules for Rover Yaw Estimation

Hello everyone,

I hope this message finds everyone well.

I am currently working on enhancing my ArduPilot-based rover by replacing the traditional compass with a dual ZED-F9P module setup to derive yaw values, utilizing survey-grade antennas for precision. Despite adhering closely to the official GPS-for-yaw documentation, I’m encountering detection issues with the GPS modules when configured as GPS_TYPE 17 and 18. However, the GPS signals are recognized when set to NMEA or UBLOX types.

Attached is the parameter file for the Cube and the configuration files for both ZED-F9P modules (Moving Base and Rover). I kindly request a review of these files to identify any necessary adjustments.

Reference link: GPS for Yaw (aka Moving Baseline) — Copter documentation

Param File:
Param_sed_f9p_v3.param (15.0 KB)

Config file:
Moving base:
Moving_base_confg_file.txt (25.0 KB)

Rover config file:
Rover_config_file.txt (25.0 KB)

Reference Images:

Your expertise and feedback would be invaluable in resolving this detection issue.

Thank you for your time and support.

Rameshprabha K.

You have not adhered closely at all. Revisit the page you linked and follow the section for dual serial F9Ps.

Hello @Yuri_Rage,

Thanks for the quick reply.

Sorry for the inconvenience caused. As you mentioned I changed every parameter as per the link and attached the param file for your reference. The good thing is I can get GPS signals now but still some errors are coming. I attached error images also.

Param file:
Param_zf9p_v4.param (15.1 KB)




The above indicate that your GPS antennas are only 18cm apart and at differing heights.

First, are they really at different heights? If not, the Z offsets should be the same.

Second, 18cm is likely not enough lateral distance between them for a moving baseline configuration.

Third, you appear to be testing inside a building. You need to be outside with an unobstructed view of the sky.

Yes, I am inside the building only Yuri. As per your suggestion, tomorrow I will try outside and let you know the results.

If you don’t address my first two points, the results won’t matter.

1 Like

Sure, I will place the controller inside the rover and I will measure the difference between XYZ of both the GPS antennas and I will enter the proper values and I will take a trial.

Hello @Yuri_Rage,

Good day.

As you suggested, I placed the antennas properly and measured the distance between both antennas and I changed the parameters as mentioned below,

GPS_MB1_OFS_X = -0.45
GPS_MB1_OFS_z = 0

I calculated CG from the design and I changed the GPS position parameter also,

GPS_POS1_X = 0.089
GPS_POS1_Y = 0
GPS_POS1_Z = 0.357

I attached some images for your reference. I doing trials now. If there are any changes I need to make let me know.

Rover Images:


Hai @Yuri_Rage,

I completed the trials with the above parameters. I am unable to activate the AUTO mode because continuously GPS errors are coming. the errors are,

  1. Waiting for the GPS config data
  2. Unhealthy GPS signals

Due to the above errors, the controller went to failsafe mode.

The number of satellites available in both the GPS is 32.
Param file:
f9p_param_v5.param (15.2 KB)
I attached some error images for your reference,

Please let me know your feedback.


I have no idea how you’re arriving at those offset values, but they appear to be wildly incorrect.

Set the following (the MB params aren’t used for uBlox serial GPS):




I’m assuming the Rover antenna is toward the front of the vehicle. You may want to measure again from center to center on the patch antennas and adjust that 0.45m value accordingly.

If GPS errors persist after correctly setting the autopilot parameters, connect each GPS module to u-Center one more time and use the little gear icon (the one with the red dot, right side of the image below) to reset each of them back to defaults. Then close u-Center and preferably never open it again.


1 Like

Hello @Yuri_Rage ,
Good morning.

As you mentioned I changed the above parameters and reset the zed f9p’s to default configuration. Now GPS is not detected in the autopilot. I attached the param file and image for your reference.

Param file:
Param_zf9p_v6.param (15.1 KB)


Power cycle everything after making significant changes.

You reversed the order of GPS_TYPE and GPS_TYPE2 values. Making random changes will not help troubleshoot, though this isn’t the cause of the present issue. Recommend setting them back to 17 and 18, respectively.

Hello @Yuri_Rage ,

Good morning.

I set gps type properly and tested still no luck. GPS not detected.

I attached a param file for your reference.

param file:
f9p_param_v7.param (15.1 KB)


1 Like


I tried many ways to get the yaw value from the zed f9p, but still, in the Mavlink inspector, I am getting the gps2_raw yaw value is 65534. I attached an image for your reference. And I am receiving continuous error messages like unhealthy AHRS or unhealthy GPS. Please help me to clear this issue.


Try here:

Hai Marblecreek,

I am using the different zed f9p dev board, if I buy simplertk2b boards and configure them with the cube controller as per the below document, will it work? Please let me know. I attached images board images for your reference.

Doc link: How to connect simpleRTK2B Heading to ArduPilot with external RTK corrections?

Board images:


My experience is with the SimpleRTK boards, so I’m unsure of anything else. The key for me was setting GPS_AUTO_CONFIG = 1.