Logs & Inspectors

After a flight, pull the onboard dataflash logs off the autopilot; during a session, watch the live link. This page covers downloading onboard logs and the two expert-only live inspectors — the MAVLink Inspector for the telemetry stream and the DroneCAN Inspector for the CAN bus.

Onboard logs

The Logs tab lists the dataflash (.BIN) logs stored on the flight controller and downloads them to your computer. Use List to enumerate them and the per-log download button to save one, with a progress bar as it streams.

Two transports are used, transparently:

  • MAVFTP — the preferred path, tried first whatever the board advertises, because it reads the actual directory. It is a faster burst read and gives the real on-FC filenames. ArduPilot hardware serves logs from /APM/LOGS, SITL from /logs; the app probes hardware first and falls through.

  • LOG_* — the classic dataflash stream (LOG_REQUEST_LIST / LOG_REQUEST_DATA), used only when MAVFTP cannot answer.

Note

The order matters after an erase. The LOG_* list is not built from the files: the vehicle derives it from LASTLOG.TXT, which ArduPilot removes only at the end of the erase sequence (AP_Logger_File::erase_next). Until then — and permanently if the sequence is interrupted — an FC can keep listing logs that are no longer on the card, and the stale number survives a reconnect because it lives on the SD card. Reading the directory instead means the Logs tab and the Files tab always describe the same card. If another GCS still shows the old logs after an erase, that is what it is looking at.

Downloaded files are given a self-describing name so a folder of logs from several craft stays readable rather than a pile of onboard-log-1.bin collisions. The name encodes a board-identity tag — the autopilot’s unique id (uid_…) when the firmware reports a real one, else the firmware git hash (fw_…), else a generic ardupilot — plus the log number and, when the FC timestamped the log, a UTC date stamp. For example:

uid_2300...e7_date_20240602-000000_log7.bin

Note

If a download stalls at 0%, the autopilot may still consider another log transfer active (a lost LOG_REQUEST_END, or a second ground station attached). The app retries — re-sending LOG_REQUEST_END first to clear the stuck transfer — but if it keeps failing, disconnect other ground stations or reboot the flight controller and try again.

Uploading to a log server

Logs can be pushed straight to your own ArduLogs server instead of being saved locally and moved by hand. Sign in from the Logs tab (server address, username, password) and each log gains an Upload to server button beside its download button. The password is used once to get a token and is never stored; the token lives only until the tab closes.

Uploads carry the log’s descriptive name, the flight date, and an optional note, so the archive stays readable without opening anything.

The baro thrust calibration can use it

The Baro thrust (VALT) calibration on Calibration → Flight is the one calibration whose entire input is a flight log, and the scale it produces is only as good as the hover behind it — so keeping that log retrievable is worth doing, both for comparing one calibration against the next and for anyone asked to explain a value that ended up on an aircraft.

Signing in is not required to use the card, though. It appears whenever the firmware carries BARO1_THST_SCALE (and you are in Expert mode); when you are signed in it simply names the server it would pull logs from. The card can also read a log straight off the connected aircraft with Pick from vehicle.

Configuration files go to the same place

Once signed in, an Upload to log server button also appears next to the export actions for parameter backups, presets, and snapshots. This is the point of it: a tune filed beside the flights it produced answers “the tune changed and the next flight oscillated”, and neither half is much use on its own.

Each upload opens a small form with the filename prefilled from the aircraft and the date — editable, so an upload can be named for what it actually is — plus an optional note. The folder is derived from the aircraft, the same way a log’s is, so both halves land together. The file is sent exactly as exported, byte for byte.

Note

No log-server session, no buttons. They are hidden rather than shown disabled, because a control that only ever says “sign in first” advertises a capability most operators have not set up.

Important

Uploads are not private to you. Each account uploads into its own folder, but that folder decides where files land, not who may read them: any signed-in user on the server can download any log or configuration file on it. Deletion is the asymmetric half — only the owner of a file can remove it. Treat the server as a shared archive for the people who hold accounts on it.

DroneCAN Inspector

The DroneCAN Inspector — also Expert-mode — does for the CAN bus what the MAVLink Inspector does for the telemetry link: live node traffic, per-node health and parameters, ESC telemetry, and node management over the MAV_CMD_CAN_FORWARD tunnel. It has its own page; see CAN & DroneCAN.


On the firmware side, the ArduPilot wiki is canonical for logging and the protocol: downloading and analyzing data logs and MAVLink basics.