Screenshots over USB from Agilent DSO-X 3014A

The Agilent (now known as Keysight) oscilloscopes of the 2000X and 3000X series have a built-in USB device interface which allows them to be controlled from a USB host capable PC. It is implemented as a USB Test & Measurement Class Device (USBTMC) and is usually used by National Instruments implementation of the Virtual Instrument Software Architecture (VISA).

However there exists free alternatives such as pyvisa/pyvisa-py for Python. These allow Python to communicate with SCPI (Standard Commands for Programmable Instruments) compatible devices over RS232/TCP-IP/USB. The Agilent 2000X/3000X series oscilloscopes provide the :DISPlay:DATA? to retrieve the currently view display data as a screenshot. So I wrote a small Python script to get the data and write it to a PNG file. You can download it here:

The make a screenshot ask the script to show all connected devices by

./ --list                                                                      

Select the appropriate device out of the list and ask it for a screenshot by

./ --device USB0::2391::6054::Unknown::0::INSTR screenshot.png

You will receive something like

Screenshot Example

Screenshot Example

. I'm using this scripts under Linux and OS X, but they should work on Windows as well.

5 thoughts on “Screenshots over USB from Agilent DSO-X 3014A

  1. Is there a special driver neccessary? I connected a DSOX2024A, no driver installed for USB\VID_0957&PID_1796\MY59125509 and the script says:

    C:\temp>python --list
    no devices found

  2. I'm having some issues with assignment of the save location could you give any tips? i am just getting
    'filename must be specified'

Leave a Reply

Your email address will not be published. Required fields are marked *

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