Install & Compatibility
Where this runs
tested against v1.0.11 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.638s · 40.1MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 2.9s · import 0.334s · 38MB
37MB installed
● package 37MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
automation
✓ from saleae import automation
This quickstart connects to the Saleae Logic 2 application, configures a specified device, starts a one-second capture, and then exports the raw digital data. It demonstrates the use of the `Manager` context manager for connection management and includes error handling for common issues.
import os
from saleae import automation
import time
# IMPORTANT: Ensure the Logic 2 application is running and
# the Automation API is enabled in its preferences.
# You can find your device ID in Logic 2 under Options -> Automation API.
# Alternatively, use manager.get_connected_devices() to list available devices.
DEVICE_ID = os.environ.get('SALEAE_DEVICE_ID', 'F40105001221') # Replace with your device ID
try:
with automation.Manager() as manager:
print(f"Connected to Logic 2, API version: {manager.get_api_version()}")
# Add a connected device. Configuration must match device capabilities.
manager.add_connected_device(
automation.DeviceConfiguration(
device_id=DEVICE_ID,
channel_grouping=automation.ChannelGrouping.GROUP_BY_CABLE,
digital_channels=[0, 1],
analog_channels=[0],
)
)
print(f"Device {DEVICE_ID} configured.")
# Start a 1-second capture at 1MS/s
capture = manager.start_capture(
device_id=DEVICE_ID,
settings=automation.CaptureSettings(
sample_rate=1_000_000,
duration_seconds=1.0
)
)
print(f"Capture started. Waiting for completion... Session file: {capture.filepath}")
# Export raw digital data to a directory
output_dir = f"raw_capture_digital_{int(time.time())}"
os.makedirs(output_dir, exist_ok=True)
capture.export_raw_data_to_directory(
directory_path=output_dir,
digital_channels=[0, 1]
)
print(f"Raw digital data exported to: {output_dir}")
print("Automation complete and session manager closed.")
except automation.LalError as e:
print(f"Logic 2 Automation API Error: {e}")
print("Please verify Logic 2 is running, API is enabled, and device/channel configs are correct.")
except ConnectionRefusedError:
print("Error: Connection refused. Is the Logic 2 application running and the Automation API enabled?")
except Exception as e:
print(f"An unexpected error occurred: {e}")
Errors
Common errors & fixes
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
The Logic 2 application is not running, or its Automation API is not enabled, preventing the Python library from connecting.
fixLaunch the Saleae Logic 2 application and ensure the 'Automation API' is enabled under `Options -> Automation API`.
saleae.automation.errors.LalError: The specified device ID could not be found: 'YOUR_DEVICE_ID'
The `device_id` provided in `automation.DeviceConfiguration` does not match any currently connected and recognized Saleae device.
fixVerify the correct `device_id` from Logic 2's `Options -> Automation API` section. Ensure the device is powered on and properly connected to the computer. You can also use `manager.get_connected_devices()` to list available IDs.
saleae.automation.errors.LalError: An error occurred in the logic application: Failed to configure device F40105001221. Reason: Digital channel 8 is out of bounds.
The `DeviceConfiguration` parameters (e.g., `digital_channels`, `analog_channels`) specify channels that do not exist or are not available on the connected Saleae device.
fixAdjust the `digital_channels` or `analog_channels` lists in `automation.DeviceConfiguration` to match the actual capabilities of your Saleae device. Refer to your device's specifications or inspect its configuration in the Logic 2 GUI.
Upgrade
Version history
1.0.11latest on PyPI · released Nov 18, 2025
Audit
Dependencies
websocket-clientrequiredRequired for communication with the Logic 2 Automation API.