M2 sending different altitude than onboard logs

I have succesfully integrated an M2 receiver into my UAV with ArduCopter, but have a strange issue, that I can´t explain. The M2 seems to output a different altitude in the NMEA messages on the serial port, than what is logged even without RTK corrections. Why is this?

Emlid LLH (shows around 787m):

Serial output logged by ArduCopter (shows about 740m):

I’m just encountering the same issue- attempting to geotag images via NMEA output. The difference seems to be about 30-38m between the fixed height and the serial output.

Hi there,

LLH output contains ellipsoidal heights.

According to the NMEA protocol standard, heights are transmitted in the NMEA GGA message. This message has 2 fields related to heights:

  • Orthometric height (MSL reference)

  • Geoid separation

To get height above the ellipsoid from the GGA message, you should sum up these two values. It seems that ArduCopter displays just orthometric ones. That’s why you see that difference.

1 Like

Thank you, that makes sense.

I assume there is no way to make this conversion on the Reach?

The workaround would be sending ERB or UBX to Ardupilot?


Since this format is defined by NMEA protocol, we can hardly do that. Usually, the conversion is made on the end software side.

Reach doesn’t support UBX output. You can try using the ERB format since it indeed contains a separate field with ellipsoidal height. However, please note that ERB is a deprecated format.

Changing to a different protocol won´t make any difference, since Ardupilot only uses the orthometric height with all GNSS receivers.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.