Skip to content
Docs
foxborne.comRequest a pilot

Import files in the console

Add one run's flight log and companion evidence from your browser. Foxborne recognizes each format, computes every file's SHA-256 before it uploads and opens the new run as soon as you import.

How-toEvery deploymentInvestigatorMarkdown
On this page6

Use Import files when a run's files are on your machine. That can be a flight log copied from the SD card, a journal export, collector samples or a receive log. The page checks each file's size and format, computes its SHA-256 in your browser and creates the run in one step.

Before you start#

  • You need the Investigator or Admin role. They are the two roles with the Import runs and files permission.
  • Each file must be a format the Import files page takes: PX4 ULog (.ulg), a journalctl JSON export, collector JSONL or receiver JSONL. See Supported file formats.
  • Each file must fit under the import limit, 250 MB by default. An admin can raise it to 1 GB or 4 GB under Settings, Import, Largest file.
  • Export the companion journal with journalctl -o json. journalctl JSON exports has the full command.

Import a run#

  1. Open Import files

    Select Import files in the sidebar, under Investigate. The Import files button at the top of the Runs and Incidents lists opens the same page.

  2. Add the files

    Drag the files onto Drop files here, or select Choose files and pick several at once. The drop zone states what it takes: PX4 .ulg, journalctl JSON export, collector JSONL or receiver JSONL. Up to 250 MB per file.

    To try the page before you use real files, Use sample files adds an example flight log, journal export and collector samples.

  3. Wait for each file to show Ready

    The Files panel appears under the drop zone and lists each file with a status chip and a count such as 2 of 3 ready. A file moves from Validating to Hashing to Ready while its detail line fills in:

    • The format, the size and what Foxborne found, for example PX4 ULog, version 1 with Magic bytes verified.
    • Once hashed, a second line with the first 12 and last 4 hex characters of the SHA-256, followed by computed in your browser.

    A file that fails a check shows Quarantined or Rejected, with the reason in place of its detail line. Remove any file with the × at the end of its row. Once a file is ready, the right of the panel header says where the run's start time comes from: Start time comes from the flight log, or No flight log, so the companion clock is used.

  4. Describe the run, if you want to

    Select Run details at the top right of the page. The drawer opens with the note Optional. Foxborne detects the vehicle from the flight log and labels the run by date if you leave these empty.

    FieldWhat to enter
    VehicleLeave Detect from the flight log, and Foxborne matches the vehicle from the MAVLink system ID in the flight log. Or pick the vehicle, for example UAS-04, Q4 recon quad.
    Run labelA name the team will recognize, for example North field grid D. Left blank, the run is labeled Imported and the date, such as Imported 26 Sep.
    Notes (optional)Wind, payload, what the operator saw. Notes are saved as an annotation with your name and are never treated as evidence.

    When Foxborne detects the vehicle, the hint says how, for example Detected UAS-04 from sys_id 4 in the flight log. The drawer keeps what you enter when you close it with Done. Its footer counts the files that are ready, such as 3 files ready.

  5. Select Import

    Import sits at the top right of the page, beside Run details, and the Run details drawer has the same button in its footer. It counts the files that are ready, for example Import 3 files, and stays disabled until one is. Only files marked Ready go into the run.

Positions and storage

Flight logs contain positions, and exported reports remove coordinates unless the exporter turns them back on.

The Run details drawer names where the files go, under Where the files go. In the example deployment it reads Files go to your own storage in AWS GovCloud (US-West). Nothing leaves your network.

How Foxborne recognizes a file#

Foxborne identifies a file by its content, not its name. It checks the size first, then reads the first 4,096 bytes and tests them in the order below. The first match decides.

CheckResult on the row
Larger than the import limitRejected: Larger than the 250 MB limit. Ask an admin to raise it for this import.
The first seven bytes are 55 4C 6F 67 01 12 35, which is "ULog" then 0x01 0x12 0x35PX4 ULog, version 1, with Magic bytes verified. The version is the eighth byte.
The text contains __REALTIME_TIMESTAMPjournalctl JSON export, with Journal fields found
The text contains "recv_utc"Receiver JSONL, with Receive records found
The text contains "boot_id" or "rss_kib"Collector JSONL, with Process samples found
The name ends in .ulg, but the magic bytes are missingQuarantined: Named .ulg, but the ULog magic bytes are missing. The file may be corrupt or not a PX4 log.
Anything elseRejected: Not a format Foxborne reads. Expected PX4 ULog, journalctl JSON, collector JSONL or receiver JSONL.

Only the sixth check looks at the file name. Once a format matches, the browser reads the whole file and computes its SHA-256 with the Web Crypto API. A file the browser cannot read shows Rejected with The file could not be read.

Check the result#

The run opens as soon as you select Import. A toast confirms it with the file count and the new run ID, for example Importing 3 files as R-0937.

  • The run shows Parsing, a progress bar and the current step. The steps are Validating type, size and schema, Hashing originals, Parsing the flight log, Parsing journal and samples, Aligning clocks and Running rules.
  • The Clock chip reads Pending until the clocks are aligned, and Runs in the sidebar counts 1 parsing.
  • Source files lists each file under Manual upload. Hashed on arrival and stored unmodified. Compare each file's SHA-256 with the hash your browser showed.
  • When parsing ends, the status changes to Complete or Partial, and the Clock chip shows the bound, such as Aligned ±46 ms. Import job, at the top right of the run page, then opens each step with its time.
  • Notes you wrote in Run details show on the run page under Notes, with your name and the time.
  • The audit log records Imported run with the run ID and a detail such as 3 files, manual upload.

Troubleshoot#

  • Larger than the 250 MB limit. Ask an admin to raise it for this import. An admin can raise Largest file under Settings, Import, to 1 GB or 4 GB; oversized files are refused with a reason, never truncated.
  • Named .ulg, but the ULog magic bytes are missing. The copy is damaged, or the file is not a PX4 log. Copy it from the SD card again and add the new copy.
  • Not a format Foxborne reads. Check that you picked the right file. A journal exported in journalctl's default short format carries no field names, so export it again with -o json.
  • The detected vehicle is wrong. Open Run details and pick the vehicle in Vehicle before you select Import.

For statuses a run can show after import, such as Quarantined, Rejected and Partial, see Import statuses and fixes.

Next#