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 –


  • Thank you developers! Version 2.9 is working very well. I also fly DJI Wookong and the gap becomes smaller for each AC version! I really like the new autolanding function with automatic stop and disarm of motors!


    But one thing I miss is when shifting to Loiter without having GPS fix yet the mode become "stabilize"? The natural mode for Loiter whitout GPS Fix should be alt.hold while waiting for GPS as these modes are more similar. This will give the correct thottle / altitude response as expected  by pilot when changing mode. Also the way this is done by DJI.


    Now change to loiter gives unpredictable altitude respons depending on GPS fix or not as manual thottle may differ much from the center point for alt hold.


    I have also suggested for delevopers a safetyfunction to disarm if model get inverted in automodes where low thottle don't stop the motors. This will stop model laying upside down on ground with propellers spinning at full speed (trying to recover) while pilot first need to shift to stabilize before being able to stop model. This is a easy fix wich I already use on my Arducopters with success, and hope to see this in next AC version!

    Thank you!

  • I just finished with some experiments on anti-vibration mounting and compiled the results in one image that might help those wondering about vibration levels and 2.9. It may seem obvious, but I'm most happy with the configuration on the bottom right. As usual, YMMV but I can say after this experiment:

    A perfect ACC dataflash log = A perfect altitude hold


  • I have been having unexpected episodes of sudden severe rapid vertical ascents in both alt hold and loiter modes. It usually happened with a little gust of wind or change in attitude.. This particular episode resulted in a crash..

    APM 2.9, MP 1.2.32

    3DRquadcopter 880 kv motor ,4S, 20 amp 3dr speed controllers, sonar with LC filter and shielding 

    I have tried 2 radios, balanced props, started with default params and worked them lower to current values. The graph is in Al hold mode. Out of ideas..

    Help pse..


    2013-01-22 14-43 13.log
  • Hello guys.

    I am facing a problem and I cant solve. I have the v 2.5 board with the 3dr radio. 

    Uploaded the new 2.9 version, erase the eprom, and set all hexa again.

    Then I start flying. Its working normally. Stock rate P is a little high. Then I go to my netbook and start to dial it down.

    Then I start to change others PID's. 

    So far everything is working as expected. 

    Here goes when my problem start.

    To make tune process faster, I set the dial on channel 6 and set mission planner to Rate P on channel 6. No big deal, right?

    After choose that option, hexa goes crazy.

    When input like 20% stick throttle just to spin the motor, motors spins for like 2s and BOOM. It throttle up itself so fast that Hexa jumps and flip and hit the ground :(

    After that I have to reflash the board, because throttle is on berserker mode forever, even if I turn channel 6 off  on mission planner.

    That happened to me twice, and both time this erratic behaviors starts only after channel 6 is set on mission planner. 

    What is driving me mad is channel 6 dial button its working. I dial up and down and when I refresh data on mission planner, new rate p is there. New firmware is using 1.5 on stock. I set min 1 and 1.5max. 

    I tried two boards (an arducopter and an AIO pro/megapirate v2.9) and both are doing the same back flip on take off when channel 6 is activated. If channel 6 is off on APM it works flawless. Tried different esc and diferrent radios and motors. Broken two quads already trying to figure that out. That wasnt happening with the 2.7x version.

    Here goes the telemetry log of my last crash.

    Maybe someone smarter than me can help.
  • Ch6 tuning doesn't seem to be working for me now. I'm not sure if it's mission planner, or 2.9 that's to blame. I'm on mission planner 1.2.32, and haven't tried tuning until now.

    The problem is that when I set CH6 Opt to CH6_RATE_KP (or any parameter it seems), it will ignore the range specified below it, (I am trying to use min 0.05 and max 0.22) so when the ch6 pot is outputting low pwm (992), it will give a parameter value of 0.45 and at a pwm on 1500 or above will give a parameter value of 0.

    Tried recalibrating the radio, but it doesn't help.

    Can anyone replicate this?

  • 3DR should send this guy a board for review:

  • Made 2 flights today with 2.9. So far it looks promising, although my still quads needs some tuning.

    I had some problems with Loiter. After changing mode to Loiter i see many times rapid few meters ascent or descent. I checked logs and it seems that there's sometimes difference between Baro Alt and INAV Alt when entering loiter. That difference seems to  trigger big throttle and altitude change depending which altitude value is higher? See attachment below.

    Is there way to tune this out or do i need to balance my motors and props better + add more damping for APM?

    I'm using APM1, tested with default pids and with modified Throttle Accel P = 0.5 , I = 1.0 and Rate Loiter P = 2.4 without big difference in problem.

    Regards Jani


  • I'm being a bit of a pain today lol...just getting around to doing some backlogged updates to my quad.

    Does anyone remember this? Specifically the comment by Andrew re maybe adding an AMP_OFFSET parameter. Or is it there with a different name and I missed it? I do use an Allegro sensor, but I think this parameter could be used by anyone for correcting for current reading offset. Perhaps as measured by a more "accurate" device and you want to make the APM's readings match, or maybe you just want to null out some base current consumption for some kind of advanced test etc. Thanks.

  • Has anyone tried to upload octo quad firmware (2.9)? Marco?

    It complies and upload fine using arduino 1.0.1.

    I can connect via mavlink (USB), and latest mission planner, but I cannot see any realtime movement on the HUD.

    Also cannot complete radio calibration. No green bars at all.

    Cannot perform acc calicrations either.

    I tried rc5 and 2.9 official, no luck.

    When I load standard quad FW from the mission planner everything works...

    Any Ideas? thanks

  • Not sure if anyone's mentioned this yet (I've been trying to follow new posts as they appear...). What's happening is the blue GPS LED on my APM 2.5 keeps flashing even though the Lock LED on the MTK GPS (original FW, not 1.9) has long been solid/locked, and clearly MP is getting my GPS fix. Anyone else see this, or any ideas? Never saw this before.

This reply was deleted.


DIY Robocars via Twitter
23 hours ago
DIY Robocars via Twitter
DIY Robocars via Twitter
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
DIY Robocars via Twitter
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Test my car. RTK GPS worked great. Thanks @emlid for their support.
May 8
DIY Drones via Twitter
RT @chr1sa: @kane That's @diydrones circa 2009. Still have a box of those Canon cameras that we used to strap into planes, just like this.…
May 3
DIY Robocars via Twitter
RT @chr1sa: Our next @diyrobocars race is going to be outside at a real RC racetrack in Fremont on May 28. Fully autonomous racing, head-to…
Apr 30
DIY Robocars via Twitter
RT @f1tenth: Our Spring 2022 F1TENTH course @PennEngineers is coming to an end with a head-to-head race as a big finale. So proud of our st…
Apr 26
DIY Robocars via Twitter
RT @DanielChiaJH: I wrote a thing! Throughout the development of my @diyrobocars car I've been using @foxglovedev Studio to visualize and d…
Apr 23
DIY Robocars via Twitter
RT @SmallpixelCar: My new car for high speed. Low body, everything ( @NVIDIAEmbedded Jetson Xavier NX, @emlid RTK GPS, IMC) under the deck…
Apr 23
DIY Robocars via Twitter
Apr 21
DIY Robocars via Twitter
RT @f1tenth: F1TENTH Race training setup @PennEngineers for our upcoming ICRA2022 @ieee_ras_icra competition. @OpenRoboticsOrg @IndyAChalle…
Apr 21
DIY Robocars via Twitter
RT @fatcatFABLAB: Proud to be hosting a restarted DIY Robocars NYC Meetup April 26. Come by if you want to talk about and race self-driving…
Apr 17