PyVISA
PyVISADocs

Power Supply Example

Control a GW Instek GPD-4303S power supply using PyVISA. Set voltage and current limits, enable outputs, and monitor operating modes from Python.

This Python script uses PyVISA to control a GW Instek GPD-4303S power supply. It sets a voltage and current limits for two channels, reads their output values, and determines their operating modes (CV or CC). The interface here is Serial over USB.

import pyvisa
import time

# Create a resource manager
rm = pyvisa.ResourceManager()

# Connect to the power supply (update the VISA address as needed)
ps = rm.open_resource("ASRL/dev/ttyUSB0::INSTR",
                      baud_rate=115200,
                      write_termination="\\n",
                      read_termination="\\r\\n")
        
try:
    # Print the power supply model
    model = ps.query("*IDN?")
    print(f"PSU model: {model}")

    # Set voltage and current limits for channels 1 and 2
    ps.write("VSET1:10.0")    # Set CH1 voltage to 10V
    ps.write("ISET1:0.5")     # Set CH1 current to 0.5A
    ps.write("VSET2:19.0")    # Set CH2 voltage to 19V
    ps.write("ISET2:0.1")     # Set CH2 current to 0.1A

    # Turn output on
    ps.write("OUT1")

    # Wait 2 seconds
    time.sleep(2)

    # Read voltage and current values
    voltage1 = ps.query("VOUT1?")
    voltage2 = ps.query("VOUT2?")
    current1 = ps.query("IOUT1?")
    current2 = ps.query("IOUT2?")

    # Print voltage and current values
    print(f"Channel 1: {voltage1} V, {current1} A")
    print(f"Channel 2: {voltage2} V, {current2} A")

    # Check if CH1 is in CC or CV mode
    status = ps.query("STATUS?")
    
    # Remember that all commands return strings
    ch1_mode = "CV" if status[0] == '1' else "CC"
    ch2_mode = "CV" if status[1] == '1' else "CC"

    # Print channel modes
    print(f"Channel 1 is in {ch1_mode} mode")
    print(f"Channel 2 is in {ch2_mode} mode")

    # Turn output off
    ps.write("OUT0")

finally:
    # Close connection
    ps.close()
    rm.close()

On this page

No Headings
Deploy your PyVISA test scripts with TofuPilot

Trusted by Lyft, Cobot, Pacific Defense, and more.

TofuPilot provides dashboards and analytics to track serial device testing at scale.

TofuPilot
Get Started