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
- Browse to a
.ulgfile. The table lists its topics, their message counts, and which ones draw on the map. - Tick the topics to bring in, or leave them all ticked.
- Check the flight's start time, shown before you import.
- 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.
| Field | Type | Required | Default |
|---|---|---|---|
Flight log/data/flight_042.ulg | Path | Yes | — |
Topicsvehicle_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 | — | — |
Speed0 = as fast as possible | Number | — | 0 |
Updated