Home Firmware upgrade

Free tool · ArduPlane and ArduCopter 4.5, 4.6 and 4.7

ArduPilot firmware upgrade assistant

Upload your .param and choose the version you are upgrading to: it tells you which parameters are renamed (with the value converted when units change), which are removed and which change meaning, and gives you the converted .param.

Examples of ArduPlane parameters renamed from 4.6.3 to 4.7.2

The file is read in your browser and is not uploaded.

What it checks

Renamed

Parameters renamed between versions, such as RTL_ALT → RTL_ALT_M in ArduCopter 4.7, with the value converted when units change from centimetres to metres or centidegrees to degrees.

ARMING_CHECK

In 4.7 it becomes ARMING_SKIPCHK with inverted logic (bits of checks that are skipped). It is converted just as ArduPilot does on boot.

Removed

Parameters in your file that do not exist in the target version and are removed from the converted .param.

Change meaning

Same name, but with different units, a different list of values or bits, or with your value outside the new range.

Guide: upgrading ArduPilot without losing your configuration

How to upgrade ArduPilot without losing your configuration

  1. Save a copy of the current parameters in Mission Planner or QGroundControl before touching anything.
  2. Read the ArduPilot release notes: they explain behaviour changes, not just name changes.
  3. Update the firmware with the parameters on the flight controller: on boot, ArduPilot converts old parameters to new ones.
  4. If you will load a saved .param (from a backup or another aircraft), convert it first with this assistant so names and units match the new version.
  5. Check and test: run the result through the .param analyzer, make sure no PreArm warnings remain and do the ground tests.

What changes in ArduPilot 4.7

Version 4.7 renames many parameters so the name states their units, and several move from centimetres to metres or from centidegrees to degrees. In ArduCopter, for example, RTL_ALT (cm) becomes RTL_ALT_M (m), LAND_SPEED (cm/s) becomes LAND_SPD_MS (m/s) and ANGLE_MAX (cdeg) becomes ATC_ANGLE_MAX (degrees). In QuadPlane the VTOL position controller parameters (Q_P_…) change too. If you load an old .param without converting it, those values are not applied and the aircraft flies with default values.

ARMING_CHECK and ARMING_SKIPCHK

In 4.7, ARMING_CHECK (the enabled arming checks) is replaced by ARMING_SKIPCHK (the skipped ones). The logic is inverted: 0 in ARMING_SKIPCHK means none are skipped. The assistant converts the value just as ArduPilot itself does on boot.

Before flying the new version you can test your configuration in the ArduPilot SITL simulator.

Other free tools

Questions

Do I need to convert parameters when upgrading?

If you update the firmware with the parameters already on the flight controller, ArduPilot converts the old ones on boot. This assistant is for saved .param files you will load on the new version, for example from another aircraft or a backup.

Where do the changes come from?

From the official parameter documentation of each version (ArduPlane and ArduCopter 4.5.7, 4.6.3 and 4.7.2). A rename is detected when a parameter disappears and another with the same descriptive name appears; if there is doubt, it is flagged for checking.

Can I jump from 4.5 to 4.7?

Yes: the assistant applies the changes step by step (4.5 → 4.6 → 4.7). Still, read the release notes of each ArduPilot version before flying.

What do I do next?

Check the converted .param in the .param analyzer, load it on the flight controller, make sure no PreArm warnings remain and do the ground tests. If you can, fly it first in simulation (SITL).

What happens if I load an old .param on 4.7?

Parameters with old names do not exist in the new version and are ignored: the aircraft keeps the default values for those settings (RTL altitude, speeds, angles…). Convert it first.

Arm, transition, land. And let Captain Pitot tell you how to improve.