ArduPlane 2.50 released

I'm delighted to announce the release of ArduPlane 2.50 for your flying pleasure. This release has a lot of advances to some of the core ArduPlane code, and should be a big improvement for many people.

Perhaps the most important change in this release is the new DCM code that does acceleration correction based on the GPS. This improvement is based on work by Bill Premerlani which really advances the state of the art for attitude estimation on small microcontroller based autopilots. The improvement in attitude estimation is very noticable in flight, resulting in significantly more accurate control. Many thanks to Bill for his patience in working with Jon Challinger and myself to bring this improvement to ArduPlane.

Other significant improvements include:

  • updates to the barometer driver to sample the pressure and temperature much more rapidly, leading to better altitude estimation
  • updates to the AP_AnalogSource driver to be interrupt driven, allowing us to sample all analog sources much more rapidly. For ArduPlane this improves the airspeed sensor on the APM2 a lot.
  • updates to the waypoint completion logic, to use a "finish line" algorithm. This prevents the problem of circling around a waypoint when we miss it by more than the waypoint radius. The waypoint is now considered complete when we pass a line that is perpendicular to the track, and passing through the target waypoint.
  • improvements to the AP_Mount code, allowing for control of roll/pitch/yaw stabilisation via EEPROM variables that can be set over MAVLink. This allows you to setup the mount once, and it will resume operation as soon as you boot. These changes also fix a number of bugs in the AP_Mount code, so it AP_Mount hasn't worked for you, please try again. Many thanks to Greg Fletcher and Amilcar Lucus for the AP_Mount improvements.
  • Lots of improvements to the ArduPlane parameter documentation.  This documentation should be the first place you look when trying to understand ArduPlane configuration parameters. Many thanks to Andreas Antonopoulos for his great work on generating these wiki docs based on the source code markup.
  • New LAND_PITCH_CD parameter to control the landing pitch when not under airspeed control. Thanks to Jeff Taylor for fixing this!
  • New SCALING_SPEED parameter that allows you to set the base speed for scaling PIDs. Previously we assumed a standard speed of 15 m/s, which is too low for fast aircraft. By adjusting SCALING_SPEED you can have the same set of PIDs for both airspeed and non-airspeed flight control.

There is one change in this release which may require some re-tuning. We were using the wrong value for time delta when using the PID controller for navigation roll. This has been fixed by making the PID library calculate the delta time internally, but it means that existing HDG2RLL_I and HDG2RLL_D values  will be incorrect. I have fixed the defaults, but if you have your own settings for these, you will need to drop HDG2RLL_I by a factor of 5, and raise HDG2RLL_D by a factor of 5 to get the same result as for the previous release.

Thanks to everyone who has contributed to this release!

For the next release the plan is to concentrate on improved stabilisation and navigation controllers, based on the great work being done by Jon Challinger.

Happy flying!

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • How do you repeat a mission in the same flight or is that not possible. Today I was flying and had it do a shout auto mission. Then I flew around for a while and decided to execute the mission again but nothing happened. When I looked at the log it went to AUTO but the target waypoint was not one, it was the last point. Is it not possible to execute an AUTO mission more than once or is that a bug?

  • I noticed in the new AP_AHRS_DCM.cpp code that independent drift correction was introduced. Does this mean that yaw drift can be corrected without the use of compass or GPS? 

    I am really interested in finding a way of getting rid of the yaw drift without using the GPS or compass. The aircraft that I am building is unconventional and the yaw does not work as in standard airframes. 

    Looking forward to your answer.


  • Is it possible to make a quary of climb rate?

    Like: mavlink_msg_vfr_hud_get_climb(&msg);

    I have tryed it but does not works.


  • Can I use the same bixler parameter file that I was using with version 2.4?

  • Thanks to those who made it possible.

  • T3

    Gongrats once again team,

    i have never tuned HDG2RLL_I & D, so i dont exactly understand what it does, neither i undestood the bug on release notes. My platform follows waypoints like a train with stock PID's and 2.4 firm (APM2). What should i expect if i update? should we wait for a fix release?

    thanks you all.

  • Is there a way to have altitude hold flight if I do not have an airspeed sensor? I would like to be able to just fly around at a constant altitude.



  • WOW thx a lot.

    Hmm strange can't compile it with the arduino-0100-relax with the 2.4 there wasn't any problem.

    Has something changed do I need to take the "real" arduino IDE?

    EIDT: OOOPS my fault didn't copy the whole zip into the sketch folder :)



  • Hi Andrew,

    I have two questions.

    Is FBW_B elevator still reversed in 2.50?

    Can i read RSSI information trough MAVlink now?



  • 3D Robotics

    Congrats, Tridge!

This reply was deleted.