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 –


  • Hi, I found a strange things.
    In alt old my quadricopter jumping up and down like a goat,
    so I added AHRS_MPU6K_FILTER to 5 and everything went alright, alt old is perfect with and no sonar, so I tried to play with UNPO AHRS_MPU6K_FILTER 10 and whenever restarted APM before 5 then 10 then 20 and then 42 and best of all is 5 for I.
    Then I went out and tried loiter, loiter began to turn around in circles with increasingly fast, two weeks to find the problem, then I decided to reset parameters to CLI, shared by default AHRS_MPU6K_FILTER changed to 5, and the parameters of the gimbal, I try loiter perfect.
    Today I played again with AHRS_MPU6K_FILTER and went back to the same defect,
    reset parameters to default and loiter back alright.

    But if I play with
    AHRS_MPU6K_FILTER change them a couple of times you put in loiter circle more and more fast and does not stop.

    My APM 2.0 firmware 2.9.1, GPS uBlox, ESC BLHeli by Steffen Skaug.

    Sorry for my english but it was troduced by google :-(


  • Hi there i have a dji f450 frame flying like a dream in stabilise and acro modes, its about 2kg heavy as i have a nex-5n attached to it. 

    My problem is that i cannot get rtl, loiter or alt hold to work properly which is something i desperately need for my aerial video company. I think its only the throttle that im having problems with and i cant figure it out. 

    It seems to either shoot up very high or drop very quickly when i activate any of them and once i have recovered with the throttle it starts to pulse up and down loads, ie the motors stop and start pretty rapidly. 

    The throttle rate pids are p=5 i=0 d=0.4 i have tried all d values between 0-0.5 with no difference. I have also tried a p value of 3-6 but all it seems to do is tell the copter to drop or rise depending on the value (5 seems to be closest). The other values are the default v2.9 ones. can you help? 

    Thanks Tom

  • Hey guys

    Which are PID parameters of position hold?
    I have no problem with stable, altitude mode but when I switched position hold, my copter wobbling.

  • Hello,

    Can someone please clarify me the concepts AHRS_BARO_USE, AHRS_GPS_GAIN, AHRS_GPS_USE?

    What happens if I have all 3 at 1 like




    Will the computed altitude be a mix of baro and gps readings?

    Right now I have




    and sometimes in ALT_HOLD the quad descends too much (you can see it in the vídeo at 8:30 to 9:00).

    Here is the vídeo and the logs.



    2013-02-02 Pista Corroios AltHold & Stabilize.log

    2013-02-02 Pista Corroios AltHold & Stabilize Tel.tlog

  • So here's a weird thing.  My question, is this normal, is everyone experiencing this??

    Upto this point using 2.81 and earlier, I have not experienced anything like it.

    Current setup:

    -APM 2.5 with case

    -UBlox GPS

    -JDrones Quad


    (Note: so far I have only tested this indoors.  Without flying at all since I uploaded v2.91 via MP)

    Basically...I calibrate my Quad and level it.

    Put it down on the table and everything looks level, including the all good.

    I put the Quad close to a window then the uBlox gets a 3Dfix and the MP display starts moving around, but the Quad is perfectly still.

    So I move the quad away from the window, losses GPS fix...and again the MP is perfectly still, like it should be.

    Move back towards windows, get 3DFix, and again MP display jumping all over the place.


    So why does the MP HUD show that that quad is moving around when infact its perfectly still.

    But only when 3Dfix is acquired.

    Is this normal...will my Quad be all jumpy when I actaully go out and fly it?  Or is this only a MP bug of some sort?


    During the entire video, I had the quad sitting close to a window where it would cut in and out of a 3DFix.

    Just enough to show the transition stages.



  • Hey guys,

    Just wanted to give a report.  I have been flying v2.9 for probably 20 or so flights - generally long 10-12 min once.  Mostly in stabilize, and it flies beautifully.

    My setup:  TBS discovery, 880kv motors, 9x5 graups, 4s, RTF ~1.65kg,  APM2 with GPS soldered to the board, v2.9, just updated gps to 1.9

    Anyways,  I don't generally use the auto functions, but when I have tested loiter the past few times,  I have noticed that it seems sometimes to work and other times just to drift.  I have been making it a habit to take off with a GPS lock and the logs generally show 8-11 sats.  Granted it's the mediatek, and it's not located in a very favorable spot, but it still gets a lock.  It almost seems like it's actually just in alt hold mode rather than loiter.  Occasionally it will "catch" and react like it's in loiter.  This phenoma seems to have happened after I successfully uploaded gps V1.9 due to the favorable reviews on it.

    I attached a recent log that hopefully someone can take a look at.  If i don't have the right logging enabled, I can change it up and do another flight.  this flight was an FPV flight with probably 95% forward flying at moderate speeds -  So raw values looks a bit odd.  I also attached the kml file.

    Thanks for the help!  Jonathan

    2013-02-06 17-54 8.log

    2013-02-06 17-54 8.kmz

  • Moderator

    Something I've noticed using the 3DR radio's, if signal is lost by the 3DR radios (out of range or power disconnect) using APv2.68 and signal is then regained the MP reconnects and carries on as if nothing was wrong.

    With ACv.2.9.1 it never reconnects requiring the connect button to be clicked

    Can anyone confirm?

  • Hi,
    sorry to ask this but would use a software ide to interact with the code arducopter. What IDE can use?
    I'd like to use eclipse, but did not find many info who can help me?
    Alternatively, able to use what?

  • My first flight in Auto modes: Simple mode, AltHold & Loiter.

    Started with a n early 360 Yaw both directions to later on calibrate compass on this log file.

    Put on Simple mode, works fine.

    AltHold also works fine with my throttle middle position.

    Loiter also went ok, but then the heavy wind came along. Thanks to SimpleMode in the dark.

    My configuration is:

    DJI F-330 frame

    4 x 10 Ah ESC

    4 x T-Motor 2212-16 750kv

    3s 2650mAh

    AttoPilot 90a


    Ublox Gps

    Futaba T8J tx/rx

    Landing also went fine.

    I attached logs and my param list.
    Can someone take a look and tell me how life is?

    I would be grateful for some inputs now.

    I'm to enthusiastic right now, because of my first flight in auto, to be creative at all.

    Now i'm going to pick up my DJI F-550 with Wookong-M I just ordered. Think I need this system as a reference for my future multirotors with APM. 

    2013-02-06 17-35 25.log

    2013-02-06 13-23-25.tlog


  • I noticed now in the Terminal window it states: "CLI Works only on first connect of power, log download only over USB"

    Is this something permanent or will it be addressed in the future?  This is probably why I've had to restart my MP and reboot my APM every time after I went into CLI mode.  I've also tried to download logs over telemetry and failed...

This reply was deleted.