Skip to content
Docs
foxborne.comRequest a pilot

Supported file formats

The file formats Foxborne reads, what each one holds and how Foxborne recognizes, times and parses it, plus the formats file import takes by upload, drop folder or removable media.

ReferenceMarkdown
On this page7

Foxborne reads six formats, from the flight log and the companion computer to the ground station and the range. Each original is hashed with SHA-256 on arrival and stored unmodified.

Formats Foxborne reads#

FormatExtensionWhat it holds
PX4 ULog.ulgCompleted flight logs: vehicle status, position, battery, GPS, telemetry, logged messages and dropouts.
journalctl JSON.jsonsystemd journal exports from the companion computer, with realtime and monotonic timestamps and the boot ID.
Collector JSONL.jsonlProcess samples from the Foxborne collector: CPU, resident memory and restart count, with clock status on every sample.
Receiver JSONL.jsonlGround station receive records: which MAVLink message arrived, from which system, and when it arrived.
IRIG 106 Chapter 10.ch10Flight test recordings: time packets, PCM, MIL-STD-1553 and ARINC 429 channels, decoded with the recording’s own TMATS setup record.
Range records.csv, .jsonRadar TSPI, telemetry receiver and flight termination console logs on range time, mapped once per range.

How Foxborne recognizes a file#

Foxborne identifies the flight log, journal, collector and receiver formats by content, not by name. It checks the file size first, then tests the first 4,096 bytes in the order below, and the first match decides.

OrderFormatFoxborne looks forThe file's row then reads
1PX4 ULogThe first seven bytes 55 4C 6F 67 01 12 35, which is "ULog" then 0x01 0x12 0x35PX4 ULog, version 1 and Magic bytes verified
2journalctl JSON__REALTIME_TIMESTAMPjournalctl JSON export and Journal fields found
3Receiver JSONL"recv_utc"Receiver JSONL and Receive records found
4Collector JSONL"boot_id" or "rss_kib"Collector JSONL and Process samples found

A file named .ulg without the magic bytes is quarantined. Import files in the console gives each message.

Parsers#

The run page names the parser and its version beside each file. The same files and parser versions always give the same event IDs.

FormatParser in the example dataset
PX4 ULogulog 0.9.2
journalctl JSONjournal 0.6.0
Collector JSONLagent 0.8.1
Receiver JSONLreceive 0.4.1

In the example dataset, samples from a vehicle on collector 0.7.3 read agent 0.7.3.

Clocks and anchors#

Each of these four formats keeps time its own way, and Foxborne records the clock, the anchor and the error bound for each file.

FormatClockAnchorBound in the example dataset
PX4 ULogMicroseconds since the flight controller bootedGPS time from sensor_gps±40 ms
journalctl JSONThe companion computer's wall clockchrony, while it reports a synchronized source±6 ms
Collector JSONLThe companion's monotonic clock, same boot as the journalThe boot ID it shares with the journal±6 ms
Receiver JSONLThe range control receiver's clockNTP±15 ms, plus link latency

The bounds in the last column come from the example dataset. Yours follow from your hardware and your time sources, and Clocks, anchors and error bounds explains each one.

Limits#

SettingValueNotes
Largest file250 MB by defaultAn admin can choose 250 MB, 1 GB or 4 GB. Oversized files are refused with a reason, never truncated.
Decompression limit2 GB per bundleShown under Settings, Import

Parsing streams each file, so memory does not grow with the file's size.

File import#

File import is the ingest path for files people bring in. The Ingest tab of Integrations lists it as "Upload, drop folder or removable media", authenticated by "User login plus sender SHA-256 manifest". It works air-gapped, and "Every file is hashed with SHA-256 at receipt and checked against the sender's manifest before it is parsed."

The catalog lists these formats for file import:

FormatFilesMore
PX4 ULog.ulgPX4 ULog
ArduPilot DataFlash logs.bin
MAVLink telemetry logs.tlogMAVLink telemetry logs and receive records
MCAP and ROS 2 bagsMCAP files and ROS 2 bags
CAN logscandump, ASC, BLF and MF4
IRIG 106 Chapter 10.ch10IRIG 106 Chapter 10 recordings
TSPI filesTime-space-position informationRange records

The File import row states how many formats your deployment has on, and its drawer lists them under Formats on. In the example dataset the row reads On, 4 formats: PX4 ULog, journalctl JSON, collector JSONL and receiver JSONL. "The other formats in the catalog are off on this deployment."

Settings, under Import, shows the same list as Formats. The Used by row links Import files, where investigators upload by hand; see Import files in the console.