Linux ARM64 mso_data_recorder needed for Logic MSO automation on Raspberry Pi

Hi Saleae team,

I’m evaluating Logic MSO for an automated fixture running on a Raspberry Pi 5 with 64-bit Raspberry Pi OS.

Logic 2 ARM64 works correctly:

  • Logic 2 version: 2.4.47-insider.1
  • Host architecture: aarch64
  • Python: 3.13
  • Logic MSO USB ID: 21a9:1007
  • saleae-mso-api: 0.5.8
  • Logic 2 runs headlessly under Xvfb
  • The MSO reaches DSReady, loads its FPGA, and starts an interactive capture

I started Logic 2 with its automation server:

Logic2-insider-arm64.AppImage \
  --automation \
  --automationPort 10430

The Python automation client connects successfully:

AppInfo(
    api_version=Version(major=1, minor=0, patch=0),
    app_version='2.4.47-insider.1',
    app_pid=4120
)

However, the physical Logic MSO is not exposed:

with automation.Manager.connect(port=10430) as manager:
    print(manager.get_devices())

Output:

[]

From this I understood that the Logic 2 Automation API does not currently support Logic MSO, so I also tested the standalone MSO API.

saleae-mso-api installs successfully, but its Linux recorder is x86-64:

Host architecture: aarch64
Recorder: .../site-packages/saleae/bin/linux-x64/mso_data_recorder
ELF 64-bit LSB executable, x86-64

This executable cannot run natively on the Raspberry Pi.

Can you provide a Linux ARM64 build of mso_data_recorder compatible with saleae-mso-api 0.5.8, including an Insider or unsupported preview build?

The package code appears to support selecting an external recorder through:

export MSO_EXE_PATH=/path/to/arm64/mso_data_recorder

An ARM64 build of that executable may therefore unblock me without other API changes.

I also found references to a GitHub repository for the MSO API, but the repository does not appear to be publicly accessible. Is the source code for saleae-mso-api, mso_data_recorder, or their build and packaging infrastructure available?

I would be willing to contribute Linux ARM64 build and packaging support and upstream the changes. If publishing the full repository is not possible, could Saleae provide contributor access or another process for submitting and testing these changes?

If another supported way exists to automate Logic MSO captures through the ARM64 Logic 2 application, I would also be happy to test or contribute to it.

Thanks!

Hi @kkurucz

Thanks for sending this in - great timing too.

First off, we do have an arm64 Linux build of mso_data_recorder. Would you mind testing it out? You can get it here: Dropbox

Second, if you can wait a day or two, we’re in the process of launching official Logic MSO support with logic2-automation. Specifically, it will be launched in the next update to our new headless automation server, which we released earlier here: Headless logic2-automation Support

The first release with Logic MSO support will be a little rough around the edges, but it will already be a big improvement over mso-api. mso-api does not support protocol analyzers, digital trigger, or saving *.sal files that can be opened by the Logic 2 GUI software. The new headless logic2-automation server provides all of these without the overhead of running the Logic 2 GUI application, which is also ideal for arm64 devices like the Raspberry Pi.

Speaking of which, if you haven’t run into this yet, you may need to apply the environment variable mentioned here: Crashing in Raspberry Pi Arm64 Linux Environment - #25 by markgarrison

1 Like

Hi @markgarrison

Truly great timing! I’ll test the ARM64 mso_data_recorder you provided on my setup and report back if I run into any issues.

I’ll also set SALEAE_DATA_RESERVATION_GIB=2. I haven’t encountered that crash yet, but the workaround is useful to know.

The new headless logic2-automation server sounds like the preferable long-term integration for this fixture. I’d be happy to test the first Linux ARM64 build with Logic MSO support as soon as it is available.

Thanks!

We just shipped headless logic2-automation support for Logic MSO here: Headless logic2-automartion support for Logic MSO!

I would give that a try over the mso-api. Like all the implementations, please set SALEAE_DATA_RESERVATION_GIB=2. This should give you the best balance of low overhead + most capabilities.

If you give it a try, please let me know!