Binary and CSV Export Formats - 2025 Update

The Logic 2 binary and CSV export file formats are being updated to support new Saleae products.

Existing products, including Logic 8, Logic Pro 8, and Logic Pro 16, still use the original binary export (version 0), however those will be updated to support the new export format soon.

Version 0 of the binary export, still in use for Logic 8, Logic Pro 8, and Logic Pro 16, is documented in the support article here: Binary Export Format - Version 0

Binary Export Format (Version 1)

Logic 2 exports both digital and analog data in binary formats that start with a common header to identify the file type and version.

Key Properties:

  • All multi-byte values are in little-endian byte order

  • Floating point values are IEEE 754 format

  • Current version is 1 (supports gaps and multiple chunks)

  • Version 0 files are still used for non-MSO devices

Common Header

All binary export files start with this header:

byte[8] identifier;   // Always "<SALEAE>"
int32 version;        // Current version is 1
int32 type;           // 0 = Digital, 1 = Analog

Data Types:

  • 0 - Digital data

  • 1 - Analog data

Digital Binary Format (Version 1)

The current digital format supports gaps in data and multiple sampling configurations:

Notes:

  • Each chunk represents a continuous segment of data

  • Gaps between chunks indicate missing data, usually due to channels being turned off, but can also occur if USB bandwidth is saturated

  • State alternates with each transition (initial_state → !initial_state → initial_state...)

Analog Binary Format (Version 1)

The current analog format supports multiple waveforms with trigger information:

Notes:

  • trigger_time indicates when the trigger occurred

  • downsample factor indicates if data was decimated during export

Python Parsing Examples

Digital Data Parser

Analog Data Parser

CSV Export Format

Digital CSV Format

Digital data is exported as a multi-channel time-series showing state changes across all channels:

Format:

  • Header: Time [s],Channel Name 1,Channel Name 2,...

  • Time Column: Timestamp in seconds (floating point)

  • Channel Columns: Digital state values

Values:

  • 0 = Low state

  • 1 = High state

  • X = No data (channel disabled or gap in capture)

Notes:

  • Each row represents a time point where at least one channel changes state

  • Only state transition times are included (not every sample)

  • X indicates missing data due to gaps or disabled channels

  • Time values are relative to the current base time in Logic 2 (usually the start of the capture)

Waveform CSV Format

Waveform data includes trigger timing information along with voltage measurements:

Format:

  • Header: Trigger [s],Time [s],Channel Name 1,Channel Name 2,...

  • Trigger Column: Time relative to trigger event (floating point seconds)

  • Time Column: Time relative to current base time in Logic 2, usually the start of the capture (floating point seconds)

  • Channel Columns: Voltage measurements

Notes:

  • Each row represents a voltage sample across all channels

  • If there is no voltage data for a channel, the voltage value will be empty

    • This is shown on the second waveform for Ch0 in the example above

Last updated