About the Logic 1.x (Legacy) Software category

This is the place to discuss the 1.x Software, in general. You can also contribute ideas and vote here: https://ideas.saleae.com

segmentation fault on launching Saleae with 1.2.xx(tried 18 and 29)
Platform details:
Linux : Debian 11.3.0, Debian 11.2.0
Dell :5090 mini pc.

Attached the crash dump
Errors.zip (4.7 KB)

Sorry for the trouble! You will need the latest 1.x release, 1.2.40, which you can get here:

The error causing the crash is this one:
Error: Invalid board revision found

For context, in the last year, due to the supply chain shortages, we needed to switch ADCs in the product. This required a board redesign, and modifications to the FPGA image and software.

This means these devices only work with more recent software releases.

Since we still have customers using the 1.x software to use the automation API, we created a release of the old 1.x software with support for these devices, which is 1.2.40.

Unfortunately, we’ll have to do this again soon, as for the same reason we have to switch FPGAs from Xilinx to Lattice.

Needless to say, we’ve been pretty busy trying to keep up with supply chain issues, which has really cut into our ability to work on improvements to the software, unfortunately.

Thanks for the quick support. Appreciate it.

Sure thing!

on the same note. Can i get the .zip link for 1.2.40?

we have a predefined settings.xml which we copy under /usr/bin/Logic/Settings. With .AppImage our automation is failing.

I assume you mean a non-Appimage Linux zip release?

You can extract the appimage with ./Logic-1.2.40-Linux.AppImage --appimage-extract, which will dump the contents to a new directory called squashfs. You can then run the Logic binary directly from there.
If you have any trouble with it, please send me the details and I can switch over to Linux and help from there.

where can I find the Settings.xml to preload the settings before the measurements?

I’m on windows at the moment, but I believe on Linux it’s “~/.config/Logic”. Let me know if you can’t find it there.

on 1.2.29 or older releases with zip package it is under Logic\ 1.2.29\ (64-bit)/Settings/Settings.xml
After extracting the AppImage I do not see the Settings folder anywhere. If you could let me know how the settings are stored in case of AppImage.

Sure thing. Because the AppImage mounts a small, read-only file system, we could no longer store any files inside of the app file structure. This includes settings, calibration files, and error reports.

Instead, We updated the software to create these files and folders at the location ~/.config/Logic on first run.

More specifically, we’re using QT to get two different user directories:
QStandardPaths::AppDataLocation and QStandardPaths::AppConfigLocation
You can find the definitions for these in the QT documentation here:
https://doc.qt.io/qt-6/qstandardpaths.html
We store the settings.xml file at the location returned from AppConfigLocation, and we store calibration, errors, and protocol database files at the location returned from AppDataLocation.
Our app creates these files and folders at launch if they don’t exist. If you provide the settings.xml file at the expected location ahead of time, it should be loaded, rather than being created from defaults.

Is there any API changes in 1.2.40 compared to 1.2.29?

@harin.nair I assume you’re talking about our Logic 1.x Automation API?

If so, there are no changes to the API from 1.2.29 to 1.2.40.

Thanks.

I am getting this error while running from docker. But if i just run it outside the docker no issues.

jenkins@vayu:/usr/bin/Logic$ ./logic
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-jenkins’
QCommandLineParser: option not defined: “websource”
QCommandLineParser: option not defined: “port”
Root Path: /tmp/.mount_logiczycqmJ/usr/bin [ /home/build/Software/Logic/Source/LogicBase/src/Environment.cpp; Environment; 184 ]
Release Mode; analyzer path is /tmp/.mount_logiczycqmJ/usr/bin/Analyzers [ /home/build/Software/Logic/Source/LogicBase/src/Environment.cpp; Environment; 198 ]
Logic Assert Information
Version: 1.2.40
System: Linux; 5.10.0-13-amd64; #1 SMP Debian 5.10.106-1 (2022-03-17); x86_64
Crash Id:
File: /home/build/Software/Logic/Source/LogicBase/src/Environment.cpp
Function: Environment, Line: 249
Error: failed to create data directory
Most recent messages:

Root Path: /tmp/.mount_logiczycqmJ/usr/bin [ /home/build/Software/Logic/Source/LogicBase/src/Environment.cpp; Environment; 184 ]

Release Mode; analyzer path is /tmp/.mount_logiczycqmJ/usr/bin/Analyzers [ /home/build/Software/Logic/Source/LogicBase/src/Environment.cpp; Environment; 198 ]

Segmentation fault (core dumped)

The crash here is from this line:

Error: failed to create data directory

The software is crashing because it failed to create the app data directory.
Unfortunately, it won’t print out the path it tried to create.
It’s probably trying to create one of the following directories, but you might be able to use strace to check.
“~/.local/share/Logic”, “/usr/local/share/Logic”, “/usr/share/Logic”
Is this something you could fix with docker?