WANTED: UBLOX - Help with specific configuration of Holybro F9P GNSS receiver with ardupilot

I’m using 2x holybro f9p gnss recievers on my copter for 2d position and yaw control.

I would like to use GPS for altitude also, while connected to RTK/NTRIP.

I want to pre-program my missions from home, as I have a precise terrain model of the area I will be flying.

My terrain model elevations are relative to a local vertical reference system.

The F9P module sends a MSL height to the autopilot, relative to the EGM96 10x10 geoid. I need to find a way to extract the correct vertical.

Fly at a known elevation and calculate the offset. Then use that offset when planning

Unfortunately, the elevation registered in ardupilot (when using the UBLOX F9P - not sure if true for all receivers) is the MSL elevation - this elevation is in reference to a geoid. I hear rumours that the F9P chip has a EGM96 10 degree grid as its geoid.

A geoid won’t have the same elevation offset when moving position :frowning:

The trouble is that there are many different types of geoid, depending on which reference system you/your customer chooses.

So I am looking for a way to navigate using the ellipsoid elevation, which is a great reference height because it is easily mathematically defined, and I can create my mission offsets relative to it.

There are Lua bindings for both terrain and GPS data. Perhaps those can be leveraged?

Interesting! I haven’t worked with Lua scripts yet, but it does seem like they have some very useful applications.

I’ll look into it.

After wrapping my brain around the problem a little better, I’m afraid scripting may not be the answer here.

@hendjosh, I know you were very interested in altitude reference frames during the dev conference. Can you perhaps help guide the solution here?

I think Tridge got this sorted by adding a parameter to configure the UBlox right?

Indeed! That does appear to be the solution.

Must be using 4.3 for this to be available.


Tridge was very kind to implement the option!

I tested it today, and it worked.

Will be doing a test Monday, on a GPS fix-point where I know very precisely the height above ellipsoid at a coordinate point on terrain.

Hopefully the value used by ardupilot will be the same.