Yet Another Rigol DS1054Z Viewer

Tired of squinting at the small numbers on the oscilloscope display, [Alfred] aka [Gaze@] decided to take matters into his own hands and wrote yet another tool to remotely view images from a Rigol DS1054Z. At least that was the initial idea. But, it grew unexpectedly — as [Alfred] says, “the more the project turned out to be fun, the more it got out of hand”. We know the feeling well.

In addition to being able to simply view and export the screen, the program implements waveform measurements (we’re not sure if it is using the measurement ability of the ‘scope, or actually performing measurements in the program). And as you can see in the animated GIF of the program in operation over on the GitHub repository, the numbers are certainly clear and legible. His problem of squinting at the small screen has indeed been solved.

This is coded in Pascal (FPC Lazarus), but we weren’t able to browse the program because [Alfred] hasn’t posted the source code yet. It is written only for Linux, and he has tested it on Ubuntu, Debian, Fedora, and Manjaro. The project relies on Python, PyVisa, and gtk2, and talks to your DS1054Z over USB or LAN. The installation instructions are well documented, but as [Alfred] himself warns, if you encounter trouble arising from subtle dependency version conflicts, you may need to be a nerd and/or a pensioner with unlimited time on your hands to solve them. There is no users guide nor extensive help according to [Alfred]. However, simple hints might be found in hover text or by pressing F1. Disclaimers aside, this looks like an interesting project to try out.

As [Alfred] notes, there are many other tools available to fetch data and images from your Rigol oscilloscope. [Jenny List] wrote a two-part series on using Python to control your test instruments, and here’s an example of a simple Python script that does a screen grab. Do you have a favorite way to remotely operate your oscilloscope? Let us know in the comments below.

22 thoughts on “Yet Another Rigol DS1054Z Viewer

  1. I use labview/GPIB at work and python/GPIB at home; one advantage is I buy (at home) test instruments with damaged panels that nobody else wants and can run them via remote just fine. (Sometimes you can find ATE-specific power supplies that don’t even have a front panel for really cheap.)

  2. A very nice project!

    Reading the description underscores the disaster that Python has become. We have multiple versions installed on a given system. Software to manage multiple versions. Multiple versions of software to manage versions, and software to manage the multiple versions of software to manage multiple versions. Or something like that. And lame excuses why it all became thus.

    1. My take on this is that managing program dependencies and versions is just inherently complicated. Python does have a way to deal with this using venv and pyenv, and there are other approaches as well. I don’t think Python is particularly better or worse at this than other languages.

      1. I would say it is not the language, but the programmer and the framework that have the responsability to correctly organize and manage dependencies.

        Also, since the standard answer when one complains about software bloat is “hard disk space is cheap” , they could just compile the dependencies inside the executables. Waste (even) more space, but each program would have is correct dependencies bundled with it, with the bonus of helping when one wants to move the place where that program is installed .

  3. My biggest use for the PC interface is to get accurate measurements. Apparently DS1054Z only calculates the measurements over the data shown on the screen, which is decimated in a way that preserves visual look but not the mathematical properties. Here is an example where I’ve stopped the scope and zoom into the captured data – RMS reading changes by factor of 4: https://jpa.kapsi.fi/stuff/pix/noise_rms.png

    So far I’m using https://ds1054z.readthedocs.io/ to read data file from the scope and octave to analyse it, but it is slow – transferring full 24 Mpoints takes over 10 minutes.

    (For those considering buying a new scope, consider Siglent SDS1104X; it seems superior in this and other ways and has similar price.)

    1. It’s faster over ethernet, I was able to capture 24M points of data in 30 secs (4 channels at about 6MB per channel). Still not super quick but it was ok for my purposes.

        1. And years later, I found out why. By default pyvisa connects using the VXI11 protocol, the implementation of which is pretty slow on Rigol DS1054Z. Using a path of “TCPIP::scope::5555::SOCKET” for raw TCP connection works much faster. Though I had to also set “read_termination = ‘\n’, write_termination = ‘\n'” for it to work.

          With VXI11, downloading 1Mpoints took 54 seconds. With raw TCP it only took 2 seconds.

    1. Not dead by far, as is Delphi. It’s a modern programming language which is easy to use, while having all the power of C++ that you need.

      For GUI apps it’s really a good choice.

    2. Some well known software I’ve used that’s written in Pascal (e.g. Delphi or Free Pascal):
      Skype (originally 100%, now less so since MS put a helical thread through it)
      HelpNDoc
      Cartes du Ciel
      Beyond Compare
      PeaZip
      Total Commander

      https://en.wikipedia.org/wiki/Free_Pascal#Examples_of_software_produced_with_Free_Pascal
      https://delphi.fandom.com/wiki/Good_Quality_Applications_Built_With_Delphi

      Pascal’s not dead. But it’s also not cool to say so. Like listening to ABBA – sing along at the top of your voice (you know all the words anyways), but NEVER tell your friends you do it!

      Hope my friends aren’t reading this 8|

    3. Some well known software I’ve used that written in Pascal (e.g. Delphi or Free Pascal):

      Skype (originally 100%, now less sow since MS put a helical thread through it)
      Cartes du Ciel
      Total Commander
      Beyond Compare
      HeidiSQL
      Resource Hacker
      Altimum Designer
      HelpNDoc

      Pascal’s not dead, but it ‘s not cool to say so. Like listening to ABBA – you sing along (you know all the words anyways), but NEVER tell your friends!

      My last post with URLs as citations was not accepted by the HackADay Intelligence Agency.

  4. “My last post with URLs as citations was not accepted by the HackADay Intelligence Agency”

    No. It’s your browser playing tricks on you. Go buy yourself a new browser :)

    Back on topic: languages don’t die. And to whoever says “Ugh, $LANG”, I’d say those who blame the tool are just bad craftspeople ;-)

  5. Here’s my version written in C# for Windows 10 ;)

    https://www.microsoft.com/store/apps/9NPPVW8MWZW6

    More details at: https://ynformatics.com/2021/rigol-ds1000-ds1054-viewer-controller/

    It downloads a screen shot from the scope when something changes and then draws the trace waveforms on top to improve performance a bit.

    I completely empathise with the scope creep. This started out as a viewer, then I added menus, trace dragging, clipboard support…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.