Skip to main content

Firmware Upgrade

Service

/dji/firmware/upgrade/start

info

This service might take a few seconds before returning. This is because it will automatically turn the aircraft on before calling ota_create to improve the chance of success of the firmware task.

DescriptionStart remote upgrade task. Returns as soon as the DJI Dock acknowledge the upgrade request.
RequestUpgradeStart
ResponseNone
DJI BindingsService ota_create

/dji/firmware/upgrade/start/advanced

DescriptionStart remote upgrade task with full control and direct call to DJI Cloud API (e.g. no aircraft autostart).
Request[]UpgradeStartAdvanced
ResponseNone
DJI BindingsService ota_create

/dji/firmware/dock/getSupportedVersion

DescriptionReturn the DJI Dock firmware version supported by the running Robotics Agent.
RequestNone
Responsestring
DJI BindingsN/A

/dji/firmware/aircraft/getSupportedVersion

DescriptionReturn the DJI Aircraft firmware version supported by the running Robotics Agent.
RequestNone
Responsestring
DJI BindingsN/A

Telemetry

/dji/firmware/upgrade/progress

DescriptionProgress update on firmware upgrade task
PushEvery ~2s when upgrading
TypeUpgradeProgress
DJI BindingsEvent ota_progress

/dji/firmware/dock/version

DescriptionFirmware version currently installed on DJI Dock.
PushEvery 2s after DJI Dock rebooted
Typestring
DJI BindingsDock property firmware_version

/dji/firmware/dock/isSupported

DescriptionTrue id DJI Dock firmware version is supported by the connected Robotics Agent. Please upgrade if false.
PushEvery 2s after DJI Dock rebooted
Typebool
DJI BindingsDock property firmware_version

/dji/firmware/dock/isConsistent

DescriptionTrue if all DJI Dock module firmware version are compatible. Please upgrade if false.
PushEvery 2s after DJI Dock rebooted
Typebool
DJI BindingsDock property compatible_status

/dji/firmware/dock/isInstalling

warning

Tests have shown that DJI does not publish this telemetry consistently across all Dock models and firmware versions. We recommend using the /dji/system/dockState/desc == "firmware upgrading" instead.

DescriptionTrue if a new firmware is currently being installed on DJI Dock.
PushEvery 2s after DJI Dock started upgrading
Typebool
DJI BindingsDock property firmware_upgrade_status

/dji/firmware/dock/wpmz

DescriptionDock's Wayline Mission Library (WPMZ) version.
PushUnknown (documented but not published by DJI)
Typestring
DJI BindingsDock property wpmz_version

/dji/firmware/aircraft/version

DescriptionFirmware version currently installed on DJI Aircraft.
PushEvery 2s after DJI Aircraft rebooted
Typestring
DJI BindingsAircraft property firmware_version

/dji/firmware/aircraft/isSupported

DescriptionTrue id DJI Aircraft firmware version is supported by the connected Robotics Agent. Please upgrade if false.
PushEvery 2s after DJI Aircraft rebooted
Typebool
DJI BindingsAircraft property firmware_version

/dji/firmware/aircraft/isConsistent

DescriptionTrue if all DJI Aircraft module firmware version are compatible. Please upgrade if false.
PushEvery 2s after DJI Aircraft rebooted
Typebool
DJI BindingsAircraft property compatible_status

/dji/firmware/aircraft/isInstalling

warning

Tests have shown that DJI does not publish this telemetry consistently across all Dock models and firmware versions. We recommend using the /dji/system/dockState/desc == "firmware upgrading" instead.

DescriptionTrue if a new firmware is currently being installed on DJI Aircraft.
PushEvery 2s after DJI Aircraft started upgrading
Typebool
DJI BindingsAircraft property firmware_upgrade_status

/dji/firmware/aircraft/wpmz

DescriptionAircraft's Wayline Mission Library (WPMZ) version.
PushUnknown (documented but not published by DJI)
Typestring
DJI BindingsAircraft property wpmz_version

Schemas

UpgradeStart

KeyTypeDescription
dockstringVersion to install on Dock (e.g. 10.01.3205, stable). To install supported version use stable. Remove dock if upgrading Aircraft only.
aircraftstringVersion to install on Aircraft (e.g. 10.01.3205, stable). To install supported version use stable. Remove aircraft if upgrading Dock only.
allowBetaboolSet to true to allow beta firmware install. Can remove allowBeta otherwise.

Sample

{
"dock": "stable",
"aircraft": "99.99.9930",
"allowBeta": true
}

UpgradeStartAdvanced

KeyTypeDescription
snstringSerial number of the DJI device (i.e. Dock or Aircraft) to upgrade.
versionstringFirmware version to be installed.
consistencyboolSet to true to do a consistency upgrade. Set to false for a normal (i.e. full) upgrade.
fileFirmwareFileFirmware file to download & install.

Sample

{
"sn": "15AKL7HVUJ98UJH8",
"version": "13.00.0702",
"consistency": false,
"file": {
"url": "https://dock-storage-us.dronedeploy.com/dji-dock-firmware/m3d/13.00.0702.zip",
"md5": "8cd946f0c8c720dbe4a913e8059b58e0",
"size": 415689300,
"name": "some-arbitraty-filename.zip"
}
}

FirmwareFile

KeyTypeDescription
urlstringDownload URL to get the firmware file from.
md5stringMD5 checksum of the firmware file.
sizenumberSize of the firmware file in Bytes.
namestringName of the file as downloaded on DJI Dock local storage. Tests seems to indicates the Dock will not re-download a file with the same name twice.

Sample

{
"url": "https://terra-1-g.djicdn.com/cbcd35598c6a46819472eb8801a4c29e/Offline%20firmware/EA220/14.1/M3D_V13.00.07.02_pro.zip",
"md5": "8cd946f0c8c720dbe4a913e8059b58e0",
"size": 415689300,
"name": "some-arbitrary-filename.zip"
}

UpgradeProgress

KeyTypeDescription
errorUpgradeErrorError of the upgrade task.
statusstringStatus of the upgrade process. Possible value are "unknown", "sent", "progress", "success", "paused", "rejected", "failed", "canceled" or "timeout".
percentagenumberPercentage of the firmware upgrade task total progress (i.e. status is "success" when this equals 100).
stepstringActive step of the upgrade task. Should be download at first and install after.
ratenumberDownload rate during download step. Zero otherwise.

Sample

{
"status": "failed",
"step": "install",
"percentage": 23,
"error": {
"code": 312001,
"message": "failed to update firmware; internal error"
}
}

UpgradeError

KeyTypeDescription
codenumberResult code returned by DJI Cloud API. 0 means no error.
messagestringDescription of the error code.

Sample

{
"code": 312001,
"message": "failed to update firmware; internal error"
}