Skip to content

SOURCE_2450

Set the source output settings. Use the OUTPUT_2450 block to turn the output on or off. Requires a CONNECT_2450 block to create the connection. Params: connection : VisaConnection The VISA address (requires the CONNECTION_2450 block). function : select, default=voltage The type of output to use. level : float, default=0 The fixed voltage or current to output. limit : float, default=1 Output limit (if function=voltage, current is limited and visa versa). terminal : select, default=front The panel to output from. protect : select, default=NONE The overvoltage protection value. Returns: out : String Source settings
Python Code
from typing import Optional, Literal
from flojoy import VisaConnection, flojoy, DataContainer, String


@flojoy(deps={"tm_devices": "1.0"}, inject_connection=True)
def SOURCE_2450(
    connection: VisaConnection,
    input: Optional[DataContainer] = None,
    function: Literal["current", "voltage"] = "voltage",
    level: float = 1.0,
    limit: float = 1.0,
    terminal: Literal["front", "rear"] = "front",
    protect: Literal[
        "NONE",
        "2V",
        "5V",
        "10V",
        "20V",
        "40V",
        "60V",
        "80V",
        "100V",
        "120V",
        "140V",
        "160V",
        "180V",
    ] = "NONE",
) -> String:
    """Set the source output settings.

    Use the OUTPUT_2450 block to turn the output on or off.

    Requires a CONNECT_2450 block to create the connection.

    Parameters
    ----------
    connection : VisaConnection
        The VISA address (requires the CONNECTION_2450 block).
    function : select, default=voltage
        The type of output to use.
    level : float, default=0
        The fixed voltage or current to output.
    limit : float, default=1
        Output limit (if function=voltage, current is limited and visa versa).
    terminal : select, default=front
        The panel to output from.
    protect : select, default=NONE
        The overvoltage protection value.

    Returns
    -------
    String
        Source settings
    """

    # Retrieve oscilloscope instrument connection
    smu = connection.get_handle()

    smu.commands.smu.source.protect.level = f"smu.PROTECT_{protect}"

    if terminal == "front":
        smu.commands.smu.terminals = "smu.TERMINALS_FRONT"
    else:
        smu.commands.smu.terminals = "smu.TERMINALS_REAR"

    if function == "current":
        smu.commands.smu.source.func = "smu.FUNC_DC_CURRENT"
        smu.commands.smu.source.vlimit.level = limit
    else:
        smu.commands.smu.source.func = "smu.FUNC_DC_VOLTAGE"
        smu.commands.smu.source.ilimit.level = limit

    smu.commands.smu.source.level = level

    return String(s="Source settings")

Find this Flojoy Block on GitHub

Videos

Control the Sourcemeter 2450 with Flojoy

Example

Having problems with this example app? Join our Discord community and we will help you out!
React Flow mini map

In this example, a Keithley 2450 to generate 1V and then sweep between 0 and 1V.

First the necessary blocks were added:

  • CONNECT_2450
  • BEEP_2450
  • RESET_2450
  • SOURCE_2450
  • MEASURE_SETTINGS_2450
  • MEASUREMENT_READ_2450
  • IV_SWEEP_2450
  • BIG_NUMBER
  • LINE

The instrument address was set for each 2450 block. The SOURCE_2450 block was changed in order to source 1V. The parameters in the MEASURE_SETTINGS_2450 block were changed as necessary. The MEASUREMENT_READ_2450 block was connected to the BIG_NUMBER block in order to view the reading.

The IV_SWEEP_2450 block output was connected to the LINE plot to show the output of the sweep.

The blocks were connected as shown and the app was run.