Some of you may have noticed that your multi-copter will lose from 1.5 to 3 or 4 meters at the end of a horizontal run when in any of the Altitude Stabilized modes, like Alt Hold, Loiter (and PosHold for 3.2 candidates) or Auto.

Several heated debates have considered the reasons and possible causes, until finally a more demonstrative test was undertaken, using the 3DR X8 above with Pixhawk

But first some ground data:

The following graph shows how the altitude influence is directly affected by velocity (especially forward velocity), but to a lesser extent latteral velocity.


A general conclusion is that a "pressure bubble" forms in front of a moving object:


This is an image of a pressure gradient around a sphere moving towards the left of the image. This gradient is greater or less depending on the physical configuration of the vehicle. The vehicles that are most effected by the altitude drop tend to be less streamlined, with greater frontal area, and therefore a greater pressure buildup.

As the vehicle accelerates, the pressure starts to rise slowly and the forward tilt of the vehicle moves the higher pressure area more directly into contact with the altitude sensor. Then with sudden slowing, quick pitch changes and dropping pressure simulates that the vehicle is rising. Altitude controllers react to counter the effect and the vehicle drops..... sometimes like a rock.

So whereas the debate postulated that software should be able to resolve this problem the problem remains that, if it's really true that the cause of the problem is the "pressure bubble", then the software can only react to what it "sees and feels". If you make the assumption that it is possible to generate a countering force at the end of forward travel, you may end up sending the vehicle into space if the wind is from behind. The processor doesn't know any more than it can "feel".

So I built the testbed above to test the theory. You'll see a tube coming out of the front of a Pixhawk, just about where the altitude sensor is. There's a hole in the Pixhawk cover, and the altitude sensor is sealed with Plastecine, so that the outside air pressure from the "static sensor" is fed directly into the altitude sensor.

The white plastic rectangle on the other end of the tube has a tiny hole (not very visible in this photo, but about 1.5mm diameter) drilled from side to side, and then another hole of the same diameter leads from those holes to the tube. In this way, forward movement does not exert any pressure into the tube, furthermore, as the vehicle pitches forward, the static sensor holes move down into a lower pressure area outside the bubble. Pitching back up, if anything the static holes move into a slightly higher pressure area. the end result is ZERO DROP in altitude.

Lateral movement has no effect, as the side to side holes let flow pass though unrestricted and no pressure gain is seen.

This baby flies as flat as a pancake!

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • could a canopy/dome fix the issue?

  • h man, i had this issue for ever, APM, NAZA...evey pilot has same issue... why nobody didnt invent a case like yours!!!

  • Is the pressure sensor the silver rectangle with 2 holes in opposing corners?


    I'm trying to imagine how you were able to seal that to your tube.  But I need to modify mine, too.

  • Just for kicks I sealed the input side of the APM 2.6 as well as the USB and GPS ports with blue masking tape.  Seemed to improve the performance.  I almost feel that adding extra venting to the APM 2.6 case would reduce the amount of pressure build up inside.  Nothing too scientific other than some backyard testing.

  • @moglos,

    Yes I noticed that there was a slight tendancy to try to compensate as it accelerated, but if you establish a constant velocity it holds altitude quite well. You'll find in auto flight that longer trajectories are flat, until you stop or slow down abruptly. As the pressure increases slowly on acceleration, the PID manages to keep up pretty well, but the abrupt change at the end is too much, and I suspect, that there is also an I term build up that has to unwind as well.

  • Very nice experiment!

    I'm having the very same issue, but when I first faced it, I could not find a good discussion thread on this. Is there one I missed?

    My question is - why does it not gain altitude on speedup if there is a pressure bubble? But only somehow senses pressure drop when stopped.

    Anyways, your experiment definitely brings more light into this issue.

  • 300km

    Interesting post.

    One question I had, and perhaps it's confirmed by the altitude plots you've posted, is does the copter sense the high pressure bubble in forward flight and climb thinking the higher pressure means it has been descending? The forward plot is consistent with that. Which means the drop at the end is dropping back to the original altitude, except with some over correction.

    Would PID tuning be an option to at least reduce the over correction?

  • Very nice.  Was noticing this issue today with APM 2.6.  I am not enthused about having to crack the case and put play dough over the pressure sensor.  Seems like this could also be resolved by use of the external pitot tube setup (modified of course) that would be used on a fixed wing.  Also wondering if there is a plate or shield that can be added instead of getting down to the circuit board.

This reply was deleted.