Altitude hold setup - step by step

If somebody could could help with such it would be really helpful.

I have been searching around for 5-6 days now and reading every post, watching every video but yet I still have to understand how to make this happen properly. I am coming from the Mikrokopter world where the "vario" altitude hold works great based on a barometer alone. Set point when the stick is in the middle and the copter is hovering - once the Altitude hold is engaged it sits mostly steady on the same altitude. Giving it higher throttle will raise the copter right away and pulling the stick back to the middle will set the new altitude set point.

My understanding is that the Ardupilot altitude hold should work the same and I believe it does, but the reaction time when raising the throttle is really slow, I have to push the throttle stick to 3/4 or more to get some raising action from the copter. Once it started climbing pulling the stick back to the middle will not slow it down - only if I lower the stick under the middle point will actually stop climbing - and start descending.

My copter flies very nice in stabilize mode, so I am assuming that some of my PID values are correct.

I have the sonar as well, with a properly shielded cable at least 3 inches away from any ESC. Looking at the values coming through the CLI from the sonar it looks clean, no major jumping. However the values are all over the place when looking at the barometric values. The pressure sensor is covered from factory with the pink foam, I even cut the part from above the CPU out to ensure no heat is getting to it.

The million dollar question would be on what would be the order of the values to modify - or test with the CH6 - in flight tuning to try to get the Alt-hold work properly. The wiki in some places is good but refers to some parameters which were removed in the newer firmware versions.

The second question is that what parameters do I need to modify or tweak to make the copter respond faster in altitude hold mode to the throttle input to "raise or lower the altitude".


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

Join diydrones

Email me when people reply –


  • Altitude hold with APM does not work the same as Vario in MK world.

     It is the same as MK altitude hold, if vario is not selected.  I fly both MK and APM.  The MK altitude hold in vario is where as you stated you turn it on neutralize the throttle and your altitude is set at that level.  If you increase or decrease throttle in MK, you are commanding a specific climb rate or descent rate. If you reach a desired altitude you put the throttle gas to the middle and it stabilises at that altitude. In APM the altitude hold is based off of your current altitude and throttle position.  Instead of commanding a change in the vertical velocity as in MK, you are instead commanding a specific change the actual commanded altitude. I have tried this I have put my aircraft at 80 feet and based on my parameters it descended to a max floor.  So max throttle means that the copter climbs until it reaches a maximum altitude and if you go to min throttle it drops to a min altitude. Depending on the base altitude when engaged it may never reach actual ground level, where as if you go min idle in MK the copter will drop out of the sky until ground impact if in vario mode.

    I am not a fan of this because you can not change the base altitude in altitude hold as far as my experience goes whil in alt hold.  If you have your copter at 80 feet and you engage APM, then descend to 60, your throttle gas is now significantly lower then hover state with AH off.  This means that if you disengage your AH w/o throttle being at or near hover gas setting your copter will fall out of the sky and potentially crash if you do not react fast enough.

  • I believe you are using 2.9.1 but have not reset your parameters from whichever previous version you were using. 


    Your throttle rate_P should be 6.0 now. If it's much less the responses to your stick inputs will be very delayed.


    Easiest way to fix it is to save your params, go to terminal - do an erase and reset, then compare your old params (that you saved) with the new (default) ones. You can then copy in any tuning you did on the old params, but leave the new defaults for throttle and alt-hold.


    Hope that helps

This reply was deleted.


Chris Anderson liked Zara Mae Pickering's profile
May 21
Azjeg liked Azjeg's profile
Apr 27
Benewake LiDAR liked Benewake LiDAR's profile
Apr 12
Gremsy liked Gremsy's profile
Mar 12