Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Github pklaus/ds1054z PyPI Package


This package allows you to connect to your Rigol DS1054Z oscilloscope via Ethernet. It comes with a versatile command line tool.

Off course, you can also use it to control the scope with your own script by using the API this package has to offer.

While this software is named after the entry level oscilloscope DS1054Z, I believe there is no reason it wouldn't work with just any scope of the DS1000Z and MSO1000Z series by Rigol:

  • DS1054Z
  • DS1074Z
  • DS1104Z
  • DS1074Z-S
  • DS1104Z-S
  • MSO1074Z
  • MSO1104Z
  • MSO1074Z-S
  • MSO1104Z-S


  • Discovering your scope via mDNS / DNS-SD
  • Saving Screenshots (incl. adjustable dimming of on-screen controls)
  • Running / stopping the scope
  • Acquiring waveforms
  • ... more to come!


The installation is dead simple:

pip install ds1054z[savescreen,discovery]

ds1054z depends on python-vxi11 which should automatically get installed along with itself.

For more information on the installation, please consult the installation section of the package documentation.

Recommended Firmware

Older versions of the oscilloscope's firmware have many issues. The VXI-11 connection could be unstable or commands might return unexpected data. Specifically, I'm recommending version 00.04.04.SP3 (alias published on 2017-02-08.


Command Line Tool

This package installs a versatile command line (CLI) tool called ds1054z. You can use it to save the screen of your scope, for example:

ds1054z save-screen --overlay 0.6

As a result, a file like this will be saved to your current working directory:

oscilloscope screenshot

You can find out more ways to use the CLI tool with ds1054z --help or by reading the manual.


If you're into Python programming, use the DS1054Z class in your own code:

from ds1054z import DS1054Z

scope = DS1054Z('')
print("Connected to: ", scope.idn)

print("Currently displayed channels: ", str(scope.displayed_channels))