N7SD logo

Agilent USB-GPIB 82357B on Windows11


1st version 10/07/2026

General

This guide describes how to install and use an Agilent USB-GPIB Interface 82357B adapter on Windows 11 using Keysight IO Libraries Suite.

The Agilent USB-GPIB 82357B can be used simply by installing the Keysight IO Libraries Suite software package.
The installation is straightforward and does not require any adapter-specific driver modifications.

Several standard graphical utility applications are installed together with the library, allowing you to easily check the operation of the GPIB adapter and connected GPIB devices.

Some simple examples of how to use these utilities are provided below for reference.

Configurations

HP EliteDesk 800

  • i5-10600K – 16GB RAM – Intel UHD Graphics 630 (onboard)
  • Windows 11-Pro 25H2, Clean-installation
  • IOLibrariesSuite-21.3.293, Python 3.14.7

HP ENVY 17t-s100

  • Intel Core i7-6700HQ – 16 GB RAM – Intel HD Graphics 530
  • Windows 11-Home 25H2
  • IOLibrariesSuite-21.4.204, Python 3.14.5

USB-GPIB Adapter: Agilent USB-GPIB Interface 82357B
This adapter was purchased as a used item from an eBay seller named “zecenke-5” for $50 in June 2026.

AGI-82357B-IMG_8681
Top view with USB cable
AGI-82357B-Bottom View
Bottom View
AGI-82357B Side View
Side View
AGI-82357B-GPIB-Connector
GPIB Connector
AGI-82357B-Label
Label (the Barcode came off when I peeled off
34401A-Front View
HP 34401A Multimeter (GPIB address = 13)
NUC and USB Powered hub
Intel NUC13ANK and powered USB hub

“Keysight IO Libraries Suite” Installation

1. Download IO Libraries Suite

https://www.keysight.com/us/en/lib/software-detail/computer-software/io-libraries-suite-downloads-2175637.html

Keysight IO Libraries Suite site

Press this button to download

Download button

File:

Installer file information

2. Installation

Disconnect the GPIB adapter’s USB cable from the PC before starting the installation.

Double-click the application in the Downloads folder.
Next, Accept and Next, Next, Next.
The installation takes about 5 minutes.
Next, Finish.

The drivers and four applications were installed.

Keisight Suite app icons

Reboot Windows

3. Check

Connect the 82357B to the GPIB instrument and turn on the instrument.
Connect the USB cable to a USB port on the PC.

3-1. Check Device Manager

The 82357B should appear in Device Manager as shown below:

Device Manager 82357B

3-2. Check LEDs on 82357B

Immediately after the USB cable is connected, only the FAIL (red) LED lights up for a few seconds.
Then, the READY (green), FAIL (red), and ACCESS (green) LEDs all remain lit for about 10 seconds.
Finally, only the READY LED remains lit, indicating the normal standby state in which the device is ready for use.

AGI-gpib-LED-flow

The installation of Keysight IO Libraries Suite was completed.

The drivers for the 82357B, along with several utility programs, have now been installed. The 82357B is now ready for use.

3-3. Precautions When Using Multiple GPIB Adapters

  1. If you subsequently install NI-488.2, you can also use an NI GPIB-USB-HS on the same operating system and switch between the two GPIB adapters as needed.
  2. When both NI-488.2 and Keysight IO Libraries Suite are installed, the Keysight 82357B may be assigned to GPIB1 instead of GPIB0. Check the VISA resource string in “Keysight Connection Expert” before running the Python program. In my test, using the wrong GPIB interface number resulted in the following error:
    pyvisa.errors.VisaIOError:VI_ERROR_ALLOC Insufficient system resources…..

Keysight Utility Applications

1. View GPIB Devices with “Connection Expert”

Conection Expert icon

Keysight Connection Expert detects and displays the USB-GPIB adapter and GPIB devices such as DMMs.
This application is useful for checking the detected GPIB interface number (for example, GPIB0) and the GPIB address of each instrument (for example, 13).

Check the GPIB interface number. If it is GPIB1 instead of GPIB0, change the interface number in the Python source code accordingly.
The VISA resource string, such as GPIB0::13::INSTR, is used in Python applications.

Connection Expert screen

2. View GPIB Devices and Test Communication with “New Connection Expert”

New Connection Expert icon

This is the new version of Keysight Connection Expert.

This application is useful for checking the detected GPIB interface number (for example, GPIB0) and the GPIB address of each instrument (for example, 13).

Check the GPIB interface number. If it is GPIB1 instead of GPIB0, change the interface number in the Python source code accordingly.
The VISA resource string, such as GPIB0::13::INSTR, is used in Python applications.

2-1. Display GPIB Device List

The automatically detected USB-GPIB devices are displayed:

New Connection Expert screen -1

When connecting 3 devices:

New Connection Expert x3 detection

2-2. Action Dropdown List

An Action button is provided for each device in this version. Click the button to display the dropdown list.
Action button dropdown list:

Action Dropdown list

2-3. Test Communication with Action – Send & Read

Commands can be sent and responses can be viewed directly from the GUI.

Action – Send & Read sample:

New Connectio Expert Command IO

2-4. Useful HP 34401A Commands for Action - Send & Read

CommandDescriptionButton
*IDN?Queries the instrument identification information
HEWLETT-PACKARD,34401A,0,7-5-2
Send & Read
MEAS:VOLT:DC?Measures DC voltage and returns the measured value
received string: ‘+5.25970000E-05’
Send & Read
MEAS:VOLT:AC?Measures AC voltage and returns the measured value
received string: ‘+1.80423900E-03’
Send & Read
MEAS:RES?Measures resistance and returns the measured value
received string: ‘+1.00052360E+06’
Send & Read
CONF:VOLT:DCConfigures the DMM for DC voltage measurementSend
CONF:VOLT:ACConfigures the DMM for AC voltage measurementSend
CONF:RESConfigures the DMM for resistance measurementSend
READ?Performs a measurement using the current configurationSend & Read
*RSTResets the instrument to its default settingsSend
*CLSClears the instrument status registersSend

3. Capture Communication with “New IO Monitor”

New IO Monitor icon

Keysight New IO Monitor can capture the GPIB communication sequence.
IO Monitor captures GPIB communication at the software API level. It records calls to IO Suite and VISA functions, including commands, responses, parameters, and return values. It does not capture raw USB packets or electrical signals on the GPIB bus.

*IDN? command of Interactive-IO capture sample:

New IO Monitor IO capture screen sample

Measurement commands of Interactive-IO capture sample:

Measurement Interactive-IO capture sample

Python app dmm3-gui-graph-record.py capture sample:

dmm3-GUI-capture sample screen

The capture record can be stored to CSV file:

dmm3-GUI CSV file

4. Test Communication with “New Interactive IO”

New Interactive IO icon

New Interactive IO is essentially the Keysight IO Libraries Suite equivalent of ibtest on Linux.
It provides a simple way to verify communication with a GPIB instrument without writing a program.

How to use

  • Double-click the New Interactive IO icon.
  • Click the “Change Instrument” link in the left pane.
  • Select an instrument in the pop-up window and click Connect.

*IDN? command of New Interactive-IO sample:

New Interactive IO sample

Some commands and responses of New Interactive-IO sample:

New Interactive IO commands and responses

Test with Python and PyVISA

1. Install Python and PyVISA

1-1. Download Python and Install

Download Python from here: https://www.python.org/downloads/

Download Python button

Install

  • Choose version; in this example, I selected Python 3.13.
  • Update setting now? [y/N] y
  • Add commands directory to your PATH now? [y/N] y
  • Install CPython now? [Y/n] y

Check the installed Python version:

python --version
Python 3.14.7    (Updated automatically to 3.14)

✎ Note

Although I initially selected Python 3.13, the installed version was Python 3.14.7. This appears to have occurred because I answered y to “Update setting now?” during installation.

1-2. Install PyVISA

PyVISA is a Python library that provides access to VISA-compatible instruments.
Install PyVISA after installing Python:

python -m pip install pyvisa

2. Test GPIB Interactively with Python

Start the Python interactive mode with the following command:

python

You can send a query directly to the GPIB device and receive the response without creating a Python script file.

✎ Note

Change the GPIB Interface Number and GPIB Address to match your instrument.
The interface number is usually GPIB0, but it may be GPIB1 on Windows depending on your environment.
The GPIB address is 13 in the next sample.

Paste the following code at the >>> prompt:

import pyvisa
rm=pyvisa.ResourceManager()
inst=rm.open_resource('GPIB0::13::INSTR')
print(inst.query('*IDN?'))
inst.close()
rm.close()

Press Enter to execute the code. The instrument ID will then be displayed:

HEWLETT-PACKARD,34401A,0,7-5-2

Enter quit() to exit Python.


3. Python CLI app for single 34401A

3-1. File

File name: dmm1-cli.py
Download here: https://github.com/moriyasum/GPIB

✎ Note

Change the GPIB address in the source to match your instrument.
The interface number is usually GPIB0, but it may be GPIB1 on Windows depending on your environment.
The GPIB address is 13 in the next sample.

3-2. Execution:

python .\dmm1-cli.py

3-3. Output

Interface:  GPIB0 , GPIB address:  13
Instrument ID:  HEWLETT-PACKARD,34401A,0,7-5-2
0 DC Voltage = +3.65830000E-05 V
1 DC Voltage = +5.06870000E-05 V
2 DC Voltage = +4.25880000E-05 V
3 DC Voltage = +5.31860000E-05 V
4 DC Voltage = +4.21300000E-05 V

3-4. Python Source Code

import pyvisa
import time

# GPIB address, Interface number
adr = "13"
interface = "GPIB0"

# Open VISA
rm = pyvisa.ResourceManager()
dmm = rm.open_resource(f"{interface}::{adr}::INSTR")
dmm.timeout = 5000

# Read instrument ID
print("Interface: ", interface, ", GPIB address: ", adr)
print("Instrument ID: ", dmm.query("*IDN?").strip())

for i in range(5):   # set number of loop
    # Configure the DMM for DC voltage measurement
    dmm.write("CONF:VOLT:DC")

    # Take a measurement
    value = dmm.query("READ?")
    print(i, "DC Voltage =", value.strip(), "V")

    time.sleep(2)

# Close the instrument
dmm.close()
rm.close()

4. Python GUI Simple App for 1x 34401A

4-1. File

File name: dmm1-gui.py
Download here: https://github.com/moriyasum/GPIB

✎ Note

Change the GPIB address in the source to match your instrument.
The interface number is usually GPIB0, but it may be GPIB1 on Windows depending on your environment.
The GPIB address is 13 in the next sample.

4-2. Execution:

python .\dmm1-gui.py

4-3. Output

dmm1-gui-app screen

4-4. Python Source Code

import tkinter as tk
import pyvisa

# GPIB address, Interface number
adr = "13"
interface = "GPIB0"

# Open VISA
rm = pyvisa.ResourceManager()
dmm = rm.open_resource(f"{interface}::{adr}::INSTR")
dmm.timeout = 5000

# Read instrument ID
idn = dmm.query("*IDN?").strip()
# Set to Configure DC-V measurement mode
dmm.write("CONF:VOLT:DC")

# GUI
root = tk.Tk()
root.title("HP 34401A DC Voltage Monitor")
root.geometry("500x250")

running = False

voltage_text = tk.StringVar(value="-------- V")
status_text = tk.StringVar(value="STOPPED")


def measure():
    if not running:
        return

    try:
        voltage = float(dmm.query("READ?"))
        voltage_text.set(f"{voltage:.8f} V")
        status_text.set("RUNNING")
    except Exception as e:
        status_text.set("ERROR: " + str(e))

    if running:
        root.after(500, measure)


def start():
    global running

    if not running:
        running = True
        measure()


def stop():
    global running

    running = False
    status_text.set("STOPPED")


def close():
    dmm.close()
    rm.close()
    root.destroy()


tk.Label(
    root,
    text=idn,
    font=("Arial", 11)
).pack(pady=15)

tk.Label(
    root,
    text=f"Interface:{interface}   GPIB Address:{adr}",
    font=("Arial", 12)
).pack()

tk.Label(
    root,
    textvariable=voltage_text,
    font=("Courier", 28, "bold")
).pack(pady=15)

tk.Label(
    root,
    textvariable=status_text
).pack()

button_frame = tk.Frame(root)
button_frame.pack(pady=15)

tk.Button(
    button_frame,
    text="START",
    command=start,
    width=10
).pack(side="left", padx=5)

tk.Button(
    button_frame,
    text="STOP",
    command=stop,
    width=10
).pack(side="left", padx=5)

tk.Button(
    button_frame,
    text="EXIT",
    command=close,
    width=10
).pack(side="left", padx=5)

root.protocol("WM_DELETE_WINDOW", close)

root.mainloop()

5. Python CLI App for 3x 34401A

34401A x 3, GPIB address=11,12,13

3x34401A-Front view
3x34401A-Agilent-Back view

5-1. File

File name: dmm3-cli.py
Download here: https://github.com/moriyasum/GPIB

✎ Note

Change the GPIB address in the source to match your instrument.
The interface number is usually GPIB0, but it may be GPIB1 on Windows depending on your environment.
The GPIB address is 13 in the next sample.

5-2. Execution:

python .\dmm3-cli.py

5-3. Output

Interface:GPIB0
Instrument 1: Addr=11  HEWLETT-PACKARD,34401A,0,4-1-1
Instrument 2: Addr=12  HEWLETT-PACKARD,34401A,0,5-1-1
Instrument 3: Addr=13  HEWLETT-PACKARD,34401A,0,7-5-2
0 DC Volt: 11= +1.87790000E-05 V, 12= +2.36160000E-05 V, 13= +5.30810000E-05 V
1 DC Volt: 11= +2.15320000E-05 V, 12= +2.77230000E-05 V, 13= +5.66400000E-05 V
2 DC Volt: 11= +2.97650000E-05 V, 12= +3.68070000E-05 V, 13= +4.06650000E-05 V
3 DC Volt: 11= +2.49260000E-05 V, 12= +3.44870000E-05 V, 13= +4.64610000E-05 V
4 DC Volt: 11= +1.94830000E-05 V, 12= +2.88770000E-05 V, 13= +5.49390000E-05 V
5 DC Volt: 11= +2.34430000E-05 V, 12= +2.89390000E-05 V, 13= +4.86330000E-05 V
6 DC Volt: 11= +2.75530000E-05 V, 12= +3.59260000E-05 V, 13= +4.76780000E-05 V
7 DC Volt: 11= +2.59310000E-05 V, 12= +3.61620000E-05 V, 13= +4.58460000E-05 V
8 DC Volt: 11= +1.89050000E-05 V, 12= +2.74250000E-05 V, 13= +5.62350000E-05 V
9 DC Volt: 11= +2.34680000E-05 V, 12= +2.69790000E-05 V, 13= +5.36700000E-05 V

5-4. Python Source Code

import pyvisa
import time

# GPIB addresses, Interface number
adr1 = "11"
adr2 = "12"
adr3 = "13"
interface = "GPIB0"

# Open VISA
rm = pyvisa.ResourceManager()
dmm1 = rm.open_resource(f"{interface}::{adr1}::INSTR")
dmm1.timeout = 5000
dmm2 = rm.open_resource(f"{interface}::{adr2}::INSTR")
dmm2.timeout = 5000
dmm3 = rm.open_resource(f"{interface}::{adr3}::INSTR")
dmm3.timeout = 5000

print(f"Interface:{interface}")
# Read instrument ID
print(f"Instrument 1: Addr={adr1} ", dmm1.query("*IDN?").strip())
print(f"Instrument 2: Addr={adr2} ", dmm2.query("*IDN?").strip())
print(f"Instrument 3: Addr={adr3} ", dmm3.query("*IDN?").strip())

# Set to Configure DC-V measurement mode
dmm1.write("CONF:VOLT:DC")
dmm2.write("CONF:VOLT:DC")
dmm3.write("CONF:VOLT:DC")
    
for i in range(10):   # Set how many sampling times
    # Send READ command and print out the value
    value = dmm1.query("READ?")
    print(i, "DC Volt:", adr1+ "=", value.strip(), "V, ", end="")

    value = dmm2.query("READ?")
    print(adr2+ "=", value.strip(), "V, ", end="")

    value = dmm3.query("READ?")
    print(adr3+ "=", value.strip(), "V")
    
    time.sleep(0.5)

# Close the instrument
dmm1.close()
dmm2.close()
dmm3.close()
rm.close()

6. Python GUI app for 3x 34401A Data Logger

6-1. File

File name: dmm3-gui-graph-record.py
Download here: https://github.com/moriyasum/GPIB

✎ Note

Change the GPIB address in the source to match your instrument.
The interface number is usually GPIB0, but it may be GPIB1 on Windows depending on your environment.
The GPIB address is 13 in the next sample.

6-2. Execution:

python .\dmm3-gui-graph-record.py

6-3. Output

dmm3-gui-logger-SS

Recording file (CSV format)

recording file 3x34401A

6-4. Python Source Code

Please check the GitHub link below for the full source code.
https://github.com/moriyasum/GPIB/blob/main/dmm3-gui-graph-record.py


Conclusion

The Agilent 82357B used in this project was successfully operated on Windows 11 using Keysight’s official IO Libraries Suite.

Communication was verified with the same PyVISA and Python programs used in the other configurations, including examples using one and three HP 34401A multimeters. The three-instrument GUI/data-logger also operated successfully without requiring changes to the measurement code.

With the IO Libraries Suite installed, the 82357B operated normally using the manufacturer’s standard Windows driver environment. This also demonstrated that the same Python measurement programs could be used with both the NI and Agilent/Keysight GPIB adapters with only the appropriate GPIB interface selection.