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 –


  • Sir can you help us regarding the weight of the following it will be great help to us

    total weight produce by ardupilot 2.5=?

    total weight produce by mini osd =?

    total weight produce by servo cables=?

    total weight produce by GPS module=?

    thanks and hope you reply sir



  • Sir, I am trying to have a onboard camera on my UAV, i wanted to know what will be the best specification for the camera.....also i have a 2.4GHz module which i will be using to transmit the video information to a laptop.....i wanted to know whether ardupilot ca directly be used with the 2.4GHz module.............thanks in advance.....plz i want help as i have to submit my project on oct 29th ..............

  • Important Note: Why does this happen?


     imu.init(IMU::COLD_START, delay, flash_leds, &scheduler);

    If we use the 'arduino' delay.. the IMU calibration infinitely (esp. Accelerometer calibration). Using MavLink_delay calibrates it properly. The default library examples in APM are not able to be run with just 'delay' as the parameter, although it compiles.

    Why this weird behaviour? Anyone?

  • A quick question:

    In your description to the imporvements made in AP_Mount code, is there a way provided (via Mission planner) to set the PID values for the roll/pitch/ yaw of the camera mount? I don't see a place in Mission planner (PIDs section) to set it specifically for the camera mount settings.

    Please help!

  • Wiki Ninja

    Ok, thanks for the response that the APM 2.5 will benefit to the power fix outlined in 'APM2.0PowerFixHot-To.pdf' found in the download area. 

    Are there any other hardware modifications to the APM 2.5 that I should consider? 

  • Wiki Ninja

    Does 2.5 APM benefit from the power fix outlined in 'APM2.0PowerFixHot-To.pdf' found in the download area?

  • Hi,

    Can somebody explain me the difference between nav_Roll and Servo_roll.. Both are used for PID's., When are they both used (nav/ servo). I need to use it for my camera mount, which one should I use and why?

  •  have a peculiar problem.

    My airspeed sensor is making me go bonkers.... In the CLI mode, under TEST - AIRSPEED, i get good numbers starting from 0m/s to 35m/s when I blow into the tube... BUT in the APM window, AIRSPEED does not CHANGE. the AS remains 0 and rather moves with GS (Ground Speed) This is wierd. Also on the left side of the screen where you have the airspeed indicator BAR, the bar sits at 10 and with the wind blowing into it, rather moves down the horizon... Looks like its reveresed... My APM is 1.2.11 and the 7002DP sensor...

    ALSO, I have a spare brand new sensor. INitially I thought that I had a bad sensor, but the brand new one is also doing the same... Am I plugging it in some wrong port ??? It was working in the same port earlier... Have tried number of resets and erasing and reprogramming the EEPROM... No use... IS anyone else facing this kind of an issue ?

    Kindly suggest if the airspeed sensor is working fine with the new APM 1.2.11 ?

  • Wind Direction Reference.

    I was looking at the log files and noticed that the wind direction is not on the same reverence system as the nav heading. The other day the wind was from the east and the direction was about –88. Today it was from the west and it was reading between 115 and 120 degrees. The velocity seams a bit high but maybe the winds aloft are higher than in the ground.

    Is there a mistake somewhere in the logic or does it get converted to nav reference before it’s used?

    I am flying an airplane without an airspeed sensor so the winds are a computed value. I was just curious if there was anything wrong or that’s just the way it’s suppose to be?


  • Hi Andrew,

    great stuff you made! :D

    Got the good new that my APM 2.5 will ship next week. Yeezzzzzz!!!!!!!! *__*

    I'm a newbie in the matter of multicopters, so I have 999 questions for you........

    Hey - just kidding ;)

    Ok - what I saw on pictures: What was the SD card on the former board for? And why the new APM 2.5 don't have it anymore??

    Another concern - looking at the WiKi info, guideline and photos - I can't see clearly (newbie!) where exactly and how the power is connected to the v.2.5 board ?? And from where I get the power? Extra LiPo or how I drain power from the main flight LiPo? Is there a more simple drawing to learn about the connections of the board? I'm afraid to toast something. The pics are not very clear to me. Sorry if my doubts sounds silly to you but I'm looking this things with the eyes of a newcomer.....   :P

    Thank you in advance for any hint's!!

    Have a nice weekend - regards from Germany,



This reply was deleted.