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

Reply to This

Replies to This Discussion

The first step in tuning the THR_ACCEL_P and THR_ACCEL_I terms as per Randy's instructions. (1 and 0.5 should be fine to start with)

Because you have already reduced the Filtering and that your copter's Alt_Hold works well on 3s, I assume that vibration isn't a problem. I would drop it to 20Hz anyway.

If you find that lowing the values doesn't work, try higher values. The Alt_Hold control loop doesn't play by all the same rules because it is a triple loop.


Happy to report that I did my accel calibration in terminal setup mode and used the stock 2.9 firmware for my Reptile Frame (TBS Discovery clone). Tested the auto land several times, and it worked wonderfully! No more bouncing landings. Loiter seems more locked. Did not notice much difference in stability mode and general flight characteristics, but I am definitely impressed with the new auto land features.

For what it's worth I've had really good results so far without adding any foam under my APM 2.5 case.  It's stuck to the APM carrier plate with about 2" of 1/2" wide of 3M automotive type double sided tape right down the center.  So it doesn't have much actual footprint of attachment and my props are balanced.  If it's performing well should I worry about it?  I've flown in stabilize, alt hold, and loiter so far, and done almost all my landing using RTL. 

Randy, is there any way to change the speed at which it travels when returning to launch?  It seems to come back a lot faster than it used to and it can be scary in certain situations, if there's something I can change to slow it down that would be great.

I think it should be using the WP_Speed setting, which should still be defaulting to 5m/s or "500".  Check it.


     Sure, WP_SPEED will control the horizontal speed that it returns at in cm/s but this also controls the speed that it travels at between all waypoints.

     If it's the descent speed that's become scary try reducing the AUTO_VELZ_MIN and AUTO_VELZ_MAX params.

I've never had an issue, even with my multi-rotors, to see which way it's facing.  That's why I put all the lights on.  And flying nose in is no issue anymore.

But I concede that our default should be whatever the industry standard is in this case.

JeffL, need to worry I guess!  Perhaps the foam isn't required..or the automotive tape is sufficient.  txs for the info.

I'm surprised this isn't giving problems with the roll-axis due to the "roly poly" effect. I'd suggest maybe using 4 little squares of this stuff, under each corner instead.

I wonder if the issue here is not so much that the tape, or foam, is damping the vibrations as much as it is...  Say the case is just sitting on a plate, and it's just held down with something.  The case could be vibrating against the plate, which creates large "hits" of vibes.  Having something slightly soft between the case and the plate prevents this vibratory slapping.

I guess I'll keep an eye on things as I continue to test and fly.  I was going to put significant foam under it the other day before flying 2.9 but I decided to see how it did without due to (1) when I went to pull my APM off the carrier plate it is stuck so hard that i was worried about breaking the APM case or the carrier and (2) I have a very tidy install of it and all my radio gear and kinda wanted to be able to get by without huge foam in between.  I'd also probably have to raise the next layer of the stack some (as shown in the picture at the beginning of this thread) because with my top entry 2.5 my cables are already close to my radio plate. 

Another thing, how are most people securing their APM to the carriers, especially with foam in between?  Tape that sticks to the foam, nylon tie straps, rubber bands?  And I made a thread about this but will ask here too, on the 3DR frames, what's the reasoning behind the slits cut into the carrier plate?  They go side to side with the two close together ones pointed to the front but having owned an APM 1.4 and 2.5 I can't see any correlation between the slots and a way to mount the APM.

Oh, ok I'll try that.  One other thing, on parameters like the one that says how long it waits before descending on RTL, the defualt is 5 seconds and I noticed if you use the arrows to go down in value it goes 5000ms, 4000, 3000, 2000, 0.  Does that mean you can't manually enter 1000 and have it do 1 second?  Or 1500 for 1.5 seconds?  What would it do? 

And also on parameters that are numbers without decimals like waypoint radius what happens if you put in something like 1.5?  Just curious how it handles things like that.

Firstly hats off to the dev team!  I managed to eventually get v2.9 in the air today on my APM1 after doing a quick tune this morning following Dave's guide.  After initial hand tuning I had to lower some of my PIDs a bit in the air.

The new ALT_HOLD is the best I've ever seen my quad hover, except for the initial drop which caught me a bit off guard.  Is this drop due to be fixed in a future release perhaps?  Then when I change altitude in ALT_HOLD my quad tends to "bounce" un and down once before settling.  Which parameter can I tune to improve that? 

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service