User Tools

Site Tools

Translations of this page:

howto:modp3params

This is an old revision of the document!


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
 

This will recompile the modified firmware module, which will allow it to be installed onto the aircraft. You can now update the aircraft with this firmware file.

To install on the aircraft:

1. Rename the modified file P3X_FW_V01.07.0060_m0306.bin

  p3 = PMCAPPFw3.bin 
  I1 = INMCAPPFw1.bin

2. Copy the file to your SD card. Put SD card into the aircraft. 3. Power on the aircraft. Update will start in about 30 seconds. You will hear a distinct noise during the update process, which will change when done. It should take 3-5 minutes.

If the update does not start, please turn off aircraft. Press and hold the bind button, and turn back on. Hold this button for 20-30 seconds and the update will start and will make a beeping noise, then you can let go and let the update finish. 4. When update is done, power off the aicraft. Remove the SD card from the camera and back into the computer 5. Remove/ Delete the “PMCAPPFw3.bin_updated” or “INMCAPPFw1.bin_updated” file from the SD card Note: If the file is “PMCAPPFw3.bin_damaged” or “INMCAPPFw1.bin_damaged” the update did not complete, retry it. 6. Put Sd card back in the camera All done! On your next startup, the modifications will persist on the aircraft. They will remain until you reflash the stock firmware. Note: If your firmware is version 01.04 or earlier, you may need to rename the file MCAPPFw.bin instead. ==== 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_0|Removes height limit| ^ control.horiz_vel_atti_range_0|GPS Tilt angle makes faster| ^ control.atti_range_0|ATTI Max tilt angle| ^ control.atti_limit_0 | ATTI tilt angle| ^ control.vert_up_vel_0|Ascent Velocity Rate (Up)| ^ control.vert_down_vel_0|Descent 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_0|Disable 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_0|No landing at 65k feet from HP| ^ voltage.level_1_protect_type_0|Battery level 1 function (warn, led)| ^ voltage.level_2_protect_type_0|Battery level 1 function (warn, led, land)| ^ voltage2.level_1_voltage_0|Battery level 1 %| ^ voltage2.level_1_function_0|Battery level 1 function (warn, land)| ^ voltage2.level_2_voltage_0|Battery level 2 %| ^ voltage2.level_2_function_0|Battery level 1 function (warn, land)| ^ voltage2.user_set_smart_bat_0|Battery type (DJI vs non-DJI)| ^ voltage2.level2_smart_battert_land_0|SmartRTH 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.1563751241.txt.gz · Last modified: 2019/07/21 23:20 by digdat0