EEVblog Electronics Community Forum
Products => Test Equipment => Topic started by: fredo_ on September 10, 2024, 10:47:58 pm
-
Hi folks,
@sslupsky recently made me discover (https://www.eevblog.com/forum/testgear/looking-for-an-alternative-for-sigrok/msg5614983/#msg5614983) the existence of ngscopeclient, a very promising software developed by Andrew Zonenberg : https://www.ngscopeclient.org/ (https://www.ngscopeclient.org/)
As suggested here (https://www.eevblog.com/forum/testgear/looking-for-an-alternative-for-sigrok/msg5621199/#msg5621199), I'm starting a new topic to discuss about this amazing tool.
As you may know I spent quite some time working on Sigrok drivers for Siglent SDS HD and Rigol DHO scopes (https://www.eevblog.com/forum/testgear/new-sigrokpulseview-hardware-support-(siglent-sds-hd-rigol-dho800-)/), and I'm currently in contact with Sigrok maintainers to have these two drivers integrated to the next release.
So when I heard about ngscopeclient I had to take a look and see what it was capable of :popcorn:
I must say that there is a bit of a learning curve to move from Sigrok/Pulseview to ngscopeclient, but it is an incredibly powerful tool (and I barely scratched the surface) !
Well, the leopard cannot change its spots, so I ended up working with Andrew to add support for Rigol DHO and Siglent SDS HD models to ngscopeclient :-DD
If this is of any interest, just let me know and I'll see with Andrew if we can make a binary distribution available to you guys.
Attached is a screenshot of my DHO804 used to acquire an RS232 test signal on ngscopeclient with associated decoder and eye-pattern visualization.
Update with link to ngscopeclient Windows Installer (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761)
And on popular demand, here is a link to the ngscopeclient Windows installer (zip password is 'ngscopeclient') (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761).
/!\ Please be aware that you need a Vulkan compatible GPU/video card (https://www.ngscopeclient.org/manual/GettingStarted.html#x5-170003.1) to run ngoscopeclient. /!\
09/21/2024 Update (dc26783)
Siglent SDS: Added support for Logic Analyzer.
09/17/2024 Update (d2a1a2f)
- Siglent SDS: Support for SDS800X HD, SDS1000X HD, SDS2000X Plus, SDS2000X HD, SDS3000X HD, SDS5000X, SDS6000A/L/Pro, SDS7000A models
- Rigol DHO: Support for DHO800/900, DHO1000 and DHO4000.
- Other hardware: see ngscopeclient site (https://www.ngscopeclient.org/) for a complete list of supported hardware (https://www.ngscopeclient.org/hardware).
Best,
Fredo.
-
Looks like it supports a bunch of high end scopes, surprised it hasn't been mentioned here before. I guess partially due to setup difficulty.
Found a semi-demo video of someone using it:
https://www.youtube.com/watch?v=khO-bQKenL8 (https://www.youtube.com/watch?v=khO-bQKenL8)
-
Yes, for now you have to build it from the source code, which obviously is a barrier for a lot of people !
But if you are interested, I can check with Andrew if he is OK with me sharing a Windows installer here.
ngscopeclient is evolving very fast, there are commits on the codebase almost everyday, and the Pull Requests I made where merged within a day or two each time, Andrew is very reactive and helpful.
For a more complete video, check his YT channel (at 20'30) :
https://www.youtube.com/watch?v=E5Nid3gs4Xs&t=1230 (https://www.youtube.com/watch?v=E5Nid3gs4Xs&t=1230)
-
It looks interesting, so I gave it a shot on Windows.
I thought I'd try connecting my (ancient non-programmable) PSU which I 'upgraded' with USBTMC based on Rigol PSU programming manual.
Unfortunately, further down in the ngscopeclient user manual, it appears USBTMC is currently not supported on Windows.
(I often use USBTMC instead of LAN; I'll have to give it a try with LAN some other day, or try building on Linux).
-
I packaged it for openSuSE Tumbleweed here https://build.opensuse.org/package/show/home:frank_kunz/ngscopeclient, it works for me on a MSO5000, no warranty.
-
If this is of any interest, just let me know and I'll see with Andrew if we can make a binary distribution available to you guys.
Firstly, yes. It does seem a potentially interesting alternative to what is currently available for some hardware. And certainly many hours of work went into it thus far, so credit where credit is due.
However, I think it would lend more credibility and indeed traction to the project were the maintainer(s) to invest their time in adding build actions to their repo such that appropriate binary assets were automatically generated for release branches (and maybe a 'nightly'), rather than in (or you, or others) making ad-hoc binary distributions.
-
However, I think it would lend more credibility and indeed traction to the project were the maintainer(s) to invest their time in adding build actions to their repo such that appropriate binary assets were automatically generated for release branches (and maybe a 'nightly'), rather than in (or you, or others) making ad-hoc binary distributions.
Yes, absolutely right, it just me rushing it a bit, but packaging is intensively discussed by developers involved in the project on Discord.
-
Hello,
I wanted to install it in Windows, but the last step doesn't work.
In GettingStarted step 7 they say:
"
All following steps are to be done in a UCRT64 shell.
7.
Build manually:
cd scopehal-apps
mkdir build
cd build
cmake ..
make -j4
"
This works well up to and including cmake .
But the command make -j4 does not work.
At first it did not find make. I installed it with pacman -S make. Now the error message appears:
$ make -j4
make: *** No targets specified and no makefile found. Stop.
Has anyone translated it for Windows yet?
Does anyone have any idea what I should do?
Best regards
egonotto
-
Try
cd build
cmake --build . -j4
-
Has anyone translated it for Windows yet?
Yes I have a working Windows binary and installer, I'm just waiting for Andrew's approval, out of courtesy, before sharing it here.
Does anyone have any idea what I should do?
You have to use ninja (generated install doc is not up-to-date, but source doc is : https://github.com/ngscopeclient/scopehal-docs/blob/32aa18b0b511e0a32a1d27e461dfec637a4fb264/section-ng-gettingstarted.tex#L334).
-
Try
cd build
cmake --build . -j4
Hello,
Thanks it compiles now, but it's taking quite a while.
Best regards
egonotto
PS: Now it's ready. But my SDS3000X HD is not recognized correctly via LAN.
ERROR: Unknown scope type
-
PS: Now it's ready. But my SDS3000X HD is not recognized correctly via LAN.
ERROR: Unknown scope type
Sorry I should have told you that egonotto, I did not add SDS3000X HD to the Siglent driver yet, it's next on my TODO list.
I'll let you know when it's done and merged to ngscopeclient repo.
-
PS: Now it's ready. But my SDS3000X HD is not recognized correctly via LAN.
ERROR: Unknown scope type
Sorry I should have told you that egonotto, I did not add SDS3000X HD to the Siglent driver yet, it's next on my TODO list.
I'll let you know when it's done and merged to ngscopeclient repo.
Hallo,
Thank you, no problem. I just wanted to see if the program would run and then saw that Siglent was included and entered the IP of my SDS3000X HD.
Best regards
egonotto
-
Hello,
I wanted to install it in Windows, but the last step doesn't work.
In GettingStarted step 7 they say:
"
All following steps are to be done in a UCRT64 shell.
7.
Build manually:
cd scopehal-apps
mkdir build
cd build
cmake ..
make -j4
"
This works well up to and including cmake .
But the command make -j4 does not work.
At first it did not find make. I installed it with pacman -S make. Now the error message appears:
$ make -j4
make: *** No targets specified and no makefile found. Stop.
Has anyone translated it for Windows yet?
Does anyone have any idea what I should do?
Best regards
egonotto
Sorry I just saw this now : (
As someone mentioned earlier, using ninja resolved it. i.e. this worked for me (instead of the make command):
cmake -G "Ninja" ..
ninja
Also, for me it didn't initially run because I was missing the following in the PATH user variables, and it couldn't find some DLLs:
C:\msys64\ucrt64\bin
Once I added that to PATH, then it ran. But currently USBTMC isn't supported on Windows, so I'm going to find that quite limiting (I appreciate that it may not be an issue at all for most).
-
Hello,
thanks to all, the suggestion from macaba
“Try
cd build
cmake --build . -j4”
worked without any problems.
I was able to call the generated program without any problems.
Best regards
egonotto
-
Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
-
Hi Antonio90 ,
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
I think SDS800X HD support as not yet been merged to ngscopeclient (it is in scopehal git repo, but the ngscopeclient sub-module does not point to the latest commit).
You need to either wait for Andrew to update the dependency or to manually checkout master branch of scopehal repo.
-
Hi everyone, lead developer here :)
We have CI builds on GitHub that upload some install artifacts (see https://github.com/ngscopeclient/scopehal-apps/actions/runs/10834892744) but I think the MSI build is currently broken, we are actively working on that plus CPack-based deb/rpm packages in order to have things easier to get started for a v0.1 release.
There are a handful of really annoying dependencies that make packaging difficult which we're working on ripping out, things will get a lot easier once that's taken care of.
I and most of the core devs are on Linux so that's where the most dev/testing happens. We would love more Windows contributors to help improve platform support there (and MacOS); as of now there's a handful of users on each platform but not a lot in the way of steady ongoing contributions.
For USBTMC, we use the Linux kernel driver on Linux but I don't know what the status of "standard" drivers for USBTMC on Windows are. If your device has an Ethernet interface, you can use it from Windows no problem. Most of my focus has been on higher end gear used professionally in industry, which tends to all have Ethernet, so the lack of USBTMC Windows support is an annoyance but not our top priority (PRs will be very welcome if somebody wants to fix it for us, though!)
(Also, as of this post I've updated the scopehal dependency https://github.com/ngscopeclient/scopehal-apps/commit/6c264547b4ef492d9a3bb12ae8ec519384394292 so all of fredzo's stuff should be pulled in)
-
And yes, documentation has lagged a bit behind the state of code. We're a small project with limited developer resources and writing good docs takes time.
If anybody is interested in helping out, let me know :)
-
Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
I wonder if there's some weird setting on the scope to make it provide a full shell or something rather than just a raw SCPI command interface?
If you connect to the scope on the SCPI port, it should not send anything immediately.
If you then send "*IDN?" it should reply with something like "Siglent Technologies,SDL1020X-E,SDL13GCX6R0651,1.1.1.21R2".
If it sends any kind of command prompt or welcome banner or something that will confuse the driver as it's not supposed to be there. There might be a setting to turn this on/off, not sure.
-
Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
Are you sure you didn't accidentally type port 5024 instead of 5025?
According to the programming manual, port 5024 is the telnet port and would answer with "Welcome to ..." plus a ">>" prompt, then accept interactive SCPI commands.
As expected, port 5025 is meant for program control via socket without the prompts.
-
Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
I wonder if there's some weird setting on the scope to make it provide a full shell or something rather than just a raw SCPI command interface?
If you connect to the scope on the SCPI port, it should not send anything immediately.
If you then send "*IDN?" it should reply with something like "Siglent Technologies,SDL1020X-E,SDL13GCX6R0651,1.1.1.21R2".
If it sends any kind of command prompt or welcome banner or something that will confuse the driver as it's not supposed to be there. There might be a setting to turn this on/off, not sure.
Hello Andrew. Thank you very much for your help, and for developping the software. I got to know it through the Thunderscope project, which I have been following for a while, and it is truly impressive.
The oscilloscope sends a welcome banner when a Telnet connection is started with Putty, through port 5024. Before any command is sent, it prints:
"Welcome to the SCPI instrument 'Siglent SDS824X HD'"
I managed to get something like "Unknown serial number SDS824XHD" or similar, while alternating connections between Ngscopeclient and Putty, but haven't been able to reproduce it.
Now I only get this (image attached)
I'm already installing Linux, I want to try the AD2 too.
-
Hello Andrew. Thank you very much for your help, and for developping the software. I got to know it through the Thunderscope project, which I have been following for a while, and it is truly impressive.
The oscilloscope sends a welcome banner when a Telnet connection is started with Putty, through port 5024. Before any command is sent, it prints:
"Welcome to the SCPI instrument 'Siglent SDS824X HD'"
I managed to get something like "Unknown serial number SDS824XHD" or similar, while alternating connections between Ngscopeclient and Putty, but haven't been able to reproduce it.
Now I only get this (image attached)
I'm already installing Linux, I want to try the AD2 too.
Yeah you want to use 5025 which is the port for un-formatted raw SCPI remote control rather than telnet.
-
Then the terminal just returns "ERROR: Unknown scope type"
-
Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
Are you sure you didn't accidentally type port 5024 instead of 5025?
According to the programming manual, port 5024 is the telnet port and would answer with "Welcome to ..." plus a ">>" prompt, then accept interactive SCPI commands.
As expected, port 5025 is meant for program control via socket without the prompts.
Apologies, I got your post lost in between answering. You are right, I initially tried both and neither worked. I just assumed "Unknown trigger type" was a more promising error than "Unknown scope type" and kept trying there.
-
Hi Antonio90 ,
The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.
I think SDS800X HD support as not yet been merged to ngscopeclient (it is in scopehal git repo, but the ngscopeclient sub-module does not point to the latest commit).
You need to either wait for Andrew to update the dependency or to manually checkout master branch of scopehal repo.
This might be the case. Unfortunately I don't really know what I'm doing, just following documentation step by step, so I'll wait.
-
Then the terminal just returns "ERROR: Unknown scope type"
Try again with the latest version on git, should have the 800 series support merged?
-
Then the terminal just returns "ERROR: Unknown scope type"
Try again with the latest version on git, should have the 800 series support merged?
Thanks! Compiling now.
EDIT: Compiled and working (on Windows still). Thank you very much Andrew and @fredo_! Will test more tomorrow, it's already 1:45 AM here, and I need sleep. The "filter" section with the block programming interface is just genius BTW, really impressive piece of software.
-
it's already 1:45 AM here, and I need sleep..
Same here, time to go to bed!
-
Try
cd build
cmake --build . -j4
Hello,
Thanks it compiles now, but it's taking quite a while.
The "-j4" tells the compiler (ninja) to use 4 cores on your PC.
It is more than probable that your PC has more than 4 cores.
ninja by default uses all your available cores.
In short run "cmake --build ." without the "j" switch.
Please note that cmake in turn runs ninja => just run "ninja" as fredo_ suggested and advised in the yet unpublished doc mentioned by azonenberg
Best regards
egonotto
PS: Now it's ready. But my SDS3000X HD is not recognized correctly via LAN.
ERROR: Unknown scope type
Then the terminal just returns "ERROR: Unknown scope type"
Try again with the latest version on git, should have the 800 series support merged?
Yup it is merged and seems to work.
I just cloned and compiled from scratch and Siglent SDS824X HD is recognized ... I didn't try yet to really take a capture.
Wil let you know when I had it tested better.
-
Windows version has some sudden closes. Still a lot of work. Maybe the Linux version is more stable.
Anyway a notable and unique approach!
-
Windows version has some sudden closes. Still a lot of work. Maybe the Linux version is more stable.
Anyway a notable and unique approach!
We're very interested in crash reports as people try on different setups. If you can attach a debugger and get a stack trace of where it died, we can see if that sheds any light on the situation.
-
Windows version has some sudden closes. Still a lot of work. Maybe the Linux version is more stable.
Anyway a notable and unique approach!
We're very interested in crash reports as people try on different setups. If you can attach a debugger and get a stack trace of where it died, we can see if that sheds any light on the situation.
azonenberg, do you have a preferred debugger and/or na example for a debugger command?
I guess something available with MSYS2 (gdb?) can work?
-
Windows version has some sudden closes. Still a lot of work. Maybe the Linux version is more stable.
Anyway a notable and unique approach!
We're very interested in crash reports as people try on different setups. If you can attach a debugger and get a stack trace of where it died, we can see if that sheds any light on the situation.
Maybe I will find some time to setup a debugger, as I don't had to deal until now with MSYS (I'm not a programmer). Usually the message that remains in console are errors of communication with the scopes as in pics attached.
Sometime R&S scope (RTB2002) get stuck while the others works.
-
Update with link to ngscopeclient Windows Installer (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761)
And on popular demand, here is a link to the ngscopeclient Windows installer (zip password is 'ngscopeclient') (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761).
/!\ Please be aware that you need a Vulkan compatible GPU/video card (https://www.ngscopeclient.org/manual/GettingStarted.html#x5-170003.1) to run ngoscopeclient. /!\
09/17/2024 Update (d2a1a2f)
- Siglent SDS: Support for SDS800X HD, SDS1000X HD, SDS2000X Plus, SDS2000X HD, SDS3000X HD, SDS5000X, SDS6000A/L/Pro, SDS7000A models
- Rigol DHO: Support for DHO800/900, DHO1000 and DHO4000.
- Other hardware: see ngscopeclient site (https://www.ngscopeclient.org/) for a complete list of supported hardware (https://www.ngscopeclient.org/hardware).
Best,
Fredo.
-
Hi @fredo_
For Windows installer ngscopeclient msi package, I get this error on launch. An invalid path to fonts. It is repairable by users but you may want to correct this in source installer.
-
Oops, that's bad !
Thanks for the heads up, let me check that.
[Edit]
Well I was not able to reproduce the problem unless I have a <userdir>\AppData\Roaming\ngscopeclient\preferences.yml from a previous install that points to wrong font paths.
@skander36 can check if the error message was not due to a preferences.yml file existing before your installation (which would be the case if you previously tried your own build) ?
-
Hi, I don't have drive D in my computer. Also /Home/fborry is not from me.
Attached is preferences.yml.
What else can I check?
My build is launching without problems.
-
Hi, I don't have drive D in my computer. Also /Home/fborry is not from me.
Yeah that's the path of the source file (see "imgui__draw.cpp, line 2583" in your screenshot) on my build environnement (this is a debug build), not to be confused with the path to look the fonts for.
Maybe try and remove or rename your preferences.yml file and launch the installed ngscopeclient, it should fix the problem.
-
Hi, I don't have drive D in my computer. Also /Home/fborry is not from me.
Yeah that's the path of the source file (see "imgui__draw.cpp, line 2583" in your screenshot) on my build environnement (this is a debug build), not to be confused with the path to look the fonts for.
Maybe try and remove or rename your preferences.yml file and launch the installed ngscopeclient, it should fix the problem.
Ok, that was. Removing preferences.yml has allowed the installed version to launch. Now both instances can be launched.
Thank you!
-
Updated ngscopeclient Windows Installer (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761)
Here is an updated version of ngscopeclient Windows installer (zip password is 'ngscopeclient') (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761) including LA support for Siglent SDS HD scopes.
09/21/2024 Update (dc26783)
Siglent SDS: Added support for Logic Analyzer.
-
Updated ngscopeclient Windows Installer (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761)
Here is an updated version of ngscopeclient Windows installer (zip password is 'ngscopeclient') (https://drive.usercontent.google.com/download?id=1Dbj3_KWjZN4FCZunDZqatY3PWTK3Og_Z&export=download&confirm=t&uuid=4c417e07-e791-4dfa-84e7-b5ead6a99761) including LA support for Siglent SDS HD scopes.
09/21/2024 Update (dc26783)
Siglent SDS: Added support for Logic Analyzer.
Works for SDS824X HD analog channels; unfortunately I have no LA to play with.
-
The Rigol DHO1000 series have quite a rudimentary FFT implementation, which is a great shame as the frontend is quite good. It would be fantastic if ngscopeclient could implement FFT using raw data from scope and provide normal/peak/average spectrum - the features I miss the most on DHO1K.
-
We can do FFTs on input from any supported scope.
The FFT filter outputs only the FFT of the current input, but there are separate filters for peak holding and exponential moving average that can be applied to the output spectrum which in combination should give the behavior you want, I think.
-
Hi, I don't have drive D in my computer. Also /Home/fborry is not from me.
Yeah that's the path of the source file (see "imgui__draw.cpp, line 2583" in your screenshot) on my build environnement (this is a debug build), not to be confused with the path to look the fonts for.
Maybe try and remove or rename your preferences.yml file and launch the installed ngscopeclient, it should fix the problem.
Ok, that was. Removing preferences.yml has allowed the installed version to launch. Now both instances can be launched.
Thank you!
Yep you got hit by https://github.com/ngscopeclient/scopehal-apps/issues/707. We don't have a root cause but there's a fairly straightforward workaround we can do to at least avoid a crash when it happens. But there's a million other things I'm juggling and this one hasn't got to the top of the stack.
-
Wow! Thank you very much for sharing this here and providing the pre-complied versions. I tried it quickly with my own DHO804 and it worked! Definitely keeping an eye out for future development of this project.
-
hey, software looks amazing. thanks for thr windows installer. I used the windows installed and got it running, however get issues when trying to add my rigol DS1054 scope over LAN. I'm able to ping thr scopes IP and it's good, I can get IDN? using python pyvisa too so seems like connection with my PC is good. However when I try to add it using ngscopeclient, I get three bad IDN warnings and then it terminates
I used the windows installer and it's the ngscopeclient 0.1-dev+dc26783 [DEBUG BUILD]
amI using the wrong version or something?
the path I used is scope IP : 5555
manual says rigol port is 5555
Edit: I tried with my Teledyne LeCroy scope via vicp and its successful. So could this be a Rigol or LAN issues?
-
Hi MD1071,
Thank you for testing and for the feedback :-)
Yes for Rigol you should be good with lan transport and ip:5555 for Path.
But the log message seems to indicate that there is no network connection with the scope :-/
Can you try and launch ngscopeclient with the following command line ?:
ngscopeclient.exe --debug --trace SCPISocketTransport --trace RigolOscilloscope
-
yeah sure I can try that and let you know