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: 298940

Reply to This

Replies to This Discussion

By the way, if after doing the accel calibration and adding the vibration dampening foam you still can't get good performance please try:

  • If using APM2.x change the AHRS_MPU6K_FILTER to 20
  • Verify that vibration isn't your problem by enabling the "RAW" message through the cli, do a quick flight in stabilize mode and check the Accel Z values.  If they move around too much you've got a vibration problem so you might want to check other possible sources including props and motors.  Here is an example of good and bad values.

Happy flying!


This is front page news! Best release ever.


Excellent job! However have run into to a problem where directly after loading 2.9 I can't connect at all using the same port and baud that I loaded the firmware with? No heartbeats received. Tried twice. Will do a full erase now to see if that helps...

EDIT: had to unplug the flight battery and replug the USB and now connection is confirmed, off to setup and test...

Graham. I was just connected/powered over USB and had no problems.

Just had my first flight, on default PID's, X525 frame, 5000mAh 3S batt, Hacker Style 20-22L motors, 11x4.7 props

First impressions:

- Alt Hold is very, very good, if anything a tiny bit busy but that's just nitpicking.

- Loiter is VERY busy/fidgety as it was in v2.8.1, I haven't yet upgraded my onboard mediatek GPS, will this help with this fidgetiness? How else to stop or lessen this? It makes trying to take an onboard video in Loiter really bad.

Randy, you state:

Modify the throttle and altitude PID values:

  • Increase your Throttle Rate P, reduce I to zero, increase D - (how much P & D / to what?)
  • Increase Altitude Hold P, reduce I to zero - (how much P / to what?)
  • Tune Throttle Accel P and I terms but try to keep P about 1/2 the size of I

Yes odd, never had that happen before. I always could connect straight after a firmware change but couldn't then, all seems fine now.

Thanks to the whole team for this epic release, special thanks to Randy for making reality all my requests and Dave for the awesome video for this 2.9!

I would like to remind that some parameters have not disappeared but just been renamed, for example "ALT_HOLD_RTL" now called "RTL_ALT_FINAL".

Bests, Marco

No failsafe options on the failsafe page?

(I know the parameters for this are in the Advanced Parameter tab but why are they not on the failsafe page?)


     Ah, yes.  I was a little vague on the throttle rate and altitude gains.  If you look closely at the image just below those comments you can see the defaults:

         Altitude Hold P: 2.0      I:0

         Throttle Rate P: 6.0      I:0      D: 0.2

     Generally we think people should go with these and adjust the Throttle Accel P and I values to suit their frames.

     We highly recommend upgrading the mediatek firmware to 1.9.  It brings the mediatek much closer to the performance of the ublox.  Still, the default Loiter Rate P is a bit high, better to start with 2.4 and move it up until it gets too busy.

     By the way, loiter and navigation will be reworked in 2.9.1 and we expect it'll get much less busy and when move around in loiter it will have a much more natural feel (video).



     Yup, we've got to update the mission planner page to match the new software.  It wasn't forgotten, just not quite done yet..

I think google code page is not maintained anymore since 8th of January. (

The new repository is here:

Is there still any use of the googlecodepages?

Default value for AHRS_GPS_GAIN is 1.0 for 2.9 release. In the 2.8.1 release thread, some advise to lower this gain to 0 for 2.9-RCx. So, is it still necessary to lower this gain, for Mediatek user or Ublox user ?


Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service