DJI firmware updates involve complex synchronization across multiple internal components, including the OcuSync/O3/O4 transmission system, the flight controller, the vision sensors, and the intelligent battery. When a DJI update gets stuck—whether using the DJI Fly app, DJI GO 4, or DJI Assistant 2—the failure typically stems from an interrupted component handshake, local thermal throttling, or mismatched firmware between the aircraft and the remote controller.
Quick Fix
Provide active cooling with a desk fan, verify that all batteries (drone and remote) are above 75%, remove the gimbal clamp, and switch from the mobile app to the official desktop version of DJI Assistant 2 using a direct USB-C connection to your computer.
DJI Firmware Architecture: Why Updates Stall
DJI updates are composite packages containing discrete firmware blocks for multiple independent components:
- Flight Core: The primary IMU, barometer, and navigation flight controller.
- SDR Transmission Core: The radio transceiver handling control link and video feed.
- ESC Board: The individual motor speed controllers.
- Intelligent Flight Battery: The micro-controller inside the battery pack.
- Gimbal/Camera Subsystem: The motor drivers and image processing unit.
During an update, these systems do not update at once. They update sequentially. If the camera completes its update but the ESC module fails to acknowledge a ready command, the progress indicator stops.
Diagnostic Checklist: Identify Your Setup
Before taking corrective action, identify which path you are using:
Update Pathway
│
├── Mobile App (DJI Fly / DJI GO 4 via Wi-Fi/Bluetooth)
│ └── Vulnerabilities: Phone sleep mode, incoming calls, Wi-Fi drops.
│
├── Integrated Smart Controller (DJI RC, RC 2, RC Pro)
│ └── Vulnerabilities: Weak controller Wi-Fi, low internal storage.
│
└── Desktop Computer (DJI Assistant 2 via USB-C)
└── Vulnerabilities: Driver signature enforcement, USB hubs, third-party cables.
Troubleshooting Step-by-Step
Follow these targeted steps based on where and how the update is stalling.
1. Address Thermal Shutdowns (The Most Common Cause)
DJI drones feature high-performance processors designed to be cooled by the airflow from their own propellers. Sitting powered on a desk for 20 minutes while unpacking an update pushes internal temperatures toward thermal limits.
- Symptom: Update stalls between 55% and 75%, followed by the drone’s cooling fan turning off or whining loudly, and the progress freezing.
- Solution: Aim an electric desk fan directly at the belly and top shell of the drone. If the drone has already shut down from heat, leave it powered off for 15 minutes to cool completely, then restart the update under direct fan airflow.
2. Remove Hardware Obstacles
DJI aircraft run hardware self-tests when flashing gimbal and vision firmware modules.
- Remove the Gimbal Protector: If the plastic transport cover is locked in place, the gimbal motors cannot complete their calibration check during the update, causing the installer to hang waiting for sensor confirmation.
- Eject the MicroSD Card: Corrupted storage partitions on the camera’s microSD card can hang the firmware unpacker. Remove the card and let the system write directly to onboard memory.
- Fold Out the Aircraft Arms: On models like the Mavic or Mini series, keeping the arms folded traps heat and can block internal antennas from establishing a clean link with the controller.
3. Transition to Desktop Recovery (DJI Assistant 2)
When wireless updates fail repeatedly through the DJI Fly or DJI GO 4 app, switch to the official desktop utility.
- Download the specific version of DJI Assistant 2 required for your airframe (e.g., DJI Assistant 2 (Consumer Drones Series) or DJI Assistant 2 (Enterprise Series)) from DJI’s official website.
- Power on your computer and open DJI Assistant 2 as an Administrator.
- Power on your DJI drone and connect it directly to your PC’s USB port using an OEM data-rated USB-C cable (avoid keyboard ports or unpowered USB hubs).
- Select your connected aircraft model from the device list.
- Navigate to Firmware Update, locate your desired firmware build, and click Upgrade or Refresh.
- If the desktop software fails to detect the drone or drops the connection mid-flash, resolve USB and driver issues using DJI Assistant 2 Not Detecting or Connecting to Drone.
Handling Multi-Battery Firmware Synchronization
A common hidden issue with DJI platforms is the Battery Firmware Inconsistency prompt.
If your drone updates successfully with one battery, inserting a second, non-updated battery will cause the drone to enter an update-required state on the next boot, often freezing the app’s startup sequence.
When this occurs, leave the updated aircraft on, insert the alternate battery, connect to the DJI Fly app, and accept the “Inconsistent Firmware Found” slider prompt to update the battery module directly. For a detailed breakdown of multi-battery management, consult Battery Firmware Mismatch: Why Your Drone Rejects One Battery but Not Others.
DJI Diagnostic Reference Table
| Symptom / Hang Point | Root Cause | Immediate Action |
|---|---|---|
| Stuck at 0%–15% | App cannot download package or verify storage. | Clear DJI Fly app cache; free up 4 GB of device memory. |
| Stuck at 50%–70% | Main core thermal pause or ESC flashing timeout. | Add desk fan cooling; wait 20 minutes before intervening. |
| Stuck at 99% | Remote controller waiting for aircraft reboot handshake. | Power-cycle the remote controller; leave the drone alone. |
| Rapid Beeping During Stall | Normal ESC/core flashing diagnostic sound. | Do not turn off power. Allow up to 15 minutes to clear. |
When to Stop Troubleshooting
Turn off the unit and escalate to professional repair if:
- The status indicator stays solid red on boot, the cooling fan does not spin, and DJI Assistant 2 displays “Device Disconnected” or an unrecoverable hardware communication error.
- The aircraft enters an endless restart loop where the startup chime plays repeatedly every few seconds without completing initialization. In this scenario, follow DJI Drone Not Starting After Firmware Update (Boot Loop Fix).