User Tools

Site Tools

Translations of this page:

howto:modp3params

Phantom 3 and Inspire 1 Modification Overview

This guide explains how to modify Phantom 3 and Inspire 1 flight controller parameters running ANY firmware version.

NOTE: THIS IS FOR PRO USERS, YOU HAVE TO KNOW WHAT YOU ARE DOING! I'M NOT RESPONSIBLE FOR ANYTHING.

These instructions apply to any firmware version as of January 2018; the keys were found, we are good to go on all versions.

How to videos

The following how to video shows the process end to end. Watch this before doing any of this!

Toolset

Make sure to review this GitHub with more info: https://github.com/o-gs/dji-firmware-tools

  1. Download Python 3
  2. Download your Firmware of choice

Put the PY files and the firmware bin file in same folder, such as C:\P3

Install Python 3, reboot if required. Make sure to SET PATH for Python. If you don't know what this means, google it.

Detailed Usage instructions for the two Python Tools, dji_xv4_fwcon and dji_flyc_param_ed

Detailed Steps

1. Extract the flight controller Module

  • Put “dji_flyc_param_ed.py”, “ddji_xv4_fwcon.py” and “P3X_FW_V01.07.0060.bin” into one folder such as C:\p3
  • Open a command prompt on Windows
  Start->Run->cmd
  • Navigate to this folder C:\P3
  cd\p3
  PRESS ENTER
  • Type into cmd (Note: Replace “P3X_FW_V01.07.0060.bin” below with the fw version you are using.
  dji_xv4_fwcon.py -vv -x -p P3X_FW_V01.07.0060.bin
  PRESS ENTER
  • If you receive the following message:

ModuleNotFoundError: No module named 'Crypto'

  • That means there is a module missing in the Python 3.6.x installation.
  • If you do not get the error skip down to “The firmware will extract…” below.
  • To get the needed Module open a cmd prompt as administrator.
  1. (win 10) Take the cursor to the bottom left corner and right-click to open the WinX menu.
  2. Select “Command Prompt (Admin)” to open an elevated command prompt.
  3. Type into cmd
  python -m pip install pycryptodome
  PRESS ENTER
  • Wait for the process to finish download and installing pycryptodome module
  • Now repeat this step
  • Type into cmd
  dji_xv4_fwcon.py -vv -x -p P3X_FW_V01.07.0060.bin
  PRESS ENTER
  • The firmware will extract and various modules will show in that folder different modules. The important module is P3X_FW_V01.07.0060_m0306.bin
  • Type into cmd
  dji_flyc_param_ed.py -vv -x -m P3X_FW_V01.07.0060_m0306.bin
  PRESS ENTER

This will extract the firmware and the flight controller firmware module.

2. Edit the flight controller Module

  • Open the flyc_param_infos file in Notepad, Notepad++ or your favorite text editor
  • Locate the parameter you want to find, change the value noted in the table below.
 Example
 g_config.advanced_function.height_limit_enabled_0
 Change the MinValue and MaxValue = 2
  • Be careful to only edit the parameters you are familliar with!
  • Save the file

3. Recompile the 306 flight controller module

  • Type into cmd
 dji_flyc_param_ed.py -vv -u -m P3X_FW_V01.07.0060_m0306.bin
  • After this command runs, it will compile the parameters back into the P3X_FW_V01.07.0060_m0306.bin file.
  • Now, you need to rename the file before loading on the aircraft. Rename it to “PMCAPPFw3.bin”.
  • For Inspire1 rename it to “MCAPPFw.bin” for FW older or equal to 01.04.00.10, “INMCAPPFw1.bin” for FW 01.05→01.09 or “INMCAPPFw1.bin” for FW 01.10 → 01.11.01.50

4. Install the modded file on your Phantom

  • To install the file on your Phantom, copy the PMCAPPFw3.bin file to a formatted micro-SD card
  • Insert SD card into aircraft, power on. If the firmware update does not start, you can force it by holding the button on the side of the VPS.
  • The file will be flashed and the edited parameters will be applied.
  • The flashing progress takes about 5-10 minutes.
  • After flashing is complete the file on SD card “ PMCAPPFw3.bin ” will be automatically renamed to “ PMCAPPFw3_updated.bin”. Delete this fie, then fly your aircraft
  • NOTE: The changes work in the simulator as well, test there first!

Important Parameters

These are the important parameters you may want to modify to change the flight characteristics. These may change a tad from p3s to p3a to p3p to Inpsire. The proposed below are from p3a 1.7.

Important Parameter Descriptions

I removed the g_config from the prefix to make the table fit better :)

Parameter Name Description
advanced_function.height_limit_enabled_0Removes height limit
control.horiz_vel_atti_range_0GPS Tilt angle makes faster
control.atti_range_0ATTI Max tilt angle
control.atti_limit_0 ATTI tilt angle
control.vert_up_vel_0Ascent Velocity Rate (Up)
control.vert_down_vel_0Descent Velocity Rate (Down)
airport_limit_cfg.cfg_search_radius_0 NFZ search radius, lower is less enforcement
airport_limit_cfg.cfg_disable_airport_fly_limit_0Disable NFZ
airport_limit_cfg.cfg_limit_data_0 NFZ map data value
airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_SPECIAL]_0 NFZ Type 2 Removal (GeoZone)
flying_limit.auto_landing_enabled_0No landing at 65k feet from HP
voltage.level_1_protect_type_0Battery level 1 function (warn, led)
voltage.level_2_protect_type_0Battery level 1 function (warn, led, land)
voltage2.level_1_voltage_0Battery level 1 %
voltage2.level_1_function_0Battery level 1 function (warn, land)
voltage2.level_2_voltage_0Battery level 2 %
voltage2.level_2_function_0Battery level 1 function (warn, land)
voltage2.user_set_smart_bat_0Battery type (DJI vs non-DJI)
voltage2.level2_smart_battert_land_0SmartRTH battery landing %

Parameter Values to Change

I removed the g_config from the prefix to make the table fit better :)

Last edit: digdat0 11/06/2018. use the tilt and vert up/down as guidelines.

Height Limit Removal

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
advanced_function.height_limit_enabled_0 1 2 1 2 2 2
flying_limit.max_height_0 20 500 120 10000 10000 10000

GPS Mode Speed Change

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
control.horiz_vel_atti_range_0 10 60 23 30 60 30

ATTI Mode Speed Change

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
control.atti_limit_0 10 60 30 50 60 50
control.atti_range_0 10 60 30 50 60 50

Vertical Ascent/Descent

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
control.vert_up_vel_0 1 10 5 10 12 10
control.vert_down_vel_0 1 10 3 8 10 8

NoFlyZone Removal

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
airport_limit_cfg.cfg_disable_airport_fly_limit_0 0 255 0 1 1 1
airport_limit_cfg.cfg_limit_data_0 0 4294967295 20150910 20250910 20250910 20250910
airport_limit_cfg.cfg_search_radius_0 65535 50000 0 1 1 1
airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_SPECIAL]_0 0 1 0 1 1 1

Disable distance limit landing

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
flying_limit.auto_landing_enabled_0 0 1 0 1 1 1

Disable smart battery functions / auto landings at low battery and high altitude

Parameter Name Stock minValue Stock MaxValue Stock defaultValue New MinValue new Maxvalue New defaultValue
voltage.level_1_protect_type_0 0 1 0 0 0 0
voltage.level_2_protect_type_0 0 2 2 0 0 0
voltage2.level_1_voltage_0 10 100 30 0 0 0
voltage2.level_1_function_0 0 10 0 0 0 0
voltage2.level_2_voltage_0 10 100 10 0 0 0
voltage2.level_2_function_0 0 10 1 0 0 0
voltage2.user_set_smart_bat_0 0 10 2 0 0 0
voltage2.level2_smart_battert_land_0 0 100 10 0 0 0

All Parameters Lists

howto/modp3params.txt · Last modified: 2018/06/30 21:27 by vmiceli