Recording
To capture a session, click the Record button in the toolbar (the circle icon). While recording is active, the button pulses red and all subscribed topic data streams into an MCAP file.Start recording
Click the Record button in the toolbar, or use the Command Palette and search for “Start Recording”. Recording begins immediately for all active topic subscriptions.
Monitor recording
The status bar displays the recording duration and file size as data accumulates. All topics that are currently subscribed in any panel are included in the recording.
Recording captures raw message data at full fidelity. No downsampling or lossy compression is applied. File sizes depend on the number of topics and their publish rates — a typical PX4 SITL session with telemetry and pose data produces roughly 5-15 MB per minute.
Replay
Open any.mcap file from the file explorer or via File > Open. Substrate detects the format automatically and switches to replay mode.
When an MCAP file is loaded, a playback bar appears at the bottom of the workspace. All panels synchronize to the playback position.
Playback Controls
| Control | Action |
|---|---|
| Play / Pause | Toggle continuous playback |
| Step Forward | Advance by a single message timestamp |
| Speed | Cycle through 0.5x, 1x, 2x, and 4x playback rates |
| Seek | Click anywhere on the timeline to jump to that timestamp |
| Scroll Zoom | Scroll on the timeline to zoom into a time range |
- Keyboard Shortcuts
- Panel Synchronization
- Space — Play / Pause
- Right Arrow — Step forward one frame
- Left Arrow — Step backward one frame
- + / - — Increase / decrease playback speed
ULog Flight Logs
Substrate also supports PX4 ULog files (.ulg). When you open a ULog file, Substrate applies a purpose-built layout with a 3D flight path viewer, GPS map, telemetry plot groups, and a log message panel. All panels synchronize to the same playback clock, just like MCAP replay.
ULog files contain PX4-specific parameter snapshots, logging metadata, and multi-rate message topics. Substrate parses all of these and exposes parameters as browsable constant-value channels.