Table of Contents

Firmware Module Mixing

DJI firmware contains multiple modules for different functions. For example one for the camera, one for the ESCs, one for the flight controller and so on. The important one is the flight controller module(s) because the modified parameters are stored and used within this part of firmware. These are modules 305 and 306. For the Noflyzone it is module 905. The mixing of the Firmware seems not possible anymore with Firmware V01.04.0400 and higher. It will lead to Error 200 which will prevent take-off. Stick to V01.04.0300 as bin file to delete the modules from. For downgrading a Mavic Pro to 1.03.0700, it requires the internal SD Card to be installed, which is not the case for newer versions of the Mavic. As a rule of thumb, one can say, that if your Mavic was delivered with a Version newer than 1.03.0700 (e.g. 1.03.1000), no internal SD Card is installed. This can only be fixed by a harware modification

DJI have made changes that prevent parameter changes in some of their recent firmware. To get all benefits from more recent firmware, without the downside of losing parameter changes, you will need to delete modules from recent firmware.

The last tweakable firmware versions that allows all parameter changes are:

ModelVersion
Spark1.00.0300
Mavic1.03.0700
Phantom 41.02.0503
Phantom 4 Pro1.03.0509
Inspire 21.00.0330

So. What is it we want to do here? If you are upgrading beyond the firmware versions listed above, you will need to remove module 305 and 306 from your firmware file before flashing. You can read about the different module components here.

Step by step

The basic idea is to remove modules 305 and 306 from your target firmware file before flashing, in order to prevent those modules from being upgraded to a higher version that doesn't allow all parameter changing. You can read about the different module components here.

NOTE: You can't mix firmware module versions into the same .bin You must downgrade, then upgrade.

1. Get two firmware files

2. Install 7-zip

3. Remove FC to make custom firmware

  1. Open 7zip
  2. Navigate to your firmware file you want to mod, open it within 7-Zip

  1. Select the “305” and “306” modules and delete them

  1. Close 7zip, this will save the firmware file
  2. Rename your firmware file to indicate no flight controller modules (so you dont get confused)

4. Install tweakable version

Start by installing a tweakable firmware file on your aircraft using Dumldore (windows) or dumlflasher (win/Mac), then simply flash like normal. If you are jumping from the latest firmare version (say 1.04.0300) down to 1.03.0700, the update may stop at 82%. If that happens, give it time. It should then jump to 100%. If that happens, you will need to flash a second time to finish the rest of the update.

Note: More recent versions of firmware (Mavic 1.04.0000+) will require you run a step to defeat the anti-rollback tech DJI implemented. You can use dumldore v2, v3 or the dumlracer tool (Windows and Mac). This applies to Inspire 2, Phantom 4 and Phantom 4 Pro as well. This step may require you to change your network settings according to this screenshot:

CAUTION - when flashing with modded .bin files and monitoring progress with Assistant, you may get a firmware failed message. Be patient. It didn't fail, only the module you deleted did, since the flash procedure expects that module to be present in the firmware. Its on the bird already, so that module gets skipped, keeping the older module. Let it do it's thing and be patient.

5. Install custom firmware file

Install your custom firmware file on your aircraft using Dumldore (windows) or dumlflasher (win/Mac), then simply flash like normal.

Note: Even though you have removed modules from the more recent firmware, Dji GO and Assistant will show the new firmware version. To make use of the new flight modes, you will also need to use the latest GO app.

6. Modify parameters

Now you can mod the parameters you want to change with Assistant, or use nolimitdronez.com

7. Example

I want 1.04.0000 firmware on my Mavic but still want to modify all parameters.