APM:Plane 3.3.0 released


APM:Plane 3.3.0 released

The ardupilot development team is proud to announce the release of version 3.3.0 of APM:Plane. This is a major release with a lot of changes. Please read the release notes carefully!

The last stable release was 3 months ago, and since that time we have applied over 1200 changes to the code. It has been a period of very rapid development for ArduPilot. Explaining all of the changes that have been made would take far too long, so I've chosen some key changes to explain in detail, and listed the most important secondary changes in a short form. Please ask for details if there is a change you see listed that you want some more information on.

Arming Changes

This is the first release of APM:Plane where ARMING_CHECK and ARMING_REQUIRE both default to enabled. That means when you upgrade if you didn't previously have arming enabled you will need to learn about arming your plane.

Please see this page for more information on arming:

I know many users will be tempted to disable the arming checks, but please don't do that without careful thought. The arming checks are an important part of ensuring the aircraft is ready to fly, and a common cause of flight problems is to takeoff before ArduPilot is ready.

Re-do Accelerometer Calibration

Due to a change in the maximum accelerometer range on the Pixhawk all users must re-do their accelerometer calibration for this release. If you don't then your plane will fail to arm with a message saying that you have not calibrated the accelerometers.

Only 3D accel calibration

The old "1D" accelerometer calibration method has now been removed, so you must use the 3D accelerometer calibration method. The old method was removed because a significant number of users had poor flights due to scaling and offset errors on their accelerometers when they used the 1D method. My apologies for people with very large aircraft who find the 3D method difficult.

Note that you can do the accelerometer calibration with the autopilot outside the aircraft which can make things easier for large aircraft.


After an auto-landing the autopilot will now by default disarm after LAND_DISARMDELAY seconds (with a default of 20 seconds). This feature is to prevent the motor from spinning up unexpectedly on the ground
after a landing.

HIL_MODE parameter

It is now possible to configure your autopilot for hardware in the loop simulation without loading a special firmware. Just set the parameter HIL_MODE to 1 and this will enable HIL for any autopilot. This is designed to make it easier for users to try HIL without having to find a HIL firmware.

SITL on Windows

The SITL software in the loop simulation system has been completely rewritten for this release. A major change is to make it possible to run SITL on native windows without needing a Linux virtual machine. There should be a release of MissionPlanner for Windows soon which will make it easy to launch a SITL instance.

The SITL changes also include new backends, including the CRRCSim flight simulator. This gives us a much wider range of aircraft we can use for SITL. See for more information.

Throttle control on takeoff

A number of users had problems with pitch control on auto-takeoff, and with the aircraft exceeding its target speed during takeoff. The auto-takeoff code has now been changed to use the normal TECS throttle control which should solve this problem.

Rudder only support

There is a new RUDDER_ONLY parameter for aircraft without ailerons, where roll is controlled by the rudder. Please see the documentation for more information on flying with a rudder only aircraft: ... udder_only

APM1/APM2 Support

We have managed to keep support for the APM1 and APM2 in this release, but in order to fit it in the limited flash space we had to disable some more features when building for those boards. For this release the AP_Mount code for controlling camera mounts is disabled on APM1/APM2.

At some point soon it will become impractical to keep supporting the APM1/APM2 for planes. Please consider moving to a 32 bit autopilot soon if you are still using an APM1 or APM2.

New INS code

There have been a lot of changes to the gyro and accelerometer handling for this release. The accelerometer range on the Pixhawk has been changed to 16g from 8g to prevent clipping on high vibration aircraft, and the sampling rate on the lsm303d has been increased to 1600Hz.

An important bug has also been fixed which caused aliasing in the sampling process from the accelerometers. That bug could cause attitude errors in high vibration environments.

Numerous Landing Changes

Once again there have been a lot of improvements to the automatic landing support. Perhaps most important is the introduction of a smooth transition from landing approach to the flare, which reduces the tendency to pitch up too much on flare.

There is also a new parameter TECS_LAND_PMAX which controls the maximum pitch during landing. This defaults to 10 degrees, but for many aircraft a smaller value may be appropriate. Reduce it to 5 degrees if you find you still get too much pitch up during the flare.

Other secondary changes in this release include:

  • a new SerialManager library which gives much more flexible management of serial port assignment
  • changed the default FS_LONG_TIMEOUT to 5 seconds
  • raised default IMAX for roll/pitch to 3000
  • lowered default L1 navigation period to 20
  • new BRD_SBUS_OUT parameter to enable SBUS output on Pixhawk
  • large improvements to the internals of PX4Firmware/PX4NuttX for better performance
  • auto-formatting of microSD cards if they can't be mounted on boot (PX4/Pixhawk only)
  • a new PWM based driver for the PulsedLight Lidar to avoid issues with the I2C interface
  • fixed throttle forcing to zero when disarmed
  • only reset mission on disarm if not in AUTO mode
  • much better handling of steep landings
  • added smooth transition in landing flare
  • added HIL_MODE parameter for HIL without a special firmware
  • lowered default FS_LONG_TIMEOUT to 5 seconds
  • mark old ELEVON_MIXING mode as deprecated
  • fixed 50Hz MAVLink support
  • support DO_SET_HOME MAVLink command
  • fixed larger values of TKOFF_THR_DELAY
  • allow PulsedLight Lidar to be disabled at a given height
  • fixed bungee launch (long throttle delay)
  • fixed a bug handling entering AUTO mode before we have GPS lock
  • added CLI_ENABLED parameter
  • removed 1D accel calibration
  • added EKF_STATUS_REPORT MAVLink message
  • added INITIAL_MODE parameter
  • added TRIM_RC_AT_START parameter
  • added auto-disarm after landing (LAND_DISARMDELAY)
  • added LOCAL_POSITION_NED MAVLink message
  • avoid triggering a fence breach in final stage of landing
  • rebuild glide slope if we are above it and climbing
  • use TECS to control throttle on takeoff
  • added RUDDER_ONLY parameter to better support planes with no ailerons
  • updated Piksi RTK GPS driver
  • improved support for GPS data injection (for Piksi RTK GPS)
  • added NAV_LOITER_TO_ALT mission item
  • fixed landing approach without an airspeed sensor
  • support RTL_AUTOLAND=2 for landing without coming to home first
  • disabled camera mount support on APM1/APM2
  • added support for SToRM32 and Alexmos camera gimbals
  • added support for Jaimes mavlink enabled gimbal
  • improved EKF default tuning for planes
  • updated support for NavIO and NavIO+ boards
  • updated support for VRBrain boards
  • fixes for realtime threads on Linux
  • added simulated sensor lag for baro and mag in SITL
  • made it possible to build SITL for native Windows
  • switched to faster accel sampling on Pixhawk
  • added coning corrections on Pixhawk
  • set ARMING_CHECK to 1 by default
  • disable NMEA and SiRF GPS on APM1/APM2
  • support MPU9255 IMU on Linux
  • updates to BBBMINI port for Linux
  • added TECS_LAND_PMAX parameter
  • switched to synthetic clock in SITL
  • support CRRCSim FDM backend in SITL
  • new general purpose replay parsing code
  • switched to 16g accel range in Pixhawk
  • added FENCE_AUTOENABLE=2 for disabling just fence floor
  • added POS dataflash log message
  • changed GUIDED behaviour to match copter
  • added support for a 4th MAVLink channel
  • support setting AHRS_TRIM in preflight calibration
  • fixed a PX4 mixer out of range error

Many thanks to everyone who contributed to this release. We have a lot of new developers contributing which is really great to see! Also, apologies for those who have contributed a pull request but not yet had it incorporated (or had feedback on the change). We will be trying to get to as many PRs as we can soon.

Best wishes to all APM:Plane users from the dev team, and happy flying!

E-mail me when people leave their comments –

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

Join diydrones


  • Dear Tridge,

    I reverted my files to 'Arduplane-3.2.2' TAG to check my building environment. I could build the firmware without any problems. (so folder structure is the same, GIT is the same, etc. the only change is that I checked out the 3.2.2 TAG.)

    So could you please double check if there is something problem related to 'Arduplane-3.3.0' TAG in the repository? Or is there anything that would require something to be updated on my PC?

    Regards, Adrian

  • Developer

    Hi Adam.  I don't use OSX so I can't comment on that.

    For Windows (which I rarely use) as I posted previously I recommend uninstalling Mission Planner and then installing the latest version from:

    This ensures your running the latest USB windows drivers.  Make sure you reboot after installation - this is Windows after all - when in doubt - reboot.

    Now try to connect to your pixhawk.  If it doesn't work then try a different USB port on your windows machine and keep going until you have tried them all.

    If you can't connect to your pixhawk try to load a different firmware.  So for instance try to put Rover on it and then put Plane back on it.  This can resolve certain problems.  Note it WILL wipe your parameters so I assume you have a backup somewhere from previous flights.

    Let us know how you go.

    Thanks, Grant.

  • Ok, so I didn't know this page was available to look for the released fix to the Accel Calibration Issue.

    However, the problem I think I'm having with connecting is the Pixhawk.  I think the PH is failing to properly boot.  I have a solid RED LED upon powering it up.

    The ironic thing is that I was having this issue before and it randomly resolved itself when I powered it up after leaving it for a few hours.  The B/E and ACT lights are flashing on the IO side of the pixhawk.

    Thanks for all of the responses.

  • Hi Tom - I don't really understand the root cause of the problem, sorry. But that solution was the only one I found that worked. At least it enabled the Pixhawk to start functioning again. 

  • Developer

    @Phillip The problem was a USB driver issue, correct? If so, why did you roll back since the problem was not firmware related?

  • @Adam - Not sure if this will help, but I had problems connecting via USB after installing the 3.3.0 release. I posted the symptoms and the fix on page 9 of this thread. After the fix, I was able to connect via USB. At that point, I used MissionPlanner to roll back to a prior APM Plane release. 

  • I certainly dont want to sound unappreciative for the support ive received so far. However, ever since v3.3.0 was released my pixhawk has been rendered useless.

    Im using the Mac OS APM 2.0 and couldnt accel calibrate. It looks like that issue has been fixed but if an update isnt released a fix doesnt do much good.

    I bought a PC Laptop to run Mission Planner to see I could get my pixhawk up and running. When i try yo upload v3.3.0 from MP, it says its already on the board and doesnt need an update. Makes sense. Unfortunately, when i try to connect after that, it wont connect via mavlink.

    Tried using arduplane 3.2.3 but after i download the firmware it wont install because MP says there's no response from the board!

    Went back to Mac APM and reinstalled 3.3.0, because I cant find a way to install 3.2.3 via a Mac, and now when I try to connect via mavlink, the system says connected, disarmed, but none of the config options are available.

    Im literally lost on what to do at this point.

    Any thoughts or suggestions other than attempting to return the Pixhawk and try a lesser FC? I really like the functionality the PH offers but right now its a $300 piece of equipment I can't use and havent been able to since the V3.3.0 release.

    I apologize for sounding frustrated. Im new to all of this and to be grounded before I start without any solutions is frustrating.

    Thanks in advance.

  • Hello, I confirm that the equipment has confused us Drotek with the disorder firmware happened simultaneously our facilities.
    I can confirm that the GPS is faulty. I did some tests with one of my clients. Everything works fine with GPS 3DR.
    The confusion that we bought just bad GPS connected at the same time as the MP firmware disorder.

  • Hi, I have noticed that my problem was error
    Drotek of equipment. With their GPS I'm with many compass errors.
    I reinstalled with GPS 3DR and problems disappear.
    I bought a lot of equipment and Drotek I got back from my full dissatisfied customers.
    The arrogance of Jerome did not help matters. He said his equipment is impeccable. I tried again with the GPS Drotek and errors HEALT GPS BAD - BAD COMPASS HEALT-EKF CONST POS MOD returned.

    Is it possible that the firmware issue has caused the equipment failure as mentioned Drotek their company?

    Personally I think not.

  • @Tridge,

    thanks for you kind offer to analyze logs, but I don't have full log. Weather was so nice that I took an opportunity and flattened my battery set. Flight took ~30minutes so APM ran out of data flash size and overwritten the beginning of the flight. Anyways, I posted this to share my success story with latest Plane version and to show how auto takeoff works.

    Those 400ms I written in the video comes from very rough estimate judging on the sound. Actually I'm very happy with the results!

    The only question I still have is why APM limited throttle at 85%? I just reviewed params and I can see that following values are (were) set:

    TKOFF_THR_MAX = 100

    THR_MAX = 85

    Any ideas?

This reply was deleted.