Hello all,
I am trying to get my Logic MSO up and running for some automation scripts following this guide:
Installation — Saleae MSO API Documentation
It seems I have set up my udev rules and user groups correctly, but I cannot seem to get USB permissions to work.
Running the “Quick Example” scope program from above docs with uv run throws the following error:
connornelson@hostmachine:~/Development/myproject-logic$ uv run scope.py
Traceback (most recent call last):
File "/home/connornelson/Development/myproject-logic/scope.py", line 15, in <module>
capture = mso.capture(capture_config, save_dir=save_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/connornelson/Development/myproject-logic/.venv/lib/python3.12/site-packages/saleae/mso_api/mso_device.py", line 56, in capture
record_options_path = capture_config.to_dir(save_dir, self.part_number)
^^^^^^^^^^^^^^^^
File "/home/connornelson/.local/share/uv/python/cpython-3.12.0-linux-x86_64-gnu/lib/python3.12/functools.py", line 995, in __get__
val = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "/home/connornelson/Development/myproject-logic/.venv/lib/python3.12/site-packages/saleae/mso_api/mso_device.py", line 45, in part_number
json_response = self.wrapper.run_json("cli", "fx3", "read-main-board-meta")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/connornelson/Development/myproject-logic/.venv/lib/python3.12/site-packages/saleae/mso_api/wrapper.py", line 153, in run_json
stdout = self.run(*all_args, timeout_secs=timeout_secs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/connornelson/Development/myproject-logic/.venv/lib/python3.12/site-packages/saleae/mso_api/wrapper.py", line 189, in run
raise USBPermissionsError()
saleae.mso_api.exceptions.USBPermissionsError: Could not access MSO due to USB permissions. Consider running `sudo uv run python -m saleae.mso_api.utils.install_udev` to install and reload the udev rules. Note: you will need to unplug and replug the MSO after installing the rules to enumerate with the new permissions.
connornelson@hostmachine:~/Development/myproject-logic$
I have installed the udev rules via the uv installer and have verified they are loaded
connornelson@hostmachine:~/Development/myproject-logic$ ll /etc/udev/rules.d/99* -rw-r–r-- 1 root root 975 Jan 5 13:28 /etc/udev/rules.d/99-SaleaeLogic.rules connornelson@hostmachine:~/Development/myproject-logic$ lsusb … Bus 006 Device 010: ID 21a9:1007 Saleae, Inc. Logic MSO … connornelson@hostmachine:~/Development/myproject-logic$ ls -la /dev/bus/usb/006/010 crw-rw-rw- 1 root root 189, 649 Jan 5 13:56 /dev/bus/usb/006/010
Maybe there are some pathing issues?
I am also new to UV so I am not certain what all is abstracted from the user in that regard.
User groups
connornelson@hostmachine:~/Development/myproject-logic$ groups connornelson adm dialout cdrom sudo dip plugdev users lpadmin docker
Versions:
saleae-mso-api 0.5.4
Logic-2.4.40-linux-x64.AppImage
Other Notes:
- The MSO is connected directly to my machine (not a USB HUB)
- I installed the Logic AppImage manually and am running it Executable as Program, and it works flawlessly. I can get captures from the device and see device ID so I know that Logic can talk to my device.
- Python 3.12
Hopefully there is something obvious that I am missing! Thanks in advance for any suggestions for further troubleshooting.
-Connor