APM:Plane 3.5.0 released

The ArduPilot development team is proud to announce the release of the 3.5.0 version of APM:Plane. There have only been a few small changes since the 3.5.0beta1 release 3 weeks ago.

The key changes since 3.5.0beta1 are:

addition of better camera trigger logging
fixes to override handling (for users of the OVERRIDE_CHAN) parameter
fixed a pulse glitch on startup on PX4

See the full notes below for details on the camera trigger changes.

For completeness, here are the full release notes. Note that this is mostly the same as the 3.5.0beta1 release notes, with a few small changes noted above.

The biggest changes in this release are:

switch to new EKF2 kalman filter for attitude and position estimation
added support for parachutes
added support for QuadPlanes
support for 4 new flight boards, the QualComm Flight, the BHAT, the PXFmini and the Pixracer
support for arming on moving platforms
support for better camera trigger logging

[color=#0000FF]New Kalman Filter[/color]

The 3.4 release series was the first where APM:Plane used a Kalman Filter by default for attitude and position estimation. It works very well, but Paul Riseborough has been working hard recently on a new EKF variant which fixes many issues seen with the old estimator. The key improvements are:

support for separate filters on each IMU for multi-IMU boards (such as the Pixhawk), giving a high degree of redundancy
much better handling of gyro drift estimation, especially on startup
much faster recovery from attitude estimation errors

After extensive testing of the new EKF code we decided to make it the default for this release. You can still use the old EKF if you want to by setting AHRS_EKF_TYPE to 1, although it is recommended that the new EKF be used for all aircraft.

[color=#0000FF]Parachute Support[/color]

This is the first release with support for parachute landings on plane. The configuration and use of a parachute is the same as the existing copter parachute support. See copter.ardupilot.com/wiki/parachute/

Note that parachute support is considered experimental in planes.

[color=#0000FF]QuadPlane Support[/color]

This release includes support for hybrid plane/multi-rotors called QuadPlanes. More details are available in this blog post: diydrones.com/profiles/blogs/qua … m-plane-….

[color=#0000FF]Support for 4 new Flight Boards[/color]

The porting of ArduPilot to more flight boards continues, with support for 4 new flight boards in this release. They are:

the BHAT board
the PXFmini
the Qualcomm Flight
the Pixracer (the first of the FMUv4 series of boards in the Pixhawk line)

More information about the list of supported boards is available here: dev.ardupilot.com/wiki/supported … er-boards/

I think the Pixracer is a particularly interesting board as it is so small, and will allow for some very small planes to fitted with an ArduPilot based Autopilot. It is really aimed at racing quads, but works well on small planes as well as long as you don’t need more than 6 servos. Many thanks to AUAV for providing development Pixracer boards for testing.

[color=#0000FF]Startup on a moving platform[/color]

One of the benefits of the new EKF2 estimator is that it allows for rapid estimation of gyro offset without doing a gyro calibration on startup. This makes it possible to startup and arm on a moving platform by setting the INS_GYR_CAL parameter to zero (to disable gyro calibration on boot). This should be a big help when flying off boats.

[color=#0000FF]Improved Camera Trigger Logging[/color]

This release adds new CAM_FEEDBACK_PIN and CAM_FEEDBACK_POL parameters. These add support for separate CAM and TRIG log messages, where TRIG is logged when the camera is triggered and the CAM message is logged when an external pin indicates the camera has actually fired. This pin is typically based on the flash hotshoe of a camera and provides a way to log the exact time of camera triggering more accurately. Many thanks to Dario Andres and Jaime Machuca for their work on this feature.

[color=#0000FF]Lots more![/color]

That is just a taste of all of the improvements in this release. In total the release includes over 1500 patches. Some of the other more significant changes include:

RPM logging
new waf build system
new async accel calibrator
SITL support for quadplanes
improved land approach logic
better rangefinder power control
ADSB adapter support
dataflash over mavlink support
settable main loop rate
hideable parameters
improved crash detection logic
added optional smooth speed weighting for landing
improved logging for dual-GPS setups
improvements to multiple RTK GPS drivers
numerous HAL_Linux improvements
improved logging of CAM messages
added support for IMU heaters in HAL_Linux
support for RCInput over UDP in HAL_Linux
improved EKF startup checks for GPS accuracy
added raw IMU logging for all platforms
added BRD_CAN_ENABLE parameter
support FlightGear visualisation in SITL
configurable RGB LED brightness
improvements to the OVERRIDE_CHAN handling, fixing a race condition
added OVERRIDE_SAFETY parameter

Many thanks to everyone who contributed to this release! The development team is growing at a fast pace, with 57 people contributing changes over this release cycle.

I’d like to make special mention of Tom Pittenger and Michael du Breuil who have been doing extensive testing of the plane development code, and also contributing a great deal of their own improvements. Thanks!

Thanks for the awesome work!

This update definitely fixed my bad gyro errors that were brought about by the previous version EKF which is great news.

The bad news is for me the compass is pointing the wrong way completely. I have redone the ACC calibration as well as the compass calibration many times and both give successful messages each time. After this my compass will point 90 degrees off north or sometimes 45 degrees or sometimes it will change headings as I roll the plane. It varies each time I calibrate the compass. I have a pixhawk with dual compass setup. Before the update the compasses worked fine and pointed the right direction. When I look at the offsets vs the old parameter (APM Plane 3.4) they are very similar for both compasses. Any ideas?

Which compass calibration are you running? The one under “Onboard Mag Calibration” is the best to choose. Please attach a dataflash log file if you try that and still have issues.
I presume your AHRS_ORIENT and COMPASS_ORIENT are correct? I guess they were fine in 3.4 and you didn’t change them in the upgrade to 3.5.
Thanks, Grant.

Today PIXHAWK upgrade to 3.5.0 plane, according to copter.ardupilot.com/wiki/parachute, test the function of the parachute, but in mission planning, CH7 OPT no choice, how to use a parachute function?

Think I’ve sorted it. Bad compass orientation on the external compass.

[quote=“gmorph”]Which compass calibration are you running? The one under “Onboard Mag Calibration” is the best to choose. Please attach a dataflash log file if you try that and still have issues.
I presume your AHRS_ORIENT and COMPASS_ORIENT are correct? I guess they were fine in 3.4 and you didn’t change them in the upgrade to 3.5.
Thanks, Grant.[/quote]

Hi Grant,

I’m not quite sure how “Onboard Mag Calibration” works. There’s no documentation. When I select that method in Mission Planner, the Accept button goes from gray to active, but nothing happens when I click Accept. My compass is working fine with Live Calibration, but I’d like to try the new calibration method since I often have compass issues. I’ll be glad to forward any info to hamishwillee.

Yes the user interface in MP for this needs a little work I think. Basically the onboard mag calibration is a piece of software run within ArduPilot on the pixhawk itself. In otherwords the GCS doesn’t really do anything in this mode other then provide status updates coming back from the pixhawk. Its a better way to do the compass calibration and is also GCS agnostic. If the tone’s sound correctly from the pixhawk after calibration your all good to go.
I’ll let Hamish know your prepared to help out documenting this - that would be great!
Thanks, Grant.

Hi bchristal

Would love your help on documentation for that feature (I’d have done it myself if I could find information about it!) The material would probably live under this section of the calibration docs: http://planner.ardupilot.com/wiki/common-compass-setup-advanced/#quick_configuration

Essentially we need to confirm that the setup before pressing the start button is the same as for normal calibration. Then what happens when you start (what UI prompts, if any), what you do in response (e.g. how you move the vehicle), what happens when the calibration is finished.

Gmorph, would also be good to know if there is any difference in the “quality” of the calibration, or time it takes, or anything else that would help a user decide one way or the other.

If you want to take this offline, I’m contactable on hamishwillee at gmail dot com.


I have problems calibrating compass with pixhawk. FC and GPS/compass is pointing forward. But I get error compass variance.
I read in the manual
Compasses should always be enabled for Copter/Rover, but may be disabled (not recommended) for Plane.

Should I enable compass for my plane?

I tried to use onboard mag calibration and different tones occur but it never stop sounding. when I push the accept button nothing happens. How should the tones sound? When is it ready.