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 –


  • It would be pretty cool if for 2.9.2 a linear throttle transition was applied every time the APM took control or gave control of the throttle. 

  • Have been trying to get my head around the new release and the use of the X & Y accelerometers.

    I wouldn’t mind a brief dummies guide to wet the appetite.


    Surely the motors can only act directly in the Z plane? Even a tilt, in the short term, would produce no side forces until there was some speed and drag effects.

    So I suppose a level copter in the hover ‘feels’ a side gust and works out how far its got blown. Id imagine the brief tilt to re-position would see very little X or Y accelerations.

    Im just imagining a sprit level on the copter and expect it would only be non-central during a gust or motion induced wind.


  • Is there any way I can read the accelerometers real time through mission planner?

    As expected, the tuning screen seems to be only sampling the outputs!

  • T3

    I'm guessing this has been asked, but this thread is huge to wade through: regarding altitude hold on this new release:

    It works AMAZING but: When I move the throttle out of the deadband (wish to command a gentle climb) the thing ROCKETS up. Moving back to the middle it stops on a dime, impressive.

    What should I adjust to make it so that when I move the throttle just out of the %20 dead band that it climbs or descends much more gently?


    Thanks for the help!


  • More Tuning questions.

    Previously I have followed Dave C’s tuning guide on a jig, using acro (the old one) and setting stab terms to zero. As the guide says, a high rate D will give a ‘buzz’ type vibration. (does this still happen with 2.9.x?).

    I am now pushing up the rates while flying in stab mode. Rate D is currently .016 – quite high, no sign of the buzz vibration, just a ‘flying in treacle’ as the name ‘dampening’ would suggest. Rate P now up to .26 – also very high. Still flying very nice.

    Am I likely to see this classic D buzz while flying in stab mode?

    Is it possible that I may get no warning before the tuning goes unstable?

    Is anything to be gained from pushing up the tuning further (apart from satisfying my curiosity)?



  • This platform's a s***ton of work, but oh my lord is it worth it :)

    RTL sorted out, RX failsafes confirmed working. RTL initially set to 1m/s because I terrified I might lose it.  ALT hold and Loiter all checked out.

    No more tuning - time to FLY

    I had a weird event towards the end where my home position changed.  I have to check my magnetometer offsets because my flight controller is literally an inch away from a 4-1 ESC...but otherwise - everything worked 100%

  • Need a quick gut check,   I'm following the tuning guide procedure (flying not jigged) that Chris put together a bit back on a 3DR hexa with 880 motors and 12" props on 7400mah worth of 3 cell lipo.  I'm tuning rates and I'm up to .19 on rateP and .009 on rateD with rate I still at 0.  These seem way higher than the stock settings and I'm running a heavier machine but with more punch.  It seems to hover in the garage ok (given the self induced turbulence) and I can't induce any shakes with jiggling the sticks.  I did very carefully balance my props (blades and centers) as well as using the gel for vibration damping on the APM 1.


    Should I keep pushing up?  Is  it reasonable to have tuned values this high or am I missing something that's going to bite me later?



  • Dear developers,

    Today I flew on windy conditions, everything worked just fine, according to Randys recommendations Compass_Offs are ok now, maybe upper limit. I am a bit confused with those values in Accel XYZ, seems that there is still some noise, APM is on foam, might it be caused by cables? Nothing touches APM, except cover, where GPS module has been installed, and adapter cable is plugged into APM, for usb connection. Here is also and .log, a huge one, so additional recommandationas are pretty valuable to me.

    One thing was interesting: on camera gimbal, through the Ch6 tilt is controled, so when I try to put Cam down, quad is trying to climb, when in loiter/gps position mode. Again, very windy conditions, 3-5m/s, but a couple of days ago, I tested it on 7-10m/s, and I was the only, who proudly took-off that day :)

    2013-02-26 17-13 1.log
  • In reading my logs, my z values for acc,gyros and mag always seem to be very different than the x  and y values. Is this normal?

    2013-02-25 11-07-08.tlog
  • Hmm, bit of an oddity with accel calibration. I'm setting up a new 2.5+ unit which arrived this morning, but when I finish running through the accel calibration routine, I end up with the APM showing a 10 degree forward pitch when sat level on the same calibration surface (coffee table) I just used as my reference.

    Any ideas why this might be? The raw graphs show x very close to zero, ranging from -1000 to +1000 as I vary pitch through it's full range. The negative value seem slightly less than the positive one, so could it be a non linearity in the accelerometer that is throwing the zero value off. If so, should I bodge the offsets to give me a correct level at the expense of linearity with deflection?

This reply was deleted.


sam liked Jimmy Oliver's profile
Aug 25
Mike Whitney liked Mike Whitney's profile
Jul 19
Abdulatif Tlaib liked Ryan's profile
Jun 24