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

Reply to This

Replies to This Discussion


    We've somewhat changed the autotrim method between 2.8.1 and 2.9.  There are two methods:

       Method #1: In flight auto-trim which can be engaged as in 2.8.1 by holding throttle down, and rudder right for about 15 seconds.  Then you have 25 seconds in which you should try and fly a stable hover.  Land, put your throttle to zero and it should fly level from then on.

       Method #2: Set-up channel 7 to be "Save Trim", then fly in stabilize mode and use the trims on your radio to get your copter level.  Then land, put your throttle to zero, don't touch your roll and pitch sticks and then flick the CH7 switch for a second or so (doesn't matter if it's longer than 1 second).  remove the trims from your radio and fly again and it should be level now.  Marco's done a video demonstration here.

P.S. I will update the wiki shortly.  I didn't want to do it before the 2.9 release 'cuz it would have confused the 2.8.1 people


     Not much has changed with the optical flow sensor and OF_LOITER so I expect it works the same as with 2.8.1.  We have plans to properly incorporate it into the regular loiter mode by combining the velocity provided by the sensor into the 3rd order complementary filter we've started using (although we currently only use this filter for althold).  I'm not sure if we will do that for 2.9.1 or the release afterwards.

     There's a discussion here re updating the GPS mediatek firmware.  We will write up a wiki page to make it official in the near-ish future.


     Remember 42 and 0 will be the same for arducopter (0 = default which is 42hz) so "0" vs "20" is probably what you'll want to try.  You can even try 5 or 10 if you'd like.  Leonard is actually our real filter expert but my understanding is that lower numbers are more resistant to vibration but eventually it becomes less responsive.  So we're looking for the lowest number that doesn't feel laggy or sloppy.

     Anecdotal evidence so far seems to point towards 20.


    From talking with MichaelO, we'd like to narrow down on this "error comport" thing.  Can you click the "Show Console Window" checkbox on the help page of the mission planner and send a screen shot of what appears in the black console window around the time that that error appears?

Does the ublox firmware already support SBAS?


Oh, ok, good to know. Thanks



    Yes.  With the new mediatek 1.9 firmware it's performance is getting closer to the ublox but I think the ublox is still slightly better.  It just not quite a huge a difference anymore i think.

Hi Chris, I had the same problem as dudz, with it dropping to the ground as soon as I put it in alt hold. Disabling the sonar did the trick, and now alt hold works fantastic!

Any advice on troubleshooting the sonar though? I have the MB1200 unit that came pre-installed on my quad from the udrones store. I have verified that V+ and GND are correctly connected, and that pin 3 (AN) is connected to the signal side of AO as described in the wiki.

100% Thumbs up !!!

This could be partly related. Also the status display shows the ch in as all 0. If I switch on the TX before connecting the APM to the USB lead, then the green bars show up, but do not move. They don't move when doing calibration either.

It's nearly as if the PPM encoding/decoding is locked up somewhere. Going back to rc5 has all this working. I suspect that my APM could be in some weird state that prevents the EEPROM reset working perhaps, I'll try some more tests. Whenever I go into CLI mode, the EEPROM gets erased automatically along with the logs. It didn't do that in earlier versions of mission planner or APM. Not sure is MP or APM decides when EEPROM should be erased on entering CLI.

I have a problem with logs, I can't download any logs, and log number are all negative.

I tried the erase command to get everything clean, but no success, still same problem.

Any idea how to correct it ?


     It really doesn't sound like a ppm encoder issue.  I think Chris is right that your board isn't being detected properly by the mission planner.  Have you ever been able to successfully load the code through the mission planner?  CoolComponents is on the list of 3dr dealers so it should be the real thing instead of a copy.

     I've just retested both an APM1 and an APM2 and they're loading fine so it seems to be specific to your board.

     You know, I once had trouble uploading to a board and it was because I had one of the little jumpers.  I think the problem jumper was JP2, JP3 or JP4 which are right near the radio input pins.  If you have a jumper on one of those pins could you try remove it?

     If that doesn't work, I'm not sure what to say, I guess the easiest solution is to load the code through arduino (the official 2.9 release is in the downloads area although it's the same as rc5 anyway).

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service