Skip to content

Altitudes in Stratux EU

Alexander Dross edited this page Jan 21, 2022 · 4 revisions

There are three kinds of altitudes relevant for Stratux

  • The ellipsoidal altitude (sees the earth as an ellipsoid and take the altitude above it)
  • The geoid altitude (sees the earth as a geoid and takes the altitude above mean sea level), also called MSL altitude
  • The barometric pressure altitude - varies with the air pressure around you. Note that we are not talking about a corrected pressure altitude (e.g. what you get when you set the QNH in your altimeter), but standard pressure altitude that you get with an altimeter setting of 1013 hPa

The first two are delivered by your GPS, the third one is delivered by your barometric sensor/AHRS module.

The problem

ADS-B Traffic usually delivers barometric pressure altitude of the transponder, the various 868Mhz protocols usually deliver geoid or ellipsoid altitudes. For the output from Stratux to the EFB, we require barometric altitude in case of GDL90 and MSL+Ellipsoid altitude in case of Flarm-NMEA. So to get a correct traffic representation on either protocol, we need to be able to convert between all combinations of different altitude measures. Note that the ellipsoidal altitude is a global truth that is easy to deal with. The geoid altitude will depend on where you are on the world. There are geoid models of the earth with varying detail and complexity. Usually, GPS chips come with a pre-installed geoid model that is close enough for our purpose. The barometric altitude will not only depend on location, but also on time. When you are somewhere else, you will have a different air pressure at the same "real" altitude, and also when the weather changes, your altitude changes as well [what "real" is, is actually hard to define. We will take the ellipsoidal altitude as the base, since it is easy to deal with, without the requirement for geoid models or variance over time].

Conversion between altitudes

Conversion between geoid and ellipsoid altitudes is quite trivial, since GPS devices bring their own geoid models. Therefore, in the $GNGGA clause, we will receive the geoid altitude of your GPS antenna, as well as the geoid separation, which is the difference between the ellipsoid and msl altitude. Therefore, we can easily compute

hellipsoid = hgeoid - separation

and vice versa

hgeoid = hellipsoid + separation

Sadly, to receive the pressure altitude, we do need a sensor that can measure it (usually Stratux AHRS module or BMP280). This gives us access to all three altitude representations. And we can then start to convert the traffic's altitude with that information. Internally, Stratux will only work with barometric altitudes for traffic. So for ADS-B receptions, we can simply use what we receive. But what about the other protocols that deliver ellipsoid or geoid altitudes? Luckily, since we have all the other altitudes, we can compute our own separation between geoid and barometric altitudes (i.e., we compute our own pseudo-QNH). So to get from MSL/geoid to pressure altitude, we can simply do

traffic.pressureAltitude = traffic.MSLAltitude - myGpsMslAltitude + myPressureAltitude

and similar for sources that provide ellipsoid altitudes.

How to get my own pressure altitude

The simplest answer to this is: equip your Stratux with the AHRS module or a BMP280 sensor that will give us the pressure altitude. However, as of EU version 016, there are some other ways as well:

  • You can replace your Stratux GPS with an OGN tracker that is equipped with a barometric pressure sensor (BMP280/BME280) - it will forward the information to Stratux. This has the additional benefit of also transmitting OGNTP, which can be received by other Stratux users for collision avoidance.
  • You can replace your Stratux GPS with a SoftRF unit that is equipped with a barometric pressure sensor (BMP280) - with the same advantages.
  • You can do nothing and let Stratux do its best to figure it out: The ADS-B messages received by other aircraft usually deliver their measured difference between barometric and ellipsoidal altitude. We can use this difference to estimate our own barometric altitude from our own ellipsoidal altitude. Note however, that this only works correctly if the atmospheric conditions of the ADS-B sending aircraft and your own aircraft are similar. Stratux contains quite a bit of logic to make the most of all received ADS-B targets to get the best approximation possible. However, when only few ADS-B aircraft are around or some are sending wrong data, the values can be quite a bit off. Additionally, other OGN or FANET devices that are equipped with a pressure sensor, will transmit their GPS AND barometric altitude. This can also server as a source to determine the atmospheric conditions.

Testing has shown that this estimation approach works relatively well when enough aircraft were received since startup - preferably close to you and at similar altitudes. The fewer aircraft received and the further they are away, the worse the result

Conclusions

  • Stratux does handle altitudes well, as long as it has enough information to do so.
  • It is highly recommended to equip your Stratux with a pressure sensor to be independent of other aircraft around you. Alternatively, connecting an OGN tracker or SoftRF unit with a pressure sensor will have the same effect.
  • If - for whatever reason - you don't want to do that, this is usually fine. Experiments have shown that even with only few aircraft around, Stratux is usually able to estimate your pressure altitude to about +-200ft after a couple of minutes. When there are many aircraft around at similar altitudes, it will often be as close as +-30ft. After startup, it will usually take a couple of minutes where the altitude will vary a lot (+-1000ft is seen frequently) - but then it should stabilize after a while.
  • It is yet to be determined how the altitude estimation approach works during severe weather conditions, such as thunderstorms, in the vicinity.

Stratux will show the source of your barometric altitude on the GPS/AHRS page:

  • A red ALT indicator means, that there is no pressure altitude source available. This usually happens during startup. when not enough ADS-B targets were received to do an estimation.
  • An orange ALT indicator means that the pressure altitude was estimated by using GPS and the atmospheric information received via ADS-B
  • A green ALT indicator indicates that the reading comes from a pressure sensor (either directly installed or via OGN-Tracker/SoftRF)

grafik grafik