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 –


  • Last Sunday I had another "event" with an auto mode in 2.9.1 :(

    RTL failed to hold position during the initial climb. I was hovering in loiter ~80' from launch, turned the tx off, and it drifted with the wind as it climbed up. I let it continue for a while to see if it would eventually correct itself. I decided to switch to stab mode and stop the climb after it drifted passed the launch point nearly 100' from the position where I engaged RTL. Wind was strong at 15-20mph, and the quad appeared to stay flat, letting the wind blow it as it climbed. Upon reviewing my logs... it looks like something weird happened with Nav Roll:

    3692620042?profile=original3692620129?profile=originalPitch looks normal. Nav is commanding a strong roll, but roll appears unresponsive until I switched to stab mode and stopped the quad manually. I made several flights later in the day and loiter worked awesome in the strong winds; in fact in this case I was in a solid loiter hover when I switched to RTL. Can someone please explain how/why this might have happened? It scares me to think what may have happened if it reached RTL altitude and started to head home. Log attached...

    JCPenny2013-02-10 23-33 2.log

  • RAW Data?

    If I want to look at accelerometer vibration data do I set SR0_RAW_SENS to 1 or SR3_RAW_SENS to 1? What’s the difference?


  • Can somebody tell what exactly to be enabled in logging during test flight and later on when tuning/testing is passed?

    Also it would be grate to also see the processor consumption for each parameter or at least sorted after that.

    Tried to find it out by searching around here for a while without enough to be quit sure about it.

  • Is it possible that some of the GPS drops are actually issues with the GPS data transfer to the mission planner? I can't determine if it was linked with  2.9.1 or with the recent MP, but I have seen a few cases where some of the data steps in the MP. Check the attached tlog. The quad flew the route very nicely (indicating it had good GPS data),  the GPS always shows as 3D Fix (would it continue to show this if there was no GPS packet coming in?), but the position updates come through very infrequently. The attitude data is fine.

    I don't have a log of it, but I had an issue in my workshop last week where the attitude was steppy. I turned on an ardustation-like ground station which sent commands to enable the various packets then everything became smooth.


    2013-02-10 14-03-59.tlog

  • Wow. Just tried new 2.9 in altitude hold and was pretty damn good. Just covered the baro sensor with those woman cotton makeup remover (looks like cotton discs) and used 3M Micropore hypoallergenic paper tape to keep in place. Nice one developer team. 

  • When the hexa is disarmed, looking at the hud in mission planner the pitch and roll is jumping around all over the place, +- 4.5 most of the time. Once armed it drops to +-0.2 It is sat dead still on the floor. I have flown the hexa and its seems to be alright. 

    Any one any idea whats going on here?

  • The Hexa firmware is driving me mad now, I can not get hexa 2.9 or 2.9.1 to upload to a APM 2.5 without failing on the verifying part of the install. Installing the quad firmware works fine. Ive also tried it on the last 3 versions of mission planner.

    Tried rebooting the laptop, tried erase, tried reset. Nothing seems to work.

    The firmware seems to be all ok but I would rather the software could verify that its ok for me.


  • Loiter Tuning Question.

    I have a medium-large quad that’s fairly powerful. With defaults it flies well in Stable mode. In Loiter if I get a gust of wind it will rock hard and takes a whist to dampen out. Do I have THR_RATE_P too high or do I need to adjust some of the Loiter parameters. I will be going out later today and need some advice on what to tune.

    APM 2.5 with uBlox GPS.


  • OK guys

    Very happy with the tuning on my 650 quad BUT...

    I've now added approximately 300g of weight in the form of a gimbal and compact camera

    Can someone give me a clue where to start on the tuning, it still flies in stabilised mode lovely but in loiter and RTL it struggles (understatement) to hold altitude, I'm guessing it's a throttle/alt hold setting somewhere but don't want to risk just trying stuff as it's already hit the ground quite hard several times


    35xx 890kv motors on 3S 5000mah, 650 frame


    Thanks in advance

  • I just wanted to say that today I had my first configuration and setup of 2.9.1 (from 2.8) and it went super smooth. Flight log is perfect, everything that I tested just works like magic. Also, loiter is times more stable. Happened to be around half a meter. 

    Thank you devs!

This reply was deleted.