ArduPlane 2.69/2.70 released

I've just released ArduPlane 2.69 [UPDATE: revised to version 2.70 after bug fix (see comments). This release includes a lot of internal changes, principally the AP_HAL changes, which is why it took so long. I've also been doing a lot of test flights to try to ensure that all these large changes haven't broken anything.

As has been discussed previously, the biggest change in this release is the move to the new AP_HAL hardware abstraction layer. This was a large internal change, that by itself didn't change the behaviour of ArduPlane, but did allow us to make ArduPlane much more portable. As a result, this is the first release of ArduPlane that works on the new PX4 autopilot board. Unfortunately the documentation on how to setup ArduPlane on PX4 is still lacking, so if you have a PX4 and want to run the 2.69 release then you will either have to dive into things a bit yourself to get it to work or wait a bit longer for the documentation updates. Sorry about that!

Of course we still support the APM1 and APM2 and I plan on keeping ArduPlane working on both those boards as long as possible. What I expect to happen is that some new features in future releases will only be enabled on the PX4, but for now ArduPlane on the PX4 works just the same as it does on the APM1 and APM2.

As you might expect from the fact that it has been over 2 months since the last ArduPlane release, there have also been quite a few changes not related to the AP_HAL and PX4 work. Many thanks to everyone who has contributed patches and ideas that made it into this release! I know not every requested feature made it in, but I thought it was better to get the new release out now.

Some of the key changes in this release are:

  • new flight mode 'TRAINING'
  • support for PX4 autopilot
  • CIRCLE mode now holds altitude
  • support for counter-clockwise loiter (thanks to Jochen)
  • support for the 1.9 firmware on MTK GPS
  • support for mounting the APM board in lots of different orientations
  • improved the MPU6000 accel/gyro filtering a bit more
  • secondary elevator support (thanks to Michael Warren)

One of the changes I am most pleased with is the addition of a new flight mode called TRAINING mode. This mode was developed in cooperation with a MAAA flight instructor, and is designed to help people to learn R/C manual flying. When you are in TRAINING mode you have manual control over roll until you reach the LIM_ROLL_CD roll limit, at which point the plane won't roll over any more. The same applies to pitch - you have manual pitch control until you reach LIM_PITCH_MIN or LIM_PITCH_MAX, at which point the plane won't pitch beyond those limits. This means that as long as you stay within the configured limits you are flying the plane manually, and you can quickly learn to fly an R/C plane manually, knowing that the APM will prevent the plane from going upside down. I'll do a separate blog post about how we are using TRAINING mode to teach new pilots good R/C manual piloting skills.

Another significant change in mode behaviour is that CIRCLE mode now holds altitude. This is important because CIRCLE is used in the first stage of failsafe conditions, and if your plane is badly trimmed it could lose quite a lot of altitude before the RTL stage of failsafe kicks in. Note that this doesn't mean that CIRCLE is now the same as LOITER - in a LOITER the plane will adjust its roll to keep going around the target position, whereas in CIRCLE the position of the plane isn't considered - it just holds a small roll angle, which results in a large circle that drifts with the wind. This is deliberate as we want CIRCLE to not be dependent on the GPS, and to involve no sharp turns.

The other change that is probably worth expanding on is the ability to mount the APM in many possible orientations. This has been an open request for a long time as for certain types of airframes it is very useful. Just set the AHRS_ORIENTATION parameter to one of the supported orientations and your APM will quite happily work upside down or sideways.

I'm expecting it won't be 2 months till the next release, as I have a bunch of other changes pending that I held off for this release (for example, the AP_Mission code from Brandon, and the new AP_Scheduler code), but meanwhile I'm very happy with how this release is flying, and I hope you all will be too!

Happy flying!

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

Join diydrones

Email me when people reply –


  • 100KM

    I have made a new tlog and mission file for the autolaunch problem where the flying wing dives instead of climbing.  There should be 2 failed autolaunches at the beginning.  Climb angle set to 8°.

    Afterwards I let the plane circle a bit in guided mode, I upload a new mission with autoland, switch to auto and the plane lands itself.  So successfull test of uploading a new mission in flight.

    But I'd really like to get to the bottom of this diving problem.  


    2013-02-24 17-27-27.tlog

    2013-02-24 17-27-27.rlog
  • Tridge, what happened to apm1.4(with atmega1280) firmware updates? Recently I've flashed 2.70 from MP to it, but CLI says 2.65. Is it not supported anymore?

  • Thats great news. I need to make a new purchase. SHould it be an APM 2.5 or PX4 ? 

    Need the best reliability and hopefully be future proof ( for at least a few months ) 

  • None of the tabs in CLI are responsive. 

  • log download does not work anymore

  • Hi my APM 2.5 is now failing to boot on 2.70? Was working fine on 2.68 but now it doesn't work with either one! Nothing has changed except the firmware on APM and the new MP updates. LED C remains solid the whole time. It connects to MP but doesn't boot up or initialize. The console just keeps saying

    PANIC: Failed to boot MPU6000 5 times

    INFO Ardupilotmega.MAVLink.Utilities.Speech - TTS: say WARNING No Data for x Seconds

  • 100KM

    Hi Tridge,  I run into a strange issue with autostart : it runs my plane into the ground if a start pitch angle is given in missionplanner.  

    It's a mscomposite swift II flying wing with arduplane 2.68.  It performs fine otherwise, just autostart won't do it for me.

    If I input a pitch angle (eg 10°) then the plane dives in what looks like a 10° dive when I throw it.  If I put in 0 pitch angle, then it just keeps flying more or less level (plane flys level at about 5° pitch) at the height I threw it.  

    I made a misson with 2 waypoints, 1st is takeoff to 35m alt, second is loiter at 40m.  I can clearly see the plane pitch down when I put 7, 10 or 12° of pitch and it goes into the ground after a few meters.  It's not a bad throw or anything.  I have 100% going into the ground with autolauch when a pitch angle is given and at most 5% launchfailures on manual launch.

    I though it might be a sign issue, but found no such obvious error in the code.  Could you perhaps have a look and work your magic to see if it's some wrong setting from me or a bug?

    I have a Tlog file in attachement.  The autolaunch is at 95-105 on the x-axis.  Successful manual launch after that.  Don't mind the crazyness that follows, was just putting the plane in guided and trying to control it with joystick.

    Thx !

    2013-02-16 18-13-31.tlog

  • Hi guys,

    Anyone got problem downloading logs?

    I can see that there are logs in my APM through the terminal but when i click Log download it says no logs.

    Attached are the screenshots.




  • Developer

    I have now released ArduPlane 2.70

    Thanks to everyone for their patience in reporting the bugs in 2.69!

  • I am haveing an issue. I just set everything up and everything works except stablized mode. Mission planner indicates stablized but the surfaces do not move. I switch to FBW and the surface compensate for the motion of the plane. I switch back to stablized and it works. I switch to manual and then to stablized and it doesn't work again. What am I missing?
This reply was deleted.


DIY Robocars via Twitter
Sep 9
DIY Robocars via Twitter
RT @chr1sa: We've got another virtual @DIYRobocars race tomorrow at 9:00am PT. Two dozen autonomous cars will compete, four at a time. Ther…
Sep 4
DIY Robocars via Twitter
Sep 1
DIY Robocars via Twitter
Aug 31
DIY Robocars via Twitter
Aug 31
sam liked Jimmy Oliver's profile
Aug 25
DIY Robocars via Twitter
RT @ExplorerRobocar: Sometimes, I am really a big kid!! Having fun with my virtual RC car on the @diyrobocars track 😜😉, by using the « AR R…
Aug 24
DIY Robocars via Twitter
RT @grepLeigh: @donkey_car @unity3d @TensorFlow ~1050 episodes into training, my agent learned to erratically drive in the left lane. 🤖😆 ht…
Aug 24
DIY Robocars via Twitter
RT @EclipseCyclone: Sweet! high performance #ROS 2 @unity3d #CycloneDDS bridge for @AutowareFdn @SVLSimulator now…
Aug 24
DIY Robocars via Twitter
RT @a1k0n: My car had a lot of trouble getting around the track at the last @diyrobocars event -- only one actual finished lap during the r…
Aug 24
DIY Robocars via Twitter
RT @SmallpixelCar: This is the run time map
Aug 24
DIY Robocars via Twitter
RT @SmallpixelCar: Made a lot progress on Warm Spring Raceways track. Almost finished one lap.
Aug 24
DIY Robocars via Twitter
RT @AntonioRobotics: Super fun time seeing these autonomous cars race at @circuitlaunch for the @diyrobocars quarterly meet up! The demolit…
Aug 15
DIY Robocars via Twitter
RT @a1k0n: I thought my dumb localization code was still working at the new @circuitlaunch track, but it was just *barely* working. I shoul…
Aug 14
DIY Robocars via Twitter
RT @DAVGtech: Recording of entire in person @diyrobocars race today @circuitlaunch. Fast forward a couple hours to go straight to the racin…
Aug 14
DIY Robocars via Twitter
RT @SmallpixelCar: This is the run time map. Very noisy Lidar signal
Aug 14