I have an Agilent 33220A Function generator, it has USB and Network capability. I would like to control the device using the USB cable forgoing more complex and insecure networking options. Is there anything out there that can provide control for this device? or, is there any way to find out the USB commands for the device?
Whether using USB or Ethernet, you can use Standard Commands for Programmable Instruments (SCPI) to control the Keysight (formerly Agilent) 33220A function generator. The SCPI commands for the 33220A function generation are listed in chapter 3 of the 33220A User's Guide.
The 33220A, like most test instruments, communicates using USB device class USBTMC (USB Test & Measurement Class). Below are a links to controlling USBTMC instruments using different programming languages:
- Mathworks MATLAB — Closed-source
- National Instruments LabVIEW — Closed-source
- Python — open-source
- Go — open-source
- gotmc/usbtmc — Requires the libusb C library — This repo contains an example of communicating with the Agilent 33220A. Note: I am the author of this repository.
- gotmc/ivi — Provides a Go-based implementation of the Interchangeable Virtual Instrument (IVI) standard and includes a partially implemented IVI driver for the Keysight 33220A.
- gotmc/ivi-examples — Provides examples of using gotmc/ivi.