How to improve relative altitude measurement?

I am using a Holybro OSD chip with my Pixhawk 6C mini and have it set to display the “home altitude”, which I understand is the relative altitude, or altitude above home point.

This measurement is usually under-reading by 3-5 meters, i.e. when the copter is on the ground, the OSD displays -3 to -5m.

I have set the QNH parameter, but in log files my barometric pressure doesn’t look accurate but my GPS altitude is more accurate.

I read in an old Arducam OSD docs file:
“When APM boots and gets GPS lock, it checks your height above sea level than calibrates you barometric pressure sensor. After this it is using barometric height by default. But you can change this in APM parameters. You can use only GPS or a mix of both also.”

Is this true of PX4?

If so, is it possible to set the relative altitude data to display GPS+Barometric altitude, or just GPS altitude?

If not is it possible to improve this in any other way?

Thank you.

I am having the same issues.

My Holybro durandal under reads with 20 meters

@Barry_Bolton Have you set the QNH?

Yes. I set it to what ever the QNH of the day is

I did some further investigation into this.

Today, when I powered on my copter the OSD read:

Ta (AMSL) = 82 m
Ha (relative) = 82 m

After a second or two, the Ha updates and the OSD reads

Ta = 82 m
Ha = 0 m

Then after a couple of seconds again the AMSL updates ( I guess from the GPS), and so does the the Relative Altitude, which seems to be relative to the AMSL, so I get:

Ta = 11m
Ha = - 70 m

The true altitude in AMSL at this location is 16m

I checked the MAVLink inspector and relative and AMSL altitudes are roughly correct.


So if anyone can help with why these values (altitude_amsl and altitude_relative) are not being displayed on the OSD, that would be very helpful thank you.


The best solution I have found now is to:

  1. Turn on the copter, let it get a GPS lock and wait for the tone to sound that is has set the home point
  2. Change the QNH until you get the most accurate reading of AMSL on your copter (mine seems to be QNH + 2hPa)
  3. Reboot the copter

This gives me the most accurate reading on my OSD. Its not perfect, but its the best I have yet, will update if I get a better solution.