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.


Tags: ACM, APM1, APM2, ArduCopter, Heli, Quad

Views: 266249

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!

got a couple question:

is this release is the same with RC5 ?

with this accel graph, i should keep my INS_MPU6K_FILTER to 0 right ?

fly tested with my tri, stock pids, except for rate_roll.. alt-hold was very nice.

i personally like to land with alt-hold, just lower the throttle and it will gently descend. once it hit the ground, close the throttle and switch back to stabilize..

any idea how to tune throttle accel P and I ? if is it too high or low ?

Hi Randy,

Got 2.9 running on my Flamewheel with 1/16" thick O-Ring suspension mount on each corner of my APM2 and got results pretty much just like your "Good" results,

Maximum Z excursion in the range -5 to -15. And the X and Y axes also looked similarly clean as in your graph above.

I did reset the MPU6K Filter to 20 as you suggested (default was zero?).

What little vibration is transmitted to the APM board likely mostly comes from the receiver and ESC wires.

The bottom line.

My Flamewheel F450 is flying very well with currently stock as supplied PIDs (I do have -40% expo on pitch and roll on my Hitec Aurora 9).

And suspension O-ring mounting of the APM2 board works at least as well as foam or gel mounting.

Great job on 2.9

Quick question, is the reason the Z axis defaults to approximately minus10 because of the weight of the internal acceleration sensing element (basically gravity)?

Yes, Z will show a force of negative 9.8 m/s^2 (gravity) when it's level. Turn the copter upside down and it will be positive 9.8 (gravity now pointing "up")

Yep, that's gravity.

On your O-ring suspension, I recommend moving the O-ring outboard mounting points outward.  I think you may have a problem with roll.  Surprised it flies actually.  You want a nice wide footprint.

Also, cut back a few of those zipties.  Cabling them like that makes the wiring much stiffer.

It would be much better if you could go to a PPMSum output, then you only need 3 wires on the input side.  On the output side, you don't need all those wires.  I'd try to just get the signal wires, and one set of power and ground, then use an off-board header.

So if you did this, your wiring would be reduced to:

Input: PPM signal, Power, Ground

Output: Ch1, Ch2, Ch3, Ch4, Power, Ground.  That's it, 9 wires.

I really need to buy a PPM cpable RX. If I am powering the APM off its own BEC connected to the input side through the RX, would I still need power and ground connected to one set on the output side? Or could all the ESCs just have signal connected?


Of course then you get to add in the telemetry, GPS and Sonar hookups.

If you use a BEC on the input, then you do not need power connected on the ESC side.  So each ESC needs a signal, and a ground.  You can use a single ground wire, and then have a breakout which splits it to the ESC's.  

However, I strongly recommend you feed the BEC to the APM first, then the Rx.  Even though it's more wires.  If you go BEC-Rx-APM, then you have 2 failure points for the APM.  The APM is the KING.  The copter can live if the Rx dies, it cannot live if the APM dies.  Power the APM first.

Makes sense. Thanks.

And one step better, is to mount the "BEC" directly onto the APM.  I haven't done this yet, but my new copter I'm building, I'm planning on making like a daughterboard, on which I will mount my 7805 regulator, and the Rx, with fixed connections to the APM2.5.  Then there is only one connection to make: Battery to board.  Only one likely failure point in the entire input chain.  And a JST battery connector is a lot more reliable than a servo connector.

That sounds like a great idea. I use a 10A BEC castle but now have the power module so was going to the the octo build with that. Now I'm thinking that exceeds the power rating of the power module. Will you be posting the details of your daughter board? I would also like to go that route to eliminate some a failure point. I also want to make the switch to PPM. What rx are you using for that?

And if your APM is drawing power from the same battery your ESC's draw power from, then the ground path from the power module cable negates the need for an ESC ground wire.


© 2014   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service