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.


Views: 298542

Reply to This

Replies to This Discussion


     Great news!

     I think we've found that it's actually better at 20.  It gets rid of some more noise and it's still fast enough that people don't notice any lagginess.  We're actually going to make the default 20 for the next release (currently the default "0" = "42").

Darn, I missed KevinB's post that it wasn't working during the testing period.  I'l have to look at it again for 2.9.2.

By the way, there is a new parameter called YAW_OVR_BEHAVE which controls when the autopilot retakes back yaw control after an override (normally a pilot override).  The default is "0" meaning at the next waypoint but you can set it to "1" and then it should never retake control until you restart the mission.


    Congrats on your flight!

    In stabilize mode the pilot is 100% in control of the throttle so you'll be doing the altitude hold yourself.  It sounds like your copter has a lot of power if it can hover at 20% thorttle..maybe you should put a bigger battery on it to at least get it to 35% ~ 40%.  It's not a huge deal but when you start using flight modes with altitude hold built-in (ALTHOLD, LOITER, AUTO) the copter will tend to sink or climb as you transition because your stick won't be in the right position for the mode you're switching into (because the deadband for the auto modes is from 40% ~ 60% of throttle).

    In anycase, good stuff.  For safety's sake you should check your accelerometer values before trying alt-hold.

Thanks for the info Randy. I'll try Y.O.B.=1 and ROI next time out. If it works, I'd like to see yaw override as a ch7 option in 2.9.2. :)

Thank Randy for your support. one more thing if i enable the Alt-hold but without using Sonar it will climb until it reach at leass 10 meter? or it will do nothing? 



what value should i get for the accelerometer before i try the alt-hold?

It uses the barometer + accelerometers for alt hold in genearl so it works fine without a sonar.  No climbing to 10m or anything like that.  In fact, in many ways alt-hold works better without a sonar.

See all the graphs that people are posting in this thread?  They're all checking that their Z accelerometer value in particular is not bouncing outside of -5 to -15.  That's the key to good alt-hold.  Lower vibration the better.  Also remember to set the INS_MPU6K_FILTER to 20.

Thanks Leonard,

In this case I won't change the throttle setup, becuse in stabilized mode it flies very well.



Hi all,

I'm running my quadcopter with an APM 2.5 board, an uBlox GPS unit an external magnetometer and firmware version.

My external magnetometer is placed with the components down and pins facing forward.

Can I use the standard pre-compiled firmware or do I have to compile a specific version, because I'm using an external magnetometer?

Best regards,

Jan Willem

The Netherlands


     You can't just flip your compass so it's components up, pins forward?

      It not then you'll need to add a line like this to your APM_Config.h:


      Please note that if you're compiling your own firmware based on 2.9.1 you all need to ensure this line is in your APM_Config.h:


Hi Randy,

So just to be sure. If I mount my external magnetometer with the components up and pins forward there is no need to compile the firmware and I can use standard firmware?

Best regards,

Jan Willem

The Netherlands.

i will try to figure out the Z value , does the alt-hold work below 10m without using sonar?


     Yup, that's right.  Then it will match with the orientation of the compass on the APM2.x boards and you can use the standard firmware.

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service