[Guide] Install Siglent EasyWaveX/EasyScopeX/EasyPower/EasyDMM on Linux via Wine - Page 1
Forum section: electronics / testgear

author: szszoke
author_rank: Regular Contributor
timestamp: May 10, 2021, 03:58:12 pm
content: ExpectationsThis guide provides instructions regarding the installation process of Siglent EasyTools on Linux using Wine. The respective EasyTool can be then used to connect to test equipment over the network. Connecting devices via USB is not tested and making USB connectivity work is outside of the scope of this guide.DisclaimerUse at your own risk! This guide comes without any warranty. Under no circumstances I, the author of this guide, take responsibility for any damage caused (physical or monetary)/lost income/lawsuits/etc.Test equipment used for validationSiglent SDG2042X waveform generatorSiglent SDS1104X-E oscilloscopeSiglent SPD3303X-E power supplySiglent SDM3055 multimeterThe test equipment was connected to a network switch together with the computer on which the respective EasyTool was running.PrerequisitesCommonWinewinetricksNI-VISA Runtime 16.0 (newer versions will not work with this guide)Tool specificApplicationDependenciesEasyScopeX, EasyDMMVisual C++ 6.0 runtime, .NET Framework 3.5 SP1EasyPowerVisual C++ 6.0 runtimeInstalling Wine and winetricksThis guide was tested on Ubuntu 20.04 using Wine 5.0 and on Manjaro using Wine 6.7.UbuntuCode:sudo apt install wine-stable winetricksManjaroCode:sudo pacman -S wine winetricksLinksNI-VISA Runtimehttps://www.ni.com/sv-se/support/downloads/drivers/download.ni-visa.html#306035Double check that the Version is set to 16.0Visual C++ 6.0 runtimehttps://download.microsoft.com/download/vc60pro/Update/2/W9XNT4/EN-US/VC6RedistSetup_deu.exeEasyToolshttps://siglentna.com/service-and-support/firmware-software/Tested versions:ApplicationVersionEasyWaveX1.1.0.13EasyScopeX1.01.02.01.21EasyPower1.01.01.18EasyDMM1.02.01.03Configuring WineThe only change that I made was to set the Windows version to Windows 10 using winecfg. I had issues with the EasyWaveX window not reacting to user input on other versions.The guide works on both 32-bit and 64-bit Wine prefixes, the installed dependencies always have to be 32-bit however.Installing NI-VISA Runtime 16.0The first step is to extract the downloaded ZIP file.There is one mandatory component that needs to be installed and two optional.Open a terminal and navigate to the root of the folder where the ZIP file was extracted. There should be a directory called Products in this directory.Mandatory componentsCode:wine msiexec /i Products/NI-VISA_Runtime/NIVISAruntime.msiThe the Ethernet runtime support is needed, the rest can optionally be deselected.Optional componentsSome errors can be seen in the command line when EasyWaveX is launched without the NI Network Discovery Service and mDNS responder. They do not seem to affect the application, but they go away if the right components are installed.Code:wine msiexec /i Products/NINetworkDiscoverySvc/NINetworkDiscoverySvc.msiCode:wine msiexec /i Products/mDNS_Responder/mDNSResponder.msiInstalling .NET Framework 3.5 SP1Code:winetricks dotnet35sp1Installing Visual C++ 6.0 runtimeNormally this dependency would be installed via winetricks but it seems to be broken.Code:winetricks vcrun6If the above command fails, the workaround is to download the installer, run it, which will extract the actual installer.The extracted file then has to be executed again, which will install the runtime.Installing EasyToolsAll of the tested EasyTools use similar/the same installer. Extract the downloaded ZIP file and run the installer with Wine.A PDF version of this guide can be found as an attachment.Original postHello!I am trying to make EasyWaveX work on Linux and I am wondering if anyone succeeded in it before.I am currently running a Manjaro installation, with wine-6.7.I tried to install the NI-VISA runtime, which failed.Without this EasyWaveX was not running.In the end I found out that EasyWaveX only needs two DLLs from the NI-VISA runtime: VISA32.dll and NiViSv32.dll. Apart from that it also seemed to use the 2015 Visual C++ runtime.I copied those two files from a Windows machine to the System32 folder in my Wine Prefix and installed the C++ runtime which made it possible to run the application.The only issues is that I cannot make it detect my SDG2042X. I have two ethernet cards in my computer and I am using one with a network switch to make a small LAN. All of my test equipment are connected to the switch.I can ping and *IDN? my SGD2042X from Linux via telnet.I can ping the device from within Wine and *IDN? via putty.If I add the device to EasyWaveX however, it will just say it is unavailable"I was able to confirm that the same setup works if I boot into Windows. I can connect my SDG to EasyWaveX through ethernet.I don't exactly know how the network communication is working. Maybe I need some extra DLLs but I am at loss here.There are no crashes or error messages. It just says unavailable.Anyone here who was able to make the application run on Linux?Also, is there a maybe an alternative tool that could replace EasyWaveX?Edit:Sometimes I get the following error:Code:006c:err:ole:start_rpcss Failed to start RpcSs serviceNot always though. I will do some more research on this.

author: voltsandjolts
author_rank: Unknown
timestamp: May 10, 2021, 04:17:33 pm
content: It's annoying that easywave doesn't run without a visa install, on either linux or windows, because you might just want to create an arb csv file for saving to a usb stick.I wrote a simple gnu octave script (its like matlab) to create arb csv files but you need a mathematical description of the wave you want to create.https://www.eevblog.com/forum/testgear/siglent-sdg1000-arbitrary-csv-file-format/msg1973726/#msg1973726

author: szszoke
author_rank: Regular Contributor
timestamp: May 10, 2021, 04:23:06 pm
content: I actually saw your project but in my case, I want to simulate bouncy button waveforms and that would be easier to just draw by hand.

author: szszoke
author_rank: Regular Contributor
timestamp: May 10, 2021, 04:25:59 pm
content: In the meantime I realized that a message that I previously ignored could be related to my issue.Code:fixme:service:I_ScRegisterDeviceNotification Notification filters are not yet implemented.I ignored this message because it is related to watching for USB devices but now I am thinking what if the application doesn't even start to look for networked devices because the USB detection fails.

author: szszoke
author_rank: Regular Contributor
timestamp: May 10, 2021, 04:38:58 pm
content: Apparently there have been some improvements in USB handling for Wine, and some of the changes were released as part of Wine 6.8.Source:https://www.phoronix.com/scan.php?page=news_item&px=Wine-Wineusb-MergedIt seems that there is an aur package for wine-staging that was just recently updated to 6.8 but I can't see it just yet, so there is probably some delay with the mirrors.I will try it again in a while and see if I get different results with Wine 6.8.

author: PKTKS
author_rank: Super Contributor
timestamp: May 10, 2021, 04:51:20 pm
content: Quote from: szszoke on May 10, 2021, 03:58:12 pmI would not blame USB specifically in this case w/this message.From my trials and errors on WINE setups..OLE problems are deeply buried into the MS registry keys..Vast majority of these keys are unmanageable and becomea liability even among versions of their own crappy OS.I would try some of those fancy registry tools to auditwhat sort of "keys" are related to that error..Once applications are hard coded with that crap..they are doomed to bound specific registry definitions..total nightmare that thing..Paul

author: tautech
author_rank: Super Contributor
timestamp: May 10, 2021, 10:45:02 pm
content: With any of the Easy* SW that require NIVISA it's imperative NIVISA is installed before attempting to connect any instrument otherwise the OS can automatically assign a USB driver and it's never the correct one.Attached is a little doc I prepared to assist should get you on the right track to ensure the USB driver is correct.It's for EasyScope but the same principles apply and once the driver is correct and working with any of the Easy* SW it gives no further issues with any further Easy* SW installs.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 08:00:43 am
content: Quote from: tautech on May 10, 2021, 10:45:02 pmThanks!I am not using Windows here though, nor USB. Everything is connected via ethernet.I did try to install the driver your guide mentioned via this command (there is no Device Manager in WINE AFAIK):Code:rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ausbtmc.infNothing changed.

author: tautech
author_rank: Super Contributor
timestamp: May 11, 2021, 08:19:42 am
content: Quote from: szszoke on May 11, 2021, 08:00:43 amYeah it's the USB driver.Dunno what to suggest for LAN other than the NIVISA LAN drivers are also required for Easy* SW to work.Did you find a version of Runtime for Linux ? Maybe that can help.Maybe LXI Tools will be an easier connectivity solution for you:https://siglentna.com/application-note/lxi-tools/

author: nctnico
author_rank: Super Contributor
timestamp: May 11, 2021, 11:20:27 am
content: I'd skip Wine and use a virtual machine with Windows. Both Virtual box and Vmware have modes where you can run applications in their own window as if they run on the host machine itself. Getting Windows applications to run on Wine is finicky at best; it seems every application needs specific fixes/support in Wine. Both NIVisa and EasyWavex are NOT listed as applications that work on Wine.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 05:14:04 pm
content: Quote from: tautech on May 11, 2021, 08:19:42 amI will do some experimenting inside a Windows VM without installing any NI-Visa stuff.I will just copy the DLLs and see if it works.I don't know what LAN drivers might be required. Everything is done through TCP sockets.LXI tools cannot replace EasyWaveX sadly.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 05:15:46 pm
content: Quote from: nctnico on May 11, 2021, 11:20:27 amOf course, that is an option but it is a hassle so I will try some more things before I go that route.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 08:43:01 pm
content: I did some testing with a fresh Windows 10 VM.I installed EasyWaveX and I copied two DLLs into the installation directory: VISA32.dll and NiViSv32.dllI get the same behavior as I do in WINE.This is actually good! Now I can take this VM over my Windows 10 installation and try to find the differences. My hope is that if I can make EasyWaveX work in a VM without running the NI-VISA installer and just coping files/registry keys then that might help getting it to work under Wine.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 09:13:59 pm
content: I was able to get it working!I randomly picked the 15.0 version of the NI VISA runtime from here:https://www.ni.com/sv-se/support/downloads/drivers/download.ni-visa.html#306106I just went through the installer, I deselected every component but the Ethernet runtime and then started the installation process.It did fail one step, the shared components, which I think contain the USB drivers, but I just pressed "Continue" and waited until the installer was done.

author: szszoke
author_rank: Regular Contributor
timestamp: May 11, 2021, 09:17:51 pm
content: It is pretty late here and I have work tomorrow but in the upcoming days I will try to make a guide using a fresh Linux VM and post it here.

author: tautech
author_rank: Super Contributor
timestamp: May 11, 2021, 10:17:16 pm
content: Great, well done !Could I ask that you please document it step by step best you can for us to point others to that also want/need to use EasyWaveX in Linux ?

author: Whales
author_rank: Super Contributor
timestamp: May 11, 2021, 10:32:26 pm
content: You got it working in the Win10 VM or on Linux+Wine?N.B. if the software is trying to send any 'custom' packets over the network (ie anything other than TCP or UDP) then you need togrant special permissions to wine. By default Windows lets programs craft custom packets and send them over any network but Linux does not.

author: szszoke
author_rank: Regular Contributor
timestamp: May 12, 2021, 05:52:45 am
content: Quote from: tautech on May 11, 2021, 10:17:16 pmI will do some more testing but in the meantime here is a short version.I'm writing from the phone, so there are no links. You will have to use a search engine. Step 5 might not be needed but I could not ping my devices from within CMD.exe unless I had that permission set up.You should also know that I tried to do this on my "dirty" Wine prefix where I had copies DLLs earlier so that might change something for others.1. Create a 32-bit wine prefix2. Set the Windows version to Windows 103. Download and install the Visual C++ 2015 redistributable package from Microsoft - alternately you can try winetricks but that didn't work for me4. Install NI VISA Runtime V15.0 - deselect every component but the Ethernet runtime. When something fails just press continue5. sudo setcap cap_net_raw+epi /usr/bin/wine-preloader6. Install EasyWaveX via the installerOriginally I had the Windows version set to Windows 7 and that resulted in some issues with the EasyWaveX window. It was not reacting to input except for the menu bar.I found two ways to solve this:1. Set the Windows version to Windows 102. Emulate a virtual desktop

author: szszoke
author_rank: Regular Contributor
timestamp: May 12, 2021, 05:54:42 am
content: Quote from: Whales on May 11, 2021, 10:32:26 pmLinux + Wine.About the permissions: thanks, I am aware of that and I had it set up during my testing because originally I thought that was the reason why EasyWaveX was not registering the devices.

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 10:25:15 am
content: Quote from: tautech on May 11, 2021, 10:17:16 pmI updated the first post in this thread with a guide.Many of the steps I took originally were not requited after all so I left them out.Please let me know if guide is working for you.

author: tautech
author_rank: Super Contributor
timestamp: May 14, 2021, 11:41:53 am
content: Nice work and forwarded to Siglent for guidance to build an App Note for Easy* products use on Linux.Have you checked if EasyScopeX will just install and work straight off as it does/should in Windows once NIVISA components are installed ?

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 11:44:54 am
content: I haven't checked other Easy* apps yet but I was planning to do it today actually.EasyWaveX is written in C++ and Qt so that should be the easiest to actually port over to Linux. The only issue that I can think of is NI-VISA. I'm just wondering if the whole thing could be dropped and if EasyWaveX could just use regular TCP sockets instead.

author: tautech
author_rank: Super Contributor
timestamp: May 14, 2021, 11:58:55 am
content: Chatted with a beta tester today whom is a Linux guru and the mention of what you'd done with Wine and asking him to check EasySpectrum and EasyPower functionality was likened to kicking him in the gonads.However he was right that everything is going to webserver but currently EasyWaveX has a little feature set of its own for the current range of SDG's but SDG7000 might change that however it's likely to be out of the hobbyists budget.Above my pay grade what you've done but watching with great interest as a Windows user.

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 12:05:30 pm
content: I had to install the .NET Framework 3.5 SP1 and mfc420 and then it worked.I installed it via winetricks:Code:winetricks dotnet35sp1

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 12:07:48 pm
content: EasyPower also seems to work.

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 12:12:13 pm
content: EasyDMM also seems to work, but I was not able to put my SDM3055 back into local mode after I closed the application. I had to reboot it.

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 12:45:05 pm
content: Quote from: tautech on May 14, 2021, 11:41:53 amTo sum it up, EasyWaveX, EasyScopeX, EasyDMM and EasyPower all seem to work on Linux via Wine.More testing needed to check all the functionality these apps provide.I updated the guide in the first post to include the all four applications that I tested.I do not have more devices to test for now.In a few months I might get a Siglent DC load and then I can test that one too.

author: szszoke
author_rank: Regular Contributor
timestamp: May 14, 2021, 12:52:17 pm
content: Quote from: tautech on May 14, 2021, 11:58:55 amIt's good that they are moving things to a webserver, however I wish they would hire professionals to do the UI. The web interface has really bad UX on my SDS1104X-E.Granted, I am very biased because I build web applications (not websites) for a living.As a hobbyist it is highly unlikely that I will be able to justify anything beyond the next level up compared to what I have now. Even if they move completely to web UIs, that won't affect me unless they backport those solutions to the entry level devices.I was actually thinking that much of the UI could be implemented via client-side JavaScript and unless there is a storage space limitation, we should be able to replace/extend the built-in web UI on the SDS1104X-E.

author: knulpi
author_rank: Newbie
timestamp: March 23, 2024, 05:52:00 pm
content: For anyone stumbling across this, wondering how to get this thing running on newer versions of wine.I got the "recent" EasyScopeX running using Bottles on Flatpak, on a Kubuntu 23.10 machine.I attached the Bottles config (rename to yml), but a rough guide:Use caffe runnerInstall dotnet35 dotnet35sp1 (setup might fail, does not matter) dotnet452 dotnet461 dotnet462 vcredist6 vcredist6sp6Use Windows 7 as base OSInstall NI-VISA 5.4 (NOT 5.4.1) runtimeInstall EasyScopeXLaunch and use VX11 with the IP of the scope as connectionGood luck :3

author: cag63
author_rank: Newbie
timestamp: March 24, 2025, 04:14:48 pm
content: The guide below is an update of the excellent guide by szszoke in the original post. I was able to get the latest versions of EasyScopeX, EasyWaveX and EasyPowerX to work under the latest stable version of wine (v 10.0) and with NI-VISA 2025Q1. I also installed EasyPower and EasyDMM.EasyScopeX, EasyWaveX, EasyPowerX and EasyPower connect to their instruments via Ethernet, but not via USB.I don’t have a Siglent DMM, so I have not tested the connection of EasyDMM with the instrument. The application does install without errors and the user interface comes up.Software VersionsUbuntu 24.04 LTS, Noble Numbat, aka noble (I chose Ubuntu because it is the only Linux distro that is officially supported by Kicad)NI-VISA for Windows 2025Q1wine version 10.0 from winehq for noblewinetricks 20240105-2EasyPowerX 1.0.2EasyWaveX 1.1.0.23R11EasyScopeX 1.01.02.01.22_ENEasyPower 1.01.01.01.20_ENEasyDMM 1.02.02.03_ENTest equipment used for validationSiglent SDG2042X waveform generator (hacked to SDG2122X)Siglent SDS1104X-E oscilloscope (hacked to SDS1204X-E)Siglent SPD3303X-E power supply (hacked to SPD3303X)The test equipment was connected to a network switch together with the computer on which the respective EasyTool were running.DisclaimerUse at your own risk! This guide comes without any warranty, express or implied. If you use part or the whole of this guide, you agree that I, the author of this guide, am not responsible for any direct, indirect, incidental, consequential, or special or punitive damages, nor for any loss, including loss of profits and loss of data,Install WineThe instructions to install the latest stable release of wine are found here:https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu.EasyPowerX is a 64-bit app. The other ones are 32-bit apps. I believe the 32-bit architecture has to be enabled, as per the instructions at winehq.Code:sudo dpkg --add-architecture i386The latest stable version of wine (10.0) is not in the noble repository. Add the winehq repository to apt.The /etc/apt/keyrings directory already existed. I skipped the creation of this directory.Download and add the repository key:Code:wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key -Make a note of your distribution name (note that mine is noble, yours could be different). Look for the line with either UBUNTU_CODENAME or VERSION_CODENAME. If both are present, use the name after UBUNTU_CODENAME.Code:cat /etc/os-releaseAdd the repository. This command is for Ubuntu noble. Check the winehq instructions if your version is different.Code:sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sourcesUpdate the package information:Code:sudo apt updateInstall wine:Code:sudo apt install --install-recommends winehq-stableOnce installation is complete, you can check the installed version with:[Code:wine –versionIf winetricks is not installed, install it with:Code:sudo apt install winetricksInstall 32-bit versions of libvulkan and libglThe NI-VISA installer requires the 32-bit variant of libvulkan and libgl. If they are not already installed, install them.If you have not done this already, you may need to do it now:Code:sudo dpkg --add-architecture i386Code:sudo apt updateInstall the libraries:Code:sudo apt install libvulkan1:i386Code:sudo apt install libgl1:i386Create the wineprefixEdit the line below as required with your chosen wineprefix:Code:export WINEPREFIX=$HOME/.local/share/wineprefixes/EasyToolsEasyPowerX is a 64-bit app and requires a 64-bit wineprefix. This is default with later versions of wine, so there is no need to set WINEARCH=win64. EasyScopeX, EasyWaveX, EasyPower and EasyDMM are 32-bit apps and will work in a 64-bit wineprefix. EasyScopeX require .NET 4.6.2 and MFC42. These are not installed by default. Ignore errors thrown by the installation of dotnet frameworks. The NI-VISA installer needs the corefonts. Installing dotnet462 takes time: it install dotnet40, dotnet45, dotnet46, dotnet461 and dotnet462.Code:winetricks -q dotnet462 mfc42 corefontsInstalling dotnet462 changes the version of the wineprefix to win7. Set it to win10.Code:winecfg -v win10Install NI-VISADownload the latest NI-VISA for Windows fromhttps://www.ni.com/en/support/downloads/drivers/download.ni-visa.html. Choose Install Offlineunder theDownloadbutton. This will download an ISO image file.Mount the NI-VISA ISO file. The ISO file was generated with Rock Ridge extensions and the Unix permissions were set to 000, so none of the directories and files are accessible and the filesytem is read-only, so the permissions can't be changed. Thenorockoption tells mount to ignore the Rock Ridge permissions in ISO file. The Rock Ridge permissions are ignored by Windows, so this issue is not seen on Windows.Code:sudo mkdir <your mount point>Code:sudo mount -o norock $HOME/Downloads/ni-visa_25.0.0_offline.iso <your mount point>Launch the NI-Visa installer. Accept the licence agreements and install the optional packages of your choice. I kept the default list. You can probably uncheck all options packages.The packages can be uninstalled with the NI installer.Code:Wine <your mount point>/Install.exeReboot.Install the EasyToolsDownload the chosen EasyTools, extract the zip files, and run the installers.Code:wine $HOME/Downloads/EasyscopeX_V1.01.02.01.22_EN/EasyScopeX_setup_P22.exeCode:wine $HOME/Downloads/EasyWaveX_1.1.0.23R11_EN/EasyWaveX_setup.exeCode:wine $HOME/Downloads/EasyPower_V1.0.2/EasyPowerX_setup.exeCode:wine $HOME/Downloads/EasyDMM_1.01.02.01.03_EN/EasyDMM_1.02.01.03_EN/EasyDMM_setup.exeCode:wine $HOME/Downloads/EasyPower_V1.01.01.01.20_EN/EasyPower_V100R001B01D01P20.exeNOTEThe Control Panel Menu help page in EasyWaveX does not load because it does not exist. There is no page for it in the EasyWaveX-EN.chm file and only a partial entry for it in the EasyWaveX_EN.hhc file (inside the EasyWaveX-EN.chm archive) and no entry for it in the EasyWaveX_EN.hhk file (inside the EasyWaveX-EN.chm archive). Windows ignores this entry, whereas EasyWaveX on wine shows it, but there is nothing to display if the page is selected.USB ConnectivityUSB connectivity does not work. It is possible to create a udev rule file to allow user access to the USB port, and EasyScopeX and EasyWaveX will see the instrument but will not connect to it. EasyPower and EasyPowerX do not see the instrument via USB even with a udev rule file.Example /etc/udev/rules.d/99-nibvisa_usbraw.rulesfile. Check withlsusbto make sure you have the right idVendor and idProduct.# Siglent SPD3303XSUBSYSTEM=="usb", ATTRS{idVendor}=="f4ec", ATTRS{idProduct}=="1430", MODE="0666"# Siglent SDG2122XSUBSYSTEM=="usb", ATTRS{idVendor}=="f4ec", ATTRS{idProduct}=="1102", MODE="0666"# Siglent SDS1202X-ESUBSYSTEM=="usb", ATTRS{idVendor}=="f4ec", ATTRS{idProduct}=="ee38", MODE="0666"