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 –


  • How to show your exact PID in the HUD

    Look at my HUD (image) and observe my P Roll/Pitch Gain is reflecting my P Roll/Pitch values.
    First of all I renamed ch.6in to "P Roll/Pitch Gain 0,"
    Next I turned my ch.6 all the way to left and put that value from HUD into Min. Ch6 Opt Min. value, in my case 0,0970 and the same opposite and than value 0,2070 on max value.

    So now I can actually see in my HUD live/dynamically the value on what I have sat Ch6 Opt (In my case P Roll/Pitch Gain). Though i can't get the window/range of these values moved above these limits (min&max). For P Roll I have a wide enough window.

    Now i don't have to change to Configuration/ArducopterConfig and refresh to see that particular value of the parameter I have configured for Ch6Opt.

    I don't know if this is old stuff or not, tried with no success to find related.

  • Need some advises.

    What parameter in Flightdata/Tuning view is the best to monitor 1: Generally, 2: When testing flight modes?

    What parameters to detect all kind of vibrations on the board?

    The reason I ask is that the limits are killing me when picking what to graph.

    Hopefully some others need these answers as well

  • Regarding inertial, Biggest problem seems to be motor / prop vibration.

    Solution is actually pretty easy, proper isolation and dampening of Flight control board.

    I started a discussion on Vibration isolation and dampening for 2.9 - - and have managed some excellent results myself.

    Check out the discussion and the replies:

    I O-ring suspension mounted my APM 2 in my Flamewheel 330 and managed + and - 1 Accel vibrations.

    Plus and minus 5 is more than adequate for solid inertial and that is what I have on my Flamewheel 450 also O-ring suspension mounted but not optimized as well as the 350.

    This isn't rocket science, the biggest problem is for those people using dampening materials, they usually use way too much of it or way to stiff a material for the really light APM (or PX4) flight control board.

    The shock isolation / dampening system needs to be optimized for the mass (weight) of the control board and the flying vibration frequency and amplitude of the air frame.

    For us that translates to not much total movement, very progressive and just the right amount of dampening.

    Check out my discussion and if you can't de-vibrate your flight control board adequately for inertial navigation youve got a lot bigger problems than that.

    Inertial nav is the future because it is A LOT better, make the move and move on we are going to need what little extra code space we can squeeze out of the APM to do interesting new things not hold up old inadequate methodologies.

  • Developer

    Inertial is the future, NAZA, WKM and Mikrokopter use the inertial for the correction... always!
    Is when I walked in ArduCopter that i speak and insist on "inav correction" implementation, now that Randy has done miracles we just have to improve it... :-)
    But INAV require nice setup, good balanced props and motors, nice frame, in two words "less vibrations".
    In my drones I had to install APC SlowFly, with propellers that I had before there was no way to successfully operate the inertial.

  • Hi!

    Just an idea. Why not release a non INS - fancy version with just working code without surprises?

    Here is what i gather from posts:

    Sonar like in 2.6 ?

    pure baroalthold like in 2.7.3 without GPS Fix Bug. (baroalthold was worse in 2.8.1)

    gimbal (2.8.1? and up ?)

    Stab (2.8.1 and up)

    GPS (like 2.8.1 incl MTK19 support) with adjustable minimal Satcount for each function (PH/RTH/Homepos etc)

    Corrected Thr/Fails / anti fly away 2.9.1 (?)


    Kraut Rob

  • Hi,

    i'm a new happy arducopter user, i've flashed my IMU with 2.9.1 and INERTIAL_NAV_Z disabled on my quad since (The results are not good with acc. and i like to rely on my baro+sonar)

    Alt hold is OK but when i want to climb or descent, the movement starts approximately 2 seconds after i pushed up or down my throttle stick. Is this the "normal" behaviour or should i look forward some PID tuning ? (Find my actual PID on following screenshot)

    Thanks in advance for any help
    (My setup is F450 frame, Lipo 3S 5800mAh, SimonK flashed ESC, Turnigy SK3 2826 1130kv, Xoar prop 10x5, Total weight 1.4Kg)3692612270?profile=original

  • I havent read all the comments yet, but I have a loiter bug *possibly*. Its documented in the video and I am attaching the log file as well.  Basically if you flick to loiter from stabilize, you will get periodic (possibly 10 seconds or so) "motor cutout, then recovery". Changing back to stabilize seems to be fine.

    Here is the Log

  • Moderator

    Craaash... I seem to be having some trouble again, in the hover a few minutes ago my quad appeared to be slowly decending in Alt Hold then continued to lose height in Stabilise, I increased throttle but it still came down, then went out of control and crashed on the garage roof! My sensation was that there was no or very little response to my throttle input. I've looked through the logs but all I can see is that the throttle responded to my input by DROPPING at first (green line) and then lagging behind, weird, battery (3S 5000mAh) was around 11.3V in the hover.


    2013-02-05 18-33 19roofcrash.log

    2013-02-05 18-13-06roofcrash.tlog

  • Moderator

    On Sunday I had something that has never happened before. I was flying a mission, basically just two waypoints with a parachute drop followed by a landing. I'd flown it many times before.

    Short story: just after waypoint 4 the quad started to "toilet bowl" really badly and I was only just able to save it by getting back to stabilise just before it hit the ground, it actually did hit but I also had whacked in full throttle by that point so no damage. Later flights that afternoon showed no problems.

    I've put a thin small tin plate under the tray that supports my APM separating it from the power wires underneath to prevent any magnetic flux coming through from the wires, the plate is not magnetic at all and appears to have had no effect on the quad (or has it?)

    The problem occurs at from just before 558 on the log where I'm able to switch out of auto.

    2013-02-03 07-23-09-ToiletBowl.tlog

  • Just some thoughts and observations on the magnetometer subject, and other things.


    I was often giving the quad a couple of turns by hand before launch. This seemed to eliminate gross errors, at least for the first few seconds but now I generally do a couple of hover turns before using any nav modes. (One good turn deserves another)

    Last night I secured the quad to the floor and gave it full throttle. There was a 15deg compass swing between zero and full. I suppose this is acceptable considering the copter is probably only changing its power +/- 20% from hover most of the time. I dont see a way to achieve greater separation between the APM and power bits anyway.

    I should get a good log with lots of turns and power changes and use this for a permanent calibration. + to do list.


    Have I got this right?

    The copter calculates a bearing to the next waypoint, turns to face that direction using compass, and sets off. When it gets blown off by wind (or compass error) it seems to compensate by flying sideways instead of turning into wind like Arduplane. This is probably more noticeable on my H frame and showed up with on board video.

    (flying right ‘wing’ down at about 40s mark)

    Mine tracks great in light winds but in stronger ones it never seems to nail the drift, always snaking across the track. I guess I could improve that by tweaking something.


    Also it seems to aggressively apply auto speed changes but be very lethargic at overcoming a headwind. If the auto groundspeed is set slow it may even get blown backwards,(not because the wind is greater than its maximum). Think the first may be a ‘P’ issue and the last ‘I’ (throttle rate?).





This reply was deleted.


Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21