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.


Views: 298765

Reply to This

Replies to This Discussion

RMS is technically better than the peak method but you can use the peak method as well.  Since acceleration changes due to copter movement are relatively low frequency you can look at max and min peaks over a short period of time and get a good idea when vibration are strong.  We are just looking for a rough indicator and not a highly accurate critical measurement.  At zero vibration we would only see changes due to movement but what we are concerned with is an alarm for high levels of vibration.

So if one looks at (MaxPeak-MinPeak) over a short time say of 50 milliseconds you will see the size of the vibration envelope. So for Z it might be (1.008-0.998) =0.010 for a single sample period.  A simple rolling average could act as filter to smooth the output.  You would not even need to sample every sequential period to reduce CPU load.  Over longer periods, you are right the low frequency components would prevent any useful data from being gained unless the copter was in self destruct mode.

If you are doing crazy fast 3D acrobatics yes this method is not ideal since inertial movement will have a larger impact on the reading. For more typical flight using stabilized modes it may be fine. 

The idea is a simple low CPU overhead method of relative vibration levels in a limited CPU bandwidth situation.  If RMS with a low frequency filter can be done so much the better.

2.9.1-rc2 (release candidate #2) is now in the downloads area.  Sincere apologies to those who just started testing rc1 about 24h ago but there were two further issues found that we wanted to address:

1) small correction to manual throttle scaling using THR_MID (was scaling from 0 ~ 500 at low end when it should be mid throttle ~ 500)

2) bug fix for longitude scaling being incorrectly set to 1 because it was calculated using the Next Waypoint instead of Home

3) ESC calibration changes to support Simonk firmware (not critical but very low impact change)

Improvements over 2.9 are:

1) resolves "ppm decoder false positives" bug that could lead to RTL triggering even when a radio failsafe event hasn't happened

2) THR_MID parameter added to allow users to adjust the manual throttle so that vehicle hovers at about mid stick

3) bug fix for autotrim - roll axis was backwards

4) bug fix to set sonar_alt_health to zero when sonar is disabled

5) capture level roll and pitch trims as part of accel calibration

checkout this


i opened a very precise gps antenna and found below the little ceramic antenna a metal shield about 15 cm in diameter.


seems to help much.

Good news, thanks Randy!

As Randy says. It doesn't keep the props spinning when you are armed in manual throttle mode (STABILIZE). However it does mean that when you are in Alt_Hold your motors won't stop turning when you are in a fast decent.

The reason we don't want the props to stop in this situation is that they can start to auto-rotate in the opposite direction and stall the ESC's. Most ESC's will then not start until the throttle has been moved back to zero. As you can imagine, unless you quickly switch back to STABILIZE and drop the throttle to minimum you will spin into the ground.


     yes, you're absolutely right that there are different GPS settings and we actually set them differently for arduplane vs arducopter.  Have a look at system.pde's init_ardupilot function and you will see a line like this:

// GPS Initialization

     other options are AIRBORNE_2G and AIRBORNE_4G.  It only makes a difference for the ublox which allows you to change the filtering.  If you find any significant difference between the modes we'd love to hear about it.


Word of warning on Loiter (GPS mode) you need to be confident flying in Stabilize first because this is you safe fall back if the GPS or your Loiter Pid tuning has problems. Don't rely on the AUTO modes to save you until you have got them properly tuned.

Randy, the twitchyness in Loiter that some have had to varying degrees, is there any work being done on fixing or reducing this? Is it a milestone for v2.9.2?

Loiter has been completely redesigned so, like Alt_Hold, there will be a great improvement and some new problems.

I believe that the new loiter, like Alt_Hold can be tuned to be very gentle at the expense of accuracy during aggressive maneuvers.

The defaults are reasonably assertive but have room to be tuned further.

i made a excel sheet to compare the options.

what is the maximum velocity a copter can achieve? Is it really 100m/s or would be 20m/s enough??


The mode can be changed during runtime would it make sense to change it for Loiter/RTL into Pedestrian and for Auto into Airborne1g?


20 m/s is 72 km/h. A 10x5 prop rotating at 12000 rpm moves forward at 25m/s at it's zero thrust speed.

It is unlikely that anything other than a copter specially designed for speed will go faster than 20m/s.

Just for a bit of clarity, Where are you setting throttle trim on the r/c Tx before/during setting up in MP? (any recent fw version)

If it's any use, I have always set throttle trim to min before calibrating, I don't use Failsafe.

That way I get good throttle range!

Did try the trim higher than mid position, found when increasing throttle, nothing then suddenly 1/4 power or more...

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service