PhloemDocs
Markdown
Connector

PX4 ULog

Import PX4 flight logs (.ulg)

Category
Robotics
Kind
source
Capabilities
StreamsHistoryEntities
Runs on
Linux x64Linux ARM64macOS Apple siliconmacOS IntelWindows x64

Import a PX4 flight log, the .ulg file the autopilot writes to its SD card. You get every logged topic as channels, the flight path on a map, and the autopilot's messages next to the charts.

What you get

  • Every logged topic and instance. A field shows as /ulog/<topic>_<instance>/<field>, such as /ulog/vehicle_attitude_0/q[0] or /ulog/battery_status_0/voltage_v. Arrays get one channel per element. Nested fields show as <field>/<inner>. A raw-message view shows each topic together.
  • Position as a track on the map. From vehicle_global_position (the fused estimate) and raw GPS, at …/fix. Both older (vehicle_gps_position, 1e-7 degrees) and newer (sensor_gps, degrees) PX4 topics work. Positions before the first fix are skipped.
  • The autopilot's messages (Low battery, Takeoff detected, …) at /ulog/log, with their severity.
  • Logger dropouts show as gaps, so a hole in a chart is explained.
  • Damaged logs. A log cut off by power loss is read up to the last whole message. Damage in the middle is skipped and counted, and the rest is read.

Setup

  1. Browse to a .ulg file. The table lists its topics, their message counts, and which ones draw on the map.
  2. Tick the topics to bring in, or leave them all ticked.
  3. Check the flight's start time, shown before you import.
  4. The import runs as fast as the machine allows. To replay in real time, set Speed to 1.

When the flight happened

A ULog stores time since the autopilot booted, not a date. Phloem dates the flight from the log's own GPS time, using every GPS message with a 3D fix.

A log with no GPS time, such as a bench run or indoor flight, needs a start time. Enter Logging started at with a date, time and timezone offset, such as 2026-09-20T10:15:00+05:30. The file's modified time is never used, because copying a log off an SD card changes it.

#Supports

  • PX4 ULog files, every logged uORB topic and instance, nested and array fields
  • Placed on the calendar by the log's own GPS time, or a start time you state
  • Vehicle position (fused estimate and raw GPS) as a track on the map
  • Autopilot log lines as a log channel; logger dropouts stated as gaps
  • Damaged logs: crossed at the next sync marker, a torn tail or append point skipped and counted

#Connection fields

Every field the Add input form shows for this connector.

FieldTypeRequiredDefault
Flight log
/data/flight_042.ulg
PathYes—
Topics
vehicle_attitude vehicle_global_position battery_status
Text——
Logging started at
Only for logs without GPS time. Date, time and timezone offset.
2026-09-20T10:15:00+05:30
Text——
Speed
0 = as fast as possible
Number—0

Updated