ArduCopter 2.9 / 2.9.1 released

ACRO bug (fixed in 2.9.1b): while doing flips in ACRO mode, if you switch to Stabilize while inverted your throttle will go to minimum.  To regain throttle control you need to switch back to ACRO then back to Stabilize again (i.e. switch to stabilize twice).  You never lose control of roll/pitch/yaw.

Loiter/AltHold/Auto/RTL bug: if you switch into these modes with throttle at zero motors will go to minimum until you raise the throttle.

Auto mode altitude bug (fixed in 2.9.1b): setting a waypoint altitude greater than 320m over home altitude may wrap around and instead be interpreted as a low altitude.

ArduCopter 2.9 is now in the mission planner and the downloads area!

The major improvement is we use inertial navigation to improve altitude hold.  This increased reliance on the accelerometers means you must do some additional set-up before flying:

1. Perform the new accelerometer calibration in the mission planner (video).  The auto-trim metho has also changed (video).


2. Add vibration dampening foam between your frame and the APM.  Some suggested materials: DuBrogelhk foam.


 3. If upgrading from 2.8.1, modify the throttle and altitude PID values:

  • Increase your Throttle Rate P, reduce I to zero, increase D
  • Increase Altitude Hold P, reduce I to zero
  • Tune Throttle Accel P and I terms but try to keep P about 1/2 the size of I



Here is the list of major changes (a more detailed list can be found in the release notes):  

  • Alt hold using inertial navigation (Leonard, Randy, Jonathan)
    • AUTO_VELZ_MIN, AUTO_VELZ_MAX parameters control the max climb/descent rate for the autopilot (cm/s)
    • PILOT_VELZ_MAX controls max climb/descent rate for the pilot (in cm/s)
  • Landing improvements (Leonard/Randy).  Copter will descend to 10m or until an object is sensed with the sonar.  Then slows to 50cm/s descent (speed can be adjusted with LAND_SPEED parameter). (video).
  • Surface tracking with sonar (Randy/Leonard).  Copter will attempt to maintain current distance from objects in front of sonar regardless of altitude.  Only used in alt-hold and loiter, not used for missions.  Sonar can be enabled/disabled with CH7 switch. (video)
  • Failsafe improvements (Randy/Craig/John Arne Birkeland) including bug fixes, additional check for PPM encoder failure and implementation of battery failsafe.  Set-up instructions are here.
  • Mediatek gps driver accuracy improvements and use of SBAS [Craig].  Instructions on upgrading your mediatek to firmware 1.9 are here.
  • Traditional Heli improvements (Rob) including (a) bringing heli code back into the fold, (b) enabled rate controller (previously only used angle controllers). (c) fix to rotor speed controllers - now operates by switching off channel 8.  (d) allow wider collective pitch range in acro and alt hold modes vs stabilize mode  (e) bug fix to allow collective pitch to use the entire range of servos
  • Acro trainer (Leonard). Copter will return to be generally upright if you release the sticks in acro mode.
    • ACRO_TRAINER : set to 1 to enable the auto-bring-upright feature
    • ACRO_BAL_ROLL, ACRO_BAL_PITCH : controls rate at which roll returns to level
  • Camera control improvements (Randy/Sandro Benigno):  (a) AP_Relay enabled for APM2  (b) Trigger camera with CH7 or DO_DIGICAM_CONTROL command  (c) Allow pilot override of yaw during missions and fixed CONDITIONAL_YAW command.
  • PPM sum support for transmitters with as few as 5 channels (Randy/Tridge/John Arne Birkeland).
  • Performance and memory useage improvements (Tridge).


As per usual PIDs are optimised for the 3DR/jDrones quad with 850 motors and 10" props. If you're using more powerful motors/props and are seeing bad flight behaviour in stabilize, start by turning down Rate Roll P in 25% steps.

Special thanks to our testing team lead Marco and the dedicated bunch on the 2.8.1 release thread who put their copters at risk while testing the pre-release version.  Some of their videos are here: 1 2 3 4 5 6 7 8

Please feel free to report issues you find in the discussion below and/or add them to the issues list.


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

Join diydrones

Email me when people reply –


  • Can someone tell me how to paste a Value Graph of my Z accel into a reply to this thread? 

    I have some vibration reduction info to share...






  • Hey,

    I'm just testing the alt-hold of the otherwise wonderful 2.9.1 and what I get is slow but constant climbing.

    It's a quad, 1050kV motors, 8x4.5 props, blheli 30A escs, 3S 3800 lipo, apm 2.5, fw 2.9.1.

    AUW with a GoPro Hero 2 is ~1200 grams.

    Motors and props balanced as good as I can get them to be. Here's my vibe chart :


    I added the red lines at 2.5, -2.5, -7.5 and -12.5 for reference. Based on what I see the others post I think it's at least acceptable.

    Yet, as soon as I flick in to alt-hold the copter starts climbing at roughly 0.5 m every 3-4 seconds.

    My previous tuning sessions led me  to:

    stab_p of 5.5 for roll and pitch and 5.0 for yaw

    rate_p 0.155, rate_i 0.1, rate_d 0.0065

    thr_accel p .5 and i of 1, but I started at the defaults of p .75 and i 1.5 getting the same climbing behavior.

    Also tried setting thr_mid to 400 and 550. With all values it still climbs.

    mpu6k_filter at 20 as with the default 0 it was climbing.

    All other params at 2.9.1 defaults. And yes I did reset the eeprom contents after the update.

    So please help - why is it climbing ? 

  • Auto mode errors and suggestions.

    Having spent the last week unsuccessfully trying to login/re-register on github I will post here and hope they may be transferred.



    Circle/loiter turns- Circle mode from TX works as it should but the auto version – loiter turns does not. It loiters indefinitely, maintaining heading.

    ‘Loiter time’ works but turns to face a ‘heading’. Thought it was ‘home’ but not always, possibly the armed heading. Anyway if you have loitered for film or photos and it turns away its a bit frustrating.

    The waypoint functions ‘change alt’ don’t seem to work. Would like to stop, change alt from x to y at speed z and then move on.




     ‘Flypast’ function. Fly past something with the nose locked on it.

    Rotate – just 360 at given rate.



    The quad if flying really well now. Over the last few days I have had many flights and many auto missions with lots of good filming (would upload more but have 0.5mb connection). Have had rescue it with RTL only because of my erroneous distant ‘land’ instruction. RTL worked perfectly.

    Would still like to soften its auto jerks a bit more.


    Well done team. For me 2.9.1 is solid.


  • After getting good result of Alt-Hold, I have no good result of 2.9.1 on this week end.

    I do not know the result comes form this strange Bar data is here; time dependent Bar altitude.

    3692624044?profile=originalActually, the Alt-Hold is not so bad what was prior to 2.9.1, but the quad is tend to climb.

  • Hi, Yesterday I crashed my octa testing "alt hold" mode with the new 2.9.1, with the parameters I was testing it seems to be stable.

    While I'm testing this mode I had to reduce the throttle to correct altitude when suddenly the copter flips and hit the ground.

    I'm sure that this crash is a mistake of my pilotage, but I would like to know, why? Please Randy can you see my logs?

    Thank you.

    Accidente Alt hold 2013-02-16 18-10 1.log

    Accidente 2013-02-16 17-38-59.rlog

    Accidente 2013-02-16 17-38-59.tlog

  • What is the rule for setting PIDs now on the Rate P, I and D from default for a Hex? Should P go higher or lower from default? This is an AMP1, DJI hex frame (with 6cm extensions on the arms so it can take 12" props),  Jdrones black 880kv motors, 6000mah 3s bat. 12x45 props. Normally prior to vers 2.8.1 I would set Stab from default to 3.800 and I to 0.002 and it was very stable and rock solid. Rate wasn't even touched.  Ive now set those Stabs the same but it still seems a bit flighty. Any suggestions?

  • I have been having an issue of my quad climbing when in either loiter or alt hold mode. Tried it again yesterday fairly high and we watched it. I engaged alt hold and it climbed, then fell then climbed etc. The motors were having a field day bouncing it up and down speeding up slowing down etc. We watched it to see what it would do which resulted in it getting lower after each bounce. It flies really well in stabilised mode, haven't tried RTL yet, maybe tomorrow as it caught me off guard when I tried it last week and it turned towards me, wasn't expecting that!

    I have read through some of the responses to people having a similar problem and am not sure if that is applicable to me.

    I have attached the dump all DF log, but have the others if needed.

    Any idea's why it is doing this?

    Appreciate all the work you guys are doing on this project, keep it up!

    2013-02-16 18-39 -1.log
  • Okay, I have seen some posts concerning PPM vs PWM input to APM 2.91.. I had my first ThrFS in alt_hd using a different rx-tx via PPM.. What do you guys think of going to, preferentially, PWM, until 2.92?



  • Is there a brief summary anywhere of current issues found  with 2.9.1 I need to be aware of before flying? There are over 170 pages of posts now and I just don't have the time to trawl through them all.

    A few I see mentioned but cant find the details.  Some issue with loiter?  An issue with auto mission? And throttle? Any others and what do I need to what out for? Thx in advance.

  • No matter what I do V2.9.1 just does not loiter as well as V2.8.1? I have reasonable vibration and filtering. It just does not hold a steady altitude. What am I doing wrong – I am about to give up and go back to V2.8.1?

    APM2.5 with uBlox GPS on large quad (14" props).


This reply was deleted.