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 Guys

    I am not having any luck setting up a mates APM2 .

    I cannot get the green bars to show during calibration and no HUD movement.

    I have tried to erase and reset the logs, load arduplane FW and still nothing.

    Is there a definiative method to fix this?


  • what settings should i be using for loiter?

    it holds perfectly in light or no wind, but as soon as there 5-15kph wind it starts to toilet bowl and struggles to maintain altitude.

    also, this is my first APM board, i've been attempting to tune Alt hold - initially i was using the wiki page, which i now realize was completely wrong and I should have been just editing the thr accell (might want to update this as i wasted several days - this also led me to question the loiter tuning page)

    after "tuning" how accurate should this be? i have thr accell P value down to 1.1 (2.2 for I) and it seems OK, but still fluctuates by as much as 1-2 meters in light wind. How much should i be seeing the altitude fluctuate? like i said, im a noob so i dont know how much tuning will correct this! i guess im concerned if i lock alt hold at about 5 meters and fly around it will hit the ground.

    would love some help! the board flies fantastic in stabalise.

  • APM 2.5 Firmware Updates using Mission planner  - files that are downloaded appear to be corrupted, end result is after Firmware update solid blue LED board appears dead, will not boot, CLI works and further attempts to update firmware work.

    I tried Quad hex octa tri they all end up with solid blue LED.

    Downloaded file from here and used Load Custom firmware, that worked

  • Hi Guys,

    It seems that the current reading on my Sparkfun  90a sensor is off.  It reads 20A when at rest.  I noticed this when I upgraded to the latest version of Mission Planner. It used to be correct in the last version.

    Anyone else noticed this?


  • Greetings.

    Just wondering if anyone has successfully ran this version, with QGCS (v.1.0.4 beta)? 

    I tried to.  While the communication console displays continuous stream of packets, I am getting a "timeout! missing 195 read, 0 write" error when I do a "get". 

    What am I missing?

    Also is there a wiki on this?

    All the best.


  • I now have eight flights on my Quad with the GPS re-mounted high above the APM/props.  I also put the GPS on the opposite side of 900 MHz telemetry.  The GPS is mounted on top of a 3/8” diameter carbon fiber tube.  The GPS now allows a solid Loiter as soon as I lift off after short waiting period for the GPS LED to show a 3D lock.   It doesn’t need extra time to acquire the satellite constellation or almanac.  I looked up GPS signal multipath and I wonder if the spinning carbon props don’t scatter the satellite signals.   The pics show the GPS mount and a schematic of GPS multipath signal propagation.3692664469?profile=original3692663996?profile=original3692664439?profile=original

  • I have been flying my home built quad for the past 4 months using version 2.8.1 firmware. I delayed the change to version 2.9 until I had my quad flying reasonably well in most modes with the acceptable vibration levels needed for version 2.9.

    Three weeks ago I took the plunge and started experimenting with Version 2.9.1.  So far I am delighted with the improvements in Altitude Hold and the repeatable altitude precision I am seeing on the tlog graphs when flying back to back missions. The Alt_error is exceptional in calm conditions. The only change I needed to make from the default settings was to reduce loiter P to 4.2. and to change the MPU6k_filter to 20 Hz. Reducing the loiter P seemed to reduce the wobble in loiter but did not eliminate it completely. Flying in Stabilize mode is silky smooth.

    Congratulations and thanks to the development team working on these improvements. You all have done a great job and I am looking forward to flying with 2.9.2 when it is released.

    To date I have tested Loiter, Alt_hold, RTL and Auto in various waypoint  missions up to 1.4 kms in distance. I enjoy climbing up to 230 metre in Stabilise or Alt_hold mode for streamer release after which I switch to Auto for a controlled waypoint decent flying around the neighbourhood to 20 metre over my driveway. Gentle landings have been done while in Alt_hold,  Loiter and Stabilize mode. I have not yet tested a fully autonomous landing but will test this soon when I next fly in an open field.

    So far I am still using ver 1.6 on the Mediatek GPS as I am still being cautious in this area and have found the GPS to be reasonably accurate so far. RTL brings the quad to within 3 metre of the home position which I feel is quite acceptable.

    Thanks also to all the contributors on this thread where I have been lurking and gleaning very useful information.

    Attached is a graph showing the symmetry and altitude control precision of two back to back missions.

    Frame:        Netram frame kit with modified legs and hardware mounting plates. Motor pitch 515mm 
    Motors:        Tiger MT2216-12 KV800 
    ESC:           Aeouan XP-25A 
    Props:         Gemfan 12 x 4.5  Carbon reinforced nylon 
    Autopilot:     APM 2.5 with case 
    GPS:          3DR MTK Ver 2.0 with battery 
    Power:        3DR power module 
    Battery:       Win-Max 3300MaH 
    Current:       20 Amp total in loiter hover with 50% throttle stick position 
    Telemetry:    3DR radio 433Mhz 
    Radio:         Futaba T7C Tx with R617FS Rx 
    Servo:         Hytec HB-45 HS on RC10 for release device 
    Weight:       1.5 Kg 
  • Had a few succesful flights in stable on this quad with 2.9.1, I cleaned the logs last night and everything seemed fine when today it decided to perform the flight of death, just a few feet from me :'( Now APM won't connect to MP and CLI>logs just crashes. I'm getting the 'No dataflash' message in CLI. Tried re-flashing but no luck, so I'm thinking my APM is toasted (?).

  • Developer

    "ArduCoper V2.9.1" code on "VR Brain" FC board by "Virtual Robotix Italia" (MTK GPS):

    Special thanks to:

    - Roberto Navoni and Emile Castelnuovo (by "Virtual Robotix Italia")
    - 3DRobotics
    - ArduCopter Developer Team
    - DIY Drones community
    - Lorenzo Gualiumi (the filmer)

    Soon I'll start also same tests on PX4...


  • If i can suggest that genius guy who make new web page change the WRONG picture of Y6 setup

    and make the right one as here

    this stupidity cost me 3 carbon props and one 60$ motor(wires from base of stator pulled out),bent leg too...

This reply was deleted.


Santiago Perez liked Santiago Perez's profile