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: 297972

Reply to This

Replies to This Discussion


     I'm almost certain that the 3dr mediatek is shipping with the older firmware because we didn't have support in the main arducopter code before this release.  My guess is that 3dr will start shipping with the newer firmware once the bulk of people upgrade to AC 2.9.

Thanks Randy, two questions, is optic sensor tested and working ok and where can I find the instruction to update the GPS mediatek firmware?


     The throttle failsafe will not initiate an RTL if your throttle is zero and you're in Stabilize or ACRO flight mode.  In these cases it will instead disarm the motors.  Some people had issues before because they would land their copter in stabilize mode, then turn off their receivers before disarming the copter..and suddenly the copter would take off and perform an RTL.   That doesn't happen anymore.

     We need to be a bit careful about the scale when we say "0" and "950".  I probably should have said "minimum" instead of "0".  When you say 950 I guess you mean a very low throttle value or very high?

     ..and by the way, thanks for your efforts back on the 2.8.1 thread to help us test this release.


     I've had a look at your logs and I agree that the problem is most likely not vibration and not sonar noise.

     Firstly the easy one - the throttle deadband has been greatly reduced in size between 2.8.1 and 2.9.  It's only 10% above and below mid throttle (i.e 400 ~ 600 is the deadband).  So the times when you're climbing are caused by your throttle stick being just a touch above the top of the deadband.

     The bobbing up and down is caused because your alt hold response is a touch slow and our surface-tracking is perhaps a bit aggressive.  Instead of reducing the throttle accel P and I terms, I think you should increase them!  I think in general though we are going to need to calm down the surface-tracking in 2.9.1.  we've already got the constraints in place, they're just not quite tight enough..


     Yes, you should set it to XL-EZL0.


     Have you got some logs I could look at?  dataflash would be best but I'll take tlogs if that's all you've got.

     Can I ask, how long did you fly in manual mode before switching to alt-hold?  Remember to initialise the throttle cruise you should fly about 10~15 seconds in a stable hover especially if you've changed the weight of your copter or cleared the eeprom (through an cli, system, reset).


     Thanks very much!  Although my japanese is good, my french is terrible but google translate says you want to know if you should invest in another APM2.5 or a PX4.

     That's a difficult question but I think if you're flying a basic quad and you're not immediately using some of the extra features like voltage monitoring, LEDs, camera gimbal, sonar then you should go for a PX4.  If those extra things are important to you, then you should go for a 2.5.

     We have very little information telling people how to get their PX4 working but we will do a posting soon.


     Sorry, we renamed that parameter but didn't tell anyone.  It's now called CIRCLE_RADIUS because really, it's used only in circle mode and it controls how big the circle is.

     ...but one thing we did do is we went through all the parameters and put descriptions beside them.


    I've found is that sometimes the radio messages are travelling fine between the APM and the mission planner but just those green bars aren't updated at first.  If I click on the "Calibrate Radio" button they suddenly appear and all is well.

   Other times I've seen even after clicking that button the bars remain grey but I've nearly always been able to resolve it by restarting my mission planner.  I.e. it doesn't seem to be directly related to the firmware version.

   MichaelO and I discussed this but we haven't dug into why it's happening yet.


     Sorry! renamed to CIRCLE_RADIUS because it's only used in circle mode actually.


     Just time constraints really.  We haven't thought through how it should work in auto-mode.  Here's my off-the-cuff idea on how it could work, all feedback welcome!

  • if the altitude supplied in the waypoint is within the range a sonar can sense (i.e. <7m) we will climb/descend and attempt to hold that altitude above the surface.
  • all other times we ignore the sonar reading

     Another possibility is to add another flag into the waypoint to specify if the altitude supplied is a "height above home", or "height above surface".  That's perhaps the best solution although we have a bit of an issue with the way we handle mission commands that we would need to resolve before we could do that (all commands are actually stored as waypoints which means if we add one byte to the waypoint it will eat more eeprom space and we will need to reduce the max number of waypoints we support - the solution of course is to more efficiently store commands so little commands take very little space and then the problem is solved).


     We haven't modified the horizontal part of loiter much (maybe not at all) between 2.8.1 and 2.9.  It's the next target though on our list so hopefully in 2.9.1 we will introduce inertial nav for loiter as well and the wanking should cease.

     Loiter and Geofencing are the big targets for 2.9.1.


Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service