BEACONUAV OPERATIONS DOCS // V2.4
FIELD MANUAL / 10

Supported imports

Every file type the flight log importer accepts, what each one gives you, and what to do with the formats it cannot read.

Import a recorded flight instead of re-typing it. Log → Import flight log takes a drop of several files at once and reports each one separately: imported, already in your logbook, or refused with the reason.

Note:

Import works on every plan, Free and Pro included. An imported flight lands in your personal logbook and feeds the drone you pick from your hanger. On Enterprise Solo and Enterprise you can instead file it under your organization, which adds client jobs, the aircraft serial registry, squadron drones and uploaded video files. A personal flight takes video links only.

What it reads

Every format in this table is checked against a test file whose layout comes from a published source. Where that test file was built from the published layout rather than a real export, the last column says so.

SourceFileWhat you getTested against
Airdata (DJI, Autel and other drones synced to Airdata UAV)Flight data .csv downloaded from AirdataDuration, peak height and speed, distance from home, battery, GPS pathAirdata's published column layout, imperial units
DJI (DJI Fly, DJI Pilot 2, DJI GO)DJIFlightRecord_*.txt converted with the free, open-source dji-log tool's CSV optionDuration, aircraft serial and name, peak height and speed, distance from home, battery, GPS pathThe dji-log 0.5.7 column layout
DJI (DJI GO, roughly 2018 and earlier).txt FlightRecord, format version 5 and below, as isDuration, peak height and speed, battery, GPS pathA file built from the public description of the format
BetaflightCLI diff / dump textCraft name, firmware, board, and any flight summary lines you addedBetaflight's CLI output
Betaflight.bbl Blackbox logCraft name, firmware, board, log date. Flight frames are not decoded.Blackbox header lines
Anything.csv with a time column or latitude and longitude columnsDuration, altitude, GPS pathHand-written samples

Units come from the column headers when they state them, so a column marked (feet), [ft], (meters), (mph) or (km/h) is converted correctly. Times with no time zone are read as UTC.

Peak height is height above the launch point. Where a file records altitude above sea level (GPX, most KML, IGC, ArduPilot), the importer measures from the first fix and says so on the flight.

Also accepted, not yet checked against a real export

These parse today, but we wrote their column layouts without a published source or a real file to test against. Check the numbers after import, and if one reads wrong, send us the file.

SourceFileNotes
DJI.txt FlightRecord, format versions 6 to 12The descrambling key matches the open-source decoder; the record layout is not yet tested on a real log
Autel.csv flight recordLayout not confirmed. Syncing to Airdata and importing its CSV is the tested route.
Skydio.csv from Skydio CloudA one-row-per-flight summary has no GPS path; the newest flight in a multi-row export is imported
Parrot (FreeFlight 6, ANAFI).csv flight exportA one-row-per-flight summary has no GPS path
Litchi.csv exportNo aircraft serial in the export
IGC.igc trackNo battery or speed channel in IGC
ArduPilot (Mission Planner, QGroundControl)text .log DataFlashGPS path, height and speed; the date and time come from GPS week time
GPX / KML.gpx, .kml trackNo battery channel in a track

Supported extensions: .txt, .csv, .bbl, .dat, .gpx, .kml, .igc, .log, .bin.

Warning:

DJI .txt logs, version 13 and newer. DJI encrypts every record with a key it only issues through its developer API. BeaconUAV cannot decrypt these offline, and refuses them rather than invent numbers from bytes it cannot read.

To get those flights in: convert the log with the free dji-log tool (github.com/lvauvillier/dji-log-parser), which needs your own free DJI developer key for these versions, and import the CSV it writes. Or sync the flight to Airdata and import Airdata's CSV. DJI Fly, DJI Pilot 2 and DJI Assistant 2 do not export CSV themselves.

Warning:

Autel .bin, ArduPilot DataFlash .bin, PX4 .ulg, .tlog. These are packed binary containers we do not decode yet. Export the flight from your ground station as a GPX/KML track or a text .log, or sync an Autel flight to Airdata and import its CSV.

Note:

Import is file based. BeaconUAV does not connect to DJI Fly, DJI Pilot 2, Autel Sky or any other app, or to your manufacturer account.

Try it with sample logs

These files contain invented data and can be dropped into the importer without a real aircraft:

What is kept

The source file is uploaded for server-side parsing. After a successful parse, the app keeps the extracted flight record: time and duration, peak altitude and speed, battery readings, GPS bounds and home point, warnings, and a decimated GPS path when the file contains usable fixes. The raw source file is deleted after parsing, and a file that could not be parsed is deleted too. If storage cleanup is temporarily unavailable, it is retried. Parsed flight metrics remain available for the logbook and reports. A personal import is visible to you alone.

Limits

  • 100 MB per file. A typical camera-drone log is well under this.
  • 20 personal files in flight at once. A personal import that started uploading but never finished is cleared after a day, so drop it again.
  • Duplicates are skipped. A file is identified by its content, so the same log dropped again — or re-downloaded under a new name — is reported as already imported rather than imported twice.
  • Several files at a time. Drop a whole folder's worth; each file is reported individually and one bad file never stops the rest.
  • One aircraft question per flight. Dropping a single file opens a preview first so you confirm the aircraft and job before anything is uploaded. Dropping several skips that and asks per flight as each one is reviewed.

How a flight finds its aircraft and battery

  • If the log carries an aircraft serial (DJI .txt, dji-log CSV, Autel .csv), it is matched against your organization's serial registry (flights filed under an organization only). A confirmed match offers Confirm this aircraft as one click, and also remembers the pairing so the next import resolves automatically.
  • Battery serials from DJI logs are read and stored with the flight so the pack can be tied to its own history.
  • A log without a serial goes straight to the picker, where you choose the airframe yourself.
Tip:

A track file (.gpx, .kml) has no battery data at all. The import shows those fields as unknown rather than as zero — a missing reading is never presented as a real one.

Betaflight and Blackbox

A CLI dump (diff, dump, a pasted status) is read in full: banner, craft name, firmware version and every summary line.

A .bbl Blackbox log is read for its header block only — craft name, firmware, board, log date. The per-frame data that would give an exact flight duration is not decoded, and rather than report an approximate duration as if it were exact, the importer says the duration is missing so it can be entered. Blackbox logs decoded to CSV are not supported yet.

What happens next

An imported flight lands on your timecard with its duration, peaks and GPS path ready to review, and you confirm which airframe flew before it is accepted. Accepted flights feed the dashboard, the analytics views and the drone's service clock.