Installation#
This guide will help you install the Saleae MSO API.
Requirements#
Python 3.11 or higher
Logic 2.4.20 or newer installed (for the Logic MSO drivers, or udev rules)
A supported operating system, either:
Windows 10, or 11 (x64), or
Ubuntu 20.04+ (64-bit) (OSX support coming soon)
Enough disk space for your capture files
The remaining package requirement will be installed automatically by uv
(or pip
).
We recommend installing a recent version of Logic2 on your system and checking that it can connect with and get data from your MSO before installing this library. We hope there will be no issues installing this library and getting your Saleae products operating automatically, but if there are issues then that step will make debugging them a much smoother and more targeted process.
Installation Methods#
Saleae Python Package Index#
This package is distributed via a private python package index hosted by Saleae. You can install it with uv
(recommended, see the uv installation instructions for information), pip
, poetry
or any other python package manager. Saleae recommends using both uv
and a virtual environment. You will need to provide the URL for our index when you install:
uv add saleae-mso-api --index https://downloads.saleae.com/pypi --index-strategy unsafe-best-match
# or
pip install saleae-mso-api --extra-index-url https://downloads.saleae.com/pypi/
Linux#
If you have not installed Logic2 before, you will need to install the udev
rules into the proper place. After installing the package
with the above instructions, run:
# will prompt for a password when it calls 'sudo'
uv run python -m saleae.mso_api.utils.install_udev
# on pip with virtualenv
source .venv/bin/activate
python -m saleae.mso_api.utils.install_udev
to put those rules into /etc/udev/rules.d
and reload them with udevadm
. You will see a new rules file called 99-SaleaeLogic.rules
that contains the following:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1001", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1003", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1005", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1006", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1007", MODE="0666"
Development Setup#
If you’re planning to contribute to the project, you’ll need to install the development dependencies:
uv sync --all-extras
This will install additional packages like:
ruff (for linting)
pytest (for testing)
jupyter-book (for documentation)
On Linux#
You will need to install the udev
rules for the automation instrumentation as well. Do this with:
uv run python -m saleae.mso_api.utils.install_udev --all
Troubleshooting#
Common Issues#
ImportError: No module named ‘saleae’: Make sure you’ve installed the package correctly.
ImportError: cannot import name ‘X’ from ‘saleae’: You might be using an older version of the package. Try updating.
Getting Help#
If you encounter any issues during installation, please send an email to clark@saleae.com