Author Topic: ngscopeclient - Ultimate acquisition software / protocol decoder / debug tool ?  (Read 1853 times)

0 Members and 3 Guests are viewing this topic.

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
Hi folks,

@sslupsky recently made me discover the existence of ngscopeclient, a very promising software developed by Andrew Zonenberg : https://www.ngscopeclient.org/

As suggested here, 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, 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

And on popular demand, here is a link to the ngscopeclient Windows installer (zip password is 'ngscopeclient').

/!\ Please be aware that you need a Vulkan compatible GPU/video card 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 for a complete list of supported hardware.


Best,

Fredo.
« Last Edit: Yesterday at 10:03:43 pm by fredo_ »
 
The following users thanked this post: egonotto, thm_w, DaneLaw, Antonio90

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 6996
  • Country: ca
  • Non-expert
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:
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 
The following users thanked this post: egonotto

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
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) :
« Last Edit: September 11, 2024, 09:33:40 pm by fredo_ »
 
The following users thanked this post: egonotto, thm_w, Antonio90

Offline shabaz

  • Frequent Contributor
  • **
  • Posts: 346
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).
 
The following users thanked this post: egonotto, thm_w, fredo_

Offline qmichl

  • Newbie
  • Posts: 3
  • Country: de
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.
 
The following users thanked this post: fredo_

Offline NE666

  • Regular Contributor
  • *
  • Posts: 108
  • Country: gb
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.
« Last Edit: September 12, 2024, 07:51:14 am by NE666 »
 
The following users thanked this post: egonotto, Jacon, fredo_

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
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.
 
The following users thanked this post: egonotto

Offline egonotto

  • Frequent Contributor
  • **
  • Posts: 942
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
 

Offline macaba

  • Regular Contributor
  • *
  • Posts: 213
  • Country: gb
Try

cd build
cmake --build . -j4
 
The following users thanked this post: egonotto

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
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).
« Last Edit: September 12, 2024, 02:45:10 pm by fredo_ »
 
The following users thanked this post: egonotto

Offline egonotto

  • Frequent Contributor
  • **
  • Posts: 942
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
« Last Edit: September 12, 2024, 04:34:36 pm by egonotto »
 

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
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.
 
 
The following users thanked this post: egonotto

Offline egonotto

  • Frequent Contributor
  • **
  • Posts: 942
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
 

Offline shabaz

  • Frequent Contributor
  • **
  • Posts: 346
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):

Code: [Select]
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:

Code: [Select]
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).
 
The following users thanked this post: egonotto

Offline egonotto

  • Frequent Contributor
  • **
  • Posts: 942
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
 
The following users thanked this post: shabaz

Offline Antonio90

  • Frequent Contributor
  • **
  • Posts: 352
  • Country: es
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.
 

Offline fredo_Topic starter

  • Regular Contributor
  • *
  • Posts: 73
  • Country: fr
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.
 
The following users thanked this post: egonotto, Antonio90

Offline azonenberg

  • Contributor
  • Posts: 13
  • Country: us
    • Antikernel Labs
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)
 
The following users thanked this post: egonotto, 2N3055, DaneLaw, skander36, Antonio90, nomead, fredo_

Offline azonenberg

  • Contributor
  • Posts: 13
  • Country: us
    • Antikernel Labs
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 :)
 
The following users thanked this post: egonotto, 2N3055, Antonio90, fredo_

Offline azonenberg

  • Contributor
  • Posts: 13
  • Country: us
    • Antikernel Labs
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.
 
The following users thanked this post: egonotto, 2N3055, Antonio90

Offline Kean

  • Supporter
  • ****
  • Posts: 2194
  • Country: au
  • Embedded systems & IT consultant
    • Kean Electronics
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.
 
The following users thanked this post: Antonio90, fredo_

Offline Antonio90

  • Frequent Contributor
  • **
  • Posts: 352
  • Country: es
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.





 

Offline azonenberg

  • Contributor
  • Posts: 13
  • Country: us
    • Antikernel Labs
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.
 
The following users thanked this post: 2N3055, Antonio90

Offline Antonio90

  • Frequent Contributor
  • **
  • Posts: 352
  • Country: es
Then the terminal just returns "ERROR: Unknown scope type"
 

Offline Antonio90

  • Frequent Contributor
  • **
  • Posts: 352
  • Country: es
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.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf