Menu Sign In Contact FAQ
Welcome to our forums

How to make an electronic AI

Following this I was wondering how this could be done with current technology.

It seems there are two kinds of accelerometers:

  • yaw rate – these measure rotational acceleration around a single axis e.g. ADXRS613
  • G – these measure absolute G, usually along all three axes concurrently eg. ADXL335

To get pitch, you use the 1st type and orient it to measure acceleration around the pitch axis, then integrate twice to get the pitch angle.
Same for roll.
And same for yaw, if you want yaw.

But the above will drift – because the yaw rate accelerometers drift i.e. return some acceleration even when there isn’t any. So you need to do two things

  • use the 2nd type above to sense the gravity vector and use that as a slow background erection process (what the famous pendulous vanes do in a vacuum AI)
  • assume that the plane will be mostly straight and level and be able to detect such phases of flight and use the above data especially during those phases

Obviously the last one is a big assumption! But there is no way around that. There is no fixed frame of reference which can be independently detected. The only way is inertial, suitably initialised, and periodically corrected.

It also made me realise that the traditional ball cannot possibly be indicating yaw. It indicates some sort of combination of the gravity vector and the roll angle.

Then you have certification issues if you want to STC it as a primary pitch/roll reference. I’ve had some conflicting input on whether GPS or airdata is actually required for that, though most people say you do need to have it.

Shoreham EGKA, United Kingdom

I would think you need 2 gyros, pitch and yaw. Then you would need two or three? slow integrating acceleremoters to get the “down” vector. For yaw rate, you would need another gyro. I don’t think this is the way it is done at all though. What they have are 3 gyros, 3 accelerometers and magnetometer for compass direction. Input is fed into a Kalman filter. Air data and GPS would increase accuracy, but is not essential?


I think we are saying the same thing.

I got the ADXRS613 wrong; it measures angular velocity about its axis, so you integrate only once to get the angle.

How would you use the magnetometer? Let’s try to achieve this without that – like a normal gyro based AI does.

In some implementations, GPS data is used for this. If the GPS track is constant then a zero-roll is assumed. If the GPS altitude is constant then a constant-pitch is assumed. There are problems with this, of course, e.g. flying upside down Or flying at a constant roll angle (which needs lots of constant yaw). These conditions can’t be detected unambiguously.

Shoreham EGKA, United Kingdom

Peter wrote:

Let’s try to achieve this without that – like a normal gyro based AI does.

Yes, but why? There is a standard way of doing this, standard chips, standard sensors, standard software. You need a 9 DOF system. 3 rate gyros, 3 accelerometers, 3 magnetometers. All of them in X, Y and Z direction. Sensor output is fed into a Kalman filter, and voila This is the easy way. The magnetometers will give you compass direction, and slip, but used here, it will also negate errors. The earth magnetic field is a perfectly good and usable field for orientation in 3D. It will also give you turn rate for instance. What you get with a 3D magnetometer is a vector pointing in the same direction relative to the earth (more or less) all the time, unaffected by accelerations and velocities of the aircraft.

I have never understood why Garmin uses GPS as (extra, but necessary by the looks of it) input.

MGL systems, and probably others, can get by showing an AI using only rate gyros and accelerometers, but they do feed the input into a Kalman filter. This makes it hard to figure out what exactly is going on without details about the filter. I have a feeling there is no simple and straightforward way to do it, and still get a system that works. With a Kalman filter you can “fake” or assume input data, and still get nice output.

But, let’s go along. No magnetometer, no Kalman filter. The basic principle would probably have to be to use a high pass filter on the rate gyros. We would like to remove steady state errors on those, only use the rate when we have a “good” rate. Then we want to use a low pass filter on the accelerometers to know what is “down”. This has to be combined in some common frame of reference, how? and how to set the filters? I imagine lots fiddling


I’ve been doing some reading, and the mystery (re the certification difficulties) deepens.

The key to making a standalone AI (no GPS and no airdata needed, but “stable forever”) is to use the accelerometer data (not the gyro data) with the assumption that it is impossible to have long term nonzero acceleration (because you would very quickly be going too fast for this to be physically possible).

Apparently, if you accelerate by 0.1g for a minute, and average acceleration vector for 10 minutes, the error the acceleration has caused to the gravity vector is just 0.01g, which would be 0.6 deg error in indicated pitch.

Start-up time is a problem unless you can assume the aircraft is straight and level during startup, so you can reset the pitch and roll integrators to zero. Or if you can assume no acceleration is happening during startup, you can reset the integrators to the immediate acceleration vector from the accelerometer. This is what the SG102 does; it needs 3 minutes (1 minute in the Mod 2 version) although I thought this is due to the +65C platform warmup.

My maths isn’t anywhere near good enough to work this out, but I wonder why nobody has managed to make a certified primary AI which is standalone.

Maybe @davids has any ideas?

Shoreham EGKA, United Kingdom

I can’t add anything to what @LeSving has already said.

Accelerometers cannot just be integrated twice, because of the drift errors you mention.
You correctly say that some acceleration scenarios are impossible, and so should be discounted.
The logical way to implement that is to take a Bayesian approach, i.e. given the measurements I am seeing now, compared to what I saw a moment ago, what is the most likely state of my aircraft?
And a Kalman filter is just a special case of that Bayesian approach, and it gets better as you give it more information, eg magnetic field
But as you give it more information, you can improve the accuracy of those other instruments too.

I suppose the basic problem is: the better you make your ‘instrument’, the harder the certification becomes, as you move away from a standalone AI towards an EFIS :-)

Booker EGTB, White Waltham EGLM

There is the MD302

Manual here

It’s marketed as a standby instrument. However it is the primary instruments in the Tecnam P2008 certified for VFR night. The aircraft also has a Garmin G3X, but this is uncertified and clearly marked as “for situational awareness only”.

It is a very nice instrument, but expensive. 8k+ at ACS


The MD302 appears to have extra inputs…

There are lots of similar boxes.

Shoreham EGKA, United Kingdom

From the manual:

The model MD302 series SAM® Standby Attitude Module is a self-contained situational awareness
instrument that provides aircraft attitude, altitude, airspeed, and slip indication, plus available
heading data with the optionally installed MD32 Magnetometer

In my experience with affordable chips the electronic gyros have a lot more dirft than a traditional heavy gyro. Therefore the stabilization is crucial. And getting that right is the difficult part. Simply dragging very slowly towards gravity like a traditional instrument will not work properly in that case. You have to detect situations where the algorithm will stabilize a lot faster and others where it will more or less stop stabilizing like in steep turns. As a result one can imagine flight profiles which would defeat the algorithm. It would be interesting how the certified solutions are tested and up to which point they actually will work.

As a data point in our aircraft we have a G500. A very good and certified system but eventually I managed to break its algorithm. In several 100 hours it never missed a beat but then we did land at Courchevel and at the end of the steep part I once got quite slow obviously with a massive pitch up attitude. That made the AHRS quit for a few seconds until we did taxi to the flat part of the apron where it did recover fast.
53 Posts
Sign in to add your message

Back to Top