====== DJI M100 and M600 Modification Overview ====== This guide explains how to modify DJI M100 and M600 DJI M100 and M600 flight controller parameters. This allows you to increase speed, remove limits and have control of your aircraft. ====== Toolset ====== Make sure to review this GitHub with more info: https://github.com/o-gs/dji-firmware-tools - Download [[https://github.com/o-gs/dji-firmware-tools/raw/master/dji_xv4_fwcon.py|dji_xv4_fwcon.py]] - Download [[https://github.com/o-gs/dji-firmware-tools/raw/master/dji_flyc_param_ed.py|dji_flyc_param_ed.py]] - Download [[https://www.python.org/downloads|Python 3]] - Download your [[https://github.com/cs2000/DankDroneDownloader|Firmware from DankDownloader]] Put the PY files and the firmware bin file in same folder, such as C:\M100 Install Python 3, reboot if required. Make sure to SET PATH for Python. If you don't know what this means, google it. ====== Detailed Steps ====== ==== 1. Extract the flight controller Module ==== * Put "dji_flyc_param_ed.py", "ddji_xv4_fwcon.py" and "M100_FW_V01.02.00.90.bin" into one folder such as C:\m100 * Open a command prompt on Windows Start->Run->cmd * Navigate to this folder C:\m100 cd\m100 PRESS ENTER * Type into cmd (Note: Replace "M100_FW_V01.02.00.90.bin" below with the fw version you are using. dji_xv4_fwcon.py -vv -x -p M100_FW_V01.02.00.90.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. - (win 10) Take the cursor to the bottom left corner and right-click to open the WinX menu. - Select "Command Prompt (Admin)" to open an elevated command prompt. - 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 M100_FW_V01.02.00.90.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 M100_FW_V01.02.00.90_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 familiar with! * Save the file ==== 3. Recompile the 306 flight controller module ==== * Type into cmd dji_flyc_param_ed.py -vv -u -m M100_FW_V01.02.00.90_m0306.bin * After this command runs, it will compile the parameters back into the M100_FW_V01.02.00.90_m0306.bin file. You can use either the M100_FW_V01.02.00.90_m0306.bin file or the M100_FW_V01.02.00.90_m0306.bin file to install on the aircraft.