Skip to content

DJI remote logs

When something goes wrong on a dock or aircraft — a failed flight, an HMS warning chain, a stuck cover — DJI’s diagnostic logs are the only way to tell what happened on-device. ARGUS triggers and collects those logs through Admin → DJI management → Debug → Remote logs.

Who can trigger a pull

Admin-only. The dock’s log files contain serial numbers, wireless scan data, and firmware diagnostics — treat them as sensitive.

Step 1 — Refresh file list

  1. Pick the dock in Admin → DJI → Docks.
  2. Open the Debug tab.
  3. Under Remote logs, confirm at least one module chip is ticked (see below).
  4. Click Refresh file list.

ARGUS calls POST /api/dji/docks/{sn}/logs/list with the selected modules. argus-dji publishes the DJI fileupload_list service; the dock enumerates its on-disk log files per module and replies. argus-dji mirrors the reply into dji_docks/{sn}.remoteLog.fileList and the UI re-renders with a grid of files.

Module chips

The DJI Cloud API enumerates modules by numeric id, not by the string all (which several firmware revisions reject with a silent 400). ARGUS always sends individual modules:

ModuleIdContents
dock0Dock core logs — MQTT, state machine, cover motor, charging, weather sensors, eSIM / modem.
aircraft3Flight controller, IMU, compass, ESC, battery pack, gimbal, payload camera, FlightRecorder black-box.
rc4Remote controller logs (only populated when a physical RC has been paired to the aircraft).
psdk5Payload SDK — third-party attached devices (speaker, spotlight, custom sensors). Dock 3 / M3x.

Tick only the modules you need — each extra module adds ~30–90 s to the dock’s enumeration time and increases the upload size when you commit.

File grid

Each row in the returned grid shows:

  • A checkbox — pick the files to upload.
  • Module — one of dock / aircraft / rc / psdk.
  • File name — DJI’s internal log name (dated, with a module tag, .txt.gz typical).
  • Size — megabytes, one decimal.

Aircraft logs are by far the largest (flight recorder can be 50–300 MB per flight). Start small if you’re on a metered dock connection.

Step 2 — Upload selected

  1. Tick the checkboxes on the files you want.
  2. Click Upload selected (N) — the count reflects your picks.

ARGUS calls POST /api/dji/docks/{sn}/logs/upload with the grouped files, keyed by module. argus-dji publishes the DJI fileupload_start service with an S3 presigned URL per file; the dock uploads directly to S3 (not through ARGUS). Progress is mirrored into dji_docks/{sn}.remoteLog.progress and surfaced as a progress bar on the Debug tab.

While an upload runs, the Debug tab shows Upload: uploading and a Cancel button.

Cancel

Click Cancel at any point. ARGUS calls POST /api/dji/docks/{sn}/logs/cancel; argus-dji publishes fileupload_cancel. The dock stops mid-file and any S3 multipart uploads are aborted by the lifecycle rule.

What’s in each log module

  • dock — cover-motor state transitions, charging cycle timestamps, internal temperature and humidity, MQTT keepalive / reconnect, cellular modem events, eSIM provisioning, RTK calibration runs.
  • aircraft — FlightRecorder black-box (DJI’s compressed telemetry stream — same format DJI Support asks for), IMU / compass / GPS health diagnostics, ESC / motor temps, battery pack cycle counts and discharge curves, gimbal calibration, camera exposure logs.
  • rc — controller battery, stick calibration, lost-link events. Empty for docked-only aircraft.
  • psdk — third-party payload SDK traffic; only populated on docks with an attached speaker, spotlight, searchlight, or custom sensor.

Retention

Dock-side logs rotate by the dock’s local policy — roughly 14–30 days of aircraft logs and 7 days of dock logs before DJI’s rotation prunes them. Uploaded logs land in the org’s S3 bucket under dji-logs/{dockSn}/{yyyymmdd}/{module}/ and are retained for 90 days by lifecycle policy. Pull them into a ticket before the retention window closes.

Troubleshooting

  • Refresh returns empty. No logs in that module (e.g. rc on a dock with no RC paired). Try a different module.
  • Upload stalls at 0%. The dock can’t reach S3 — check the dock’s network on the physical screen, confirm egress is open.
  • Upload reaches 100% then failed. S3 rejected the put (usually a presigned-URL expiry during a very slow link). Re-pick the files and retry; the presigned URL is regenerated each attempt.
  • Firmware — when to pull logs after a failed upgrade.
  • Dock tile — HMS alert panel that often motivates a log pull.
  • Pairing — prerequisite.