Released:
Control of HP/Agilent/Keysight MSO-X/DSO-X 3000A Oscilloscope through python via PyVisa
Agilent has a Programmer's Reference which is inteded for users of the RS-232 and GPIB add-ons (there is no official support for using the USB port outside of Scope Connect). This document has been recently updated and contains lots of detail on the command set. Tandem with Agilent’s mixed signal oscilloscopes (MSOs) to provide measurements never before possible. Oscilloscope Tools are supported on Agilent Infiniium (DSO/ MSO8000, DSO/MSO9000 and DSO/DSA90000), InfiniiVision (MSO and DSO5000, 6000, and 7000), in addition to the Agilent DSO3000. Locate repetitive phenomena with repetition interval.
- Standard: USB Host & Device, LAN, VGA, Optional GPIB O Standard: USB Host & Device, Optional: LAN, VGA, GPIB Display P 9 inch O 8.5 inch Warranty P 3 year on scope 1 year on probes O 3 year on scope 90 days on probes Tektronix MDO3000 Agilent MSO/DSO3000 X-Series Tektronix MDO3000 Agilent MSO/DSO3000 X-Series Spectrum signal comparison.
- Control of HP/Agilent/Keysight MSO-X/DSO-X 3000A Oscilloscope through python via PyVisa. Using my previous work on dcps as a guide, this is intended to be a generic package to control various Oscilloscopes.
- Agilent's Electronic Measurement business is now Keysight Technologies. Visit www.keysight.com. The following is a partial list of Keysight product numbers that were formerly part of Agilent.
Project description
Control of HP/Agilent/Keysight MSO-X/DSO-X 3000A Oscilloscope through python via PyVisa
Using my previous work on dcps as a guide, this is intended to be ageneric package to control various Oscilloscopes. However, it isexpected that very few oscilloscopes share the same commands so startoff as a python Class specifically for the MSO-X/DSO-X 3000AOscilloscope. So will start targeted toward that family ofoscilloscope with a common SCPI.py Class. If it proves useful forother oscilloscopes, then will create a new project but at least thisone would have started with that in mind.
It may also work on the MSO-X/DSO-X 2000A oscilloscopebut I have not looked into the differences to know for sure. Try itout and let me know.
Like dcps, this will use the brilliant PyVISA python package alongwith the PyVisa-PY access mode which eliminates the need for the (verybuggy) VISA library to be installed on your computer.
To install the msox3000 package, run the command:
Alternatively, can add a path to this package to the environmentvariable PYTHONPATH or even add the path to it at the start of yourpython script. Use your favorite web search engine to find out moredetails. If you follow this route, you will need to also install allof the dependant packages which are shown below under Requirements.
Even better, msox3000 is on PyPi. Soyou can simply use the following and the required dependancies shouldget installed for you:
Requirements
Agilent Dso6104a
- python
- pyvisa no longer supports python 2.7+ so neither does this package - use older version of MSOX3000 if need python 2.7+
With the use of pyvisa-py, should not have to install the NationalInstruments VISA driver.
Features
This code is not an exhaustive coverage of all available commands andqueries of the oscilloscopes. The features that do exist are mainlyones that improve productivity like grabbing a screen hardcopydirectly to an image file on a computer with a descriptive name. Thiseliminates the need to save to a USB stick with no descriptive name,keep track of which hardcopy is which and then eventually take the USBdrive to a computer to download and attempt to figure out whichhardcopy is which. Likewise, I have never bothered to use signallabels because the oscilloscope interface for adding the labels wasprimitive and impractical. With this code, can now easily send labelsfrom the computer which are easy to create and update.
Currently, this is a list of the features that are supported so far:
- The only supported channels are the analog channels, '1', '2', etc., as well as 'POD1' for digital 0-7 and 'POD2' for digital 8-15
- Reading of all available single channel measurements
- Reading of all available DVM measurements
- Installing measurements to statistics display
- Reading data from statistics display
- Screen Hardcopy to PNG image file
- Reading actual waveform data to a csv file including for 'POD1' and 'POD2'
- Saving oscilloscope setup to a file
- Loading oscilloscope setup from saved file
- Issuing Autoscale for channel(s) for all analog as well as 'POD1' and 'POD2'
- Screen Annotation
- Channel Labels for only the analog channels
It is expected that new interfaces will be added over time to controland automate the oscilloscope. The key features that would be good toadd next are: support for Digital/Math/etc. channels, run/stopcontrol, trigger setup, horizontal and vertical scale control, zoomcontrol

Channels
Almost all functions require a target channel. Once a channel is passed into a function, the object will remember it and make it the default for all subsequence function calls that do not supply a channel. The channel value is a string or can also be a list of strings, in the case of setupAutoscale(). Currently, the valid channel values are:
- '1' for analog channel 1
- '2' for analog channel 2
- '3' for analog channel 3 if it exists on the oscilloscope
- '4' for analog channel 4 if it exists on the oscilloscope
- 'POD1' for the grouping of digital channels 0-7 on a MSO model
- 'POD2' for the grouping of digital channels 8-15 on a MSO model
Usage and Examples
The code is a basic class for controlling and accessing thesupported oscilloscopes.
The examples are written to access the oscilloscope overethernet/TCPIP. So the examples need to know the IP address of yourspecific oscilloscope. Also, PyVISA can support other accessmechanisms, like USB. So the examples must be edited to use theresource string or VISA descriptor of your particulardevice. Alternatively, you can set an environment variable, MSOX3000_IP tothe desired resource string before running the code. If not usingethernet to access your device, search online for the proper resourcestring needed to access your device.
For more detailed examples, see:
A basic example that installs a few measurements to the statisticsdisplay, adds some annotations and signal labels and then saves ahardcopy to a file.
Taking it Further
This implements a small subset of available commands.
For information on what is possible for the HP/Agilent/Keysight MSO-X/DSO-X3000A, see theKeysight InfiniiVision3000 X-Series Oscilloscopes Programming Guide
For what is possible with general instruments that adhere to theIEEE 488 SCPI specification, like the MSO-X 3000A, see theSCPI 1999 Specificationand theSCPI Wikipedia entry.
Contact
Old unit 6 agendamrs. colvilles math class. Please send bug reports or feedback to Stephen Goadhouse
Release historyRelease notifications | RSS feed
0.4.0
Agilent Dso1102b
0.2
0.1
Download files
Download the file for your platform. Autodesk revit architecture for mac free download. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size msox3000-0.4.0-py3-none-any.whl (20.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes |
Filename, size msox3000-0.4.0.tar.gz (26.2 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for msox3000-0.4.0-py3-none-any.whl
Algorithm | Hash digest |
---|---|
SHA256 | b9717a03d7074004ac695191ae878b921e893eb7520032658ccf0bc2c1bc390e |
MD5 | 7472a53119765247a936af95ad256889 |
BLAKE2-256 | 95f5b972332e64b371d17dcf49949b96e929c64eaf9716f158e9bac64172a7d4 |
Hashes for msox3000-0.4.0.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | f27581686cb8ef5f657726548abdbf2067b6fb149a41d63a29e0523623cca0d6 |
MD5 | 98ce90f2699fec65146390902db0022d |
BLAKE2-256 | f6489b239261361f7c1b4c09abd4d33eb760a24352860443a10a3268362760b4 |
