Binary and CSV Export Formats - 2025 Update
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 = AnalogData Types:
0- Digital data1- 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_timeindicates when the trigger occurreddownsamplefactor 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 state1= High stateX= 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)
Xindicates missing data due to gaps or disabled channelsTime 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