Agilent.SMU

Code author: Kevin Kennedy <protonyx@users.noreply.github.com>

class labtronyx.drivers.Agilent.SMU.d_B29XX(resource, **kwargs)[source]

Driver for Agilent B2901A and B2902A Source Measurement Units

checkBusy()[source]

Check if the instrument is busy

Return type:bool
clearTraceBuffer(channel)[source]

Clears the trace buffer of the specified channel.

Parameters:channel (int) – SMU Channel
disableAutoAperture(channel)[source]

Disables the auto aperture function.

Parameters:channel (int) – SMU Channel
disableFrontPanel()[source]

Disables the front panel display. Display can be re-enabled by calling enableFrontPanel or pressing the LOCAL button on the instrument.

disableHighCapacitanceOutput(channel)[source]

Disables the high capacitance mode.

Parameters:channel (int) – SMU Channel
disableOutputProtection()[source]

Disable output voltage and current protection

disableRemoteSense(channel)[source]

Disable Remote Sense (4-wire) measurements

Parameters:channel (int) – SMU Channel
enableAutoAperture(channel)[source]

Enables the auto aperture function. When enabled, the instrument automatically sets the integration time suitable for the measurement range.

Parameters:channel (int) – SMU Channel
enableFrontPanel()[source]

Enables the front panel display if it was previously disabled.

enableHighCapacitanceOutput(channel)[source]

Enables the high capacitance mode. This mode is effective for high capacitance DUT

Parameters:channel (int) – SMU Channel
enableRemoteSense(channel)[source]

Enable Remote Sense (4-wire) measurements

Parameters:channel (int) – SMU Channel
enableTraceBuffer(channel)[source]

Enables the trace buffer to start collecting data points. Buffer size is set using setTraceBufferPoints.

Parameters:channel (int) – SMU Channel
frontPanelText(text_top, text_bottom)[source]

Set the text on the front panel of the instrument. The top line is limited to 12 characters, the bottom line to 18 characters. You can use letters (A-Z), numbers (0-9), and special characters like “@”, “%”, “*”, etc. Use “#” character to display a degree symbol.

Parameters:
  • text_top (str) – Top text (up to 12 characters)
  • text_bottom (str) – Bottom text (up to 18 characters)
getApertureTime(channel)[source]

Get the instrument aperture time.

Parameters:channel (int) – SMU Channel
Returns:float
getError()[source]

Get the last recorded error from the instrument

Returns:error code, error message
getErrors()[source]

Retrieve any queued errors on the instrument

Returns:list
getMeasureMode(channel)[source]

Get the enabled measurement functions

Parameters:channel (int) – SMU Channel
Returns:str
getMeasurementData(channel)[source]

Get the measurement data from the instrument

Parameters:channel (int) – SMU Channel
getMeasurementRange(channel)[source]

Get the measurement range.

Parameters:channel (int) – SMU Channel
getScreenshot(filename)[source]

Save a screenshot of the instrument. Supported picture formats are JPG, BMP, PNG, WMF.

Parameters:filename (str) – Filename for saved screenshot
getSourceCurrent(channel)[source]

Get the source output current

Parameters:channel (int) – SMU Channel
Returns:float
getSourceOutputMode(channel)[source]

Get the source output mode. Returns ‘VOLT’ (Voltage) or ‘CURR’ (Current)

Parameters:channel (int) – SMU Channel
Returns:str
getSourceVoltage(channel)[source]

Get the source output voltage

Parameters:channel (int) – SMU Channel
Returns:float
getTraceBuffer(channel, offset=0, size=None)[source]

Returns data in the trace buffer of the specified channel.

Parameters:
  • channel (int) – SMU Channel
  • offset (int) – Indicates the beginning index of the data
  • size (int) – Number of data bytes to retrieve
Returns:

getTraceBufferPoints(channel)[source]

Get the size of the instrument trace buffer, and the number of data points currently in the buffer

Parameters:channel (int) – SMU Channel
Returns:Buffer size, number of points in the buffer
getTriggerCount(channel)[source]

Get the trigger count

Parameters:channel (int) – SMU Channel
getTriggerDelay(channel)[source]

Get the time delay before the first trigger

Parameters:channel (int) – SMU Channel
getTriggerInterval(channel)[source]

Get the time interval between triggers.

Parameters:channel (int) – SMU Channel
getTriggerSource(channel)[source]

Get current trigger source.

Parameters:channel (int) – SMU Channel
Returns:Trigger source
Return type:str
powerOff(channel)[source]

Power off the SMU using the previously programmed power-off mode

Parameters:channel (int) – SMU Channel
powerOn(channel)[source]

Enable the SMU to the programmed output level

Parameters:channel (int) – SMU Channel
rampVoltage(channel, startVoltage, stopVoltage, time, delay=0)[source]

Automated voltage ramp. Enables power output, sweeps from startVoltage to stopVoltage and keeps power enabled after ramp is complete.

Parameters:
  • channel (int) – SMU Channel
  • startVoltage (float) – Starting Voltage
  • stopVoltage (float) – Stop Voltage
  • time (float) – Rise/Fall Time (seconds)
  • delay (float) – Time (seconds) before ramp is started
setApertureTime(channel, apertureTime)[source]

Sets the integration time for one point measurement. Aperture time must be between 8e-6 to 2 seconds. If the value specified is less than MIN or greater than MAX, the value is automatically set to MIN or MAX.

Parameters:
  • channel (int) – SMU Channel
  • apertureTime (float) – Aperture Integration time in seconds
Raises:

RuntimeError on verification failure

setCurrentLimit(channel, limit)[source]

Set current protection limit. Automatically enables current protection mode

Parameters:
  • channel (int) – SMU Channel
  • limit (float) – Current limit
setMeasureMode(channel, measure_mode)[source]

Enable measurement functions. Instrument can measure Voltage (‘VOLT’), Current (‘CURR’) or Resistance (‘RES’)

Parameters:
  • channel (int) – SMU Channel
  • measure_mode (str) – Measurement function
Raises:

RuntimeError on verification failure

setMeasurementRange(channel, meas_range)[source]

Set the measurement range.

Voltage Measurement Range +=============+===========================+============+ | Range Value | Voltage Measurement Value | Resolution | +=============+===========================+============+ | 0.2 V | 0 < Voltage < 0.212 | 0.1 uV | | 2.0 V | 0 < Voltage < 2.12 | 1.0 uV | | 20 V | 0 < Voltage < 21.2 | 10 uV | | 200 V | 0 < Voltage < 212 | 100 uV | +————-+—————————+————+

Current Measurement Range +=============+===========================+============+ | Range Value | Voltage Measurement Value | Resolution | +=============+===========================+============+ | 100 nA | 0 < Current < 106 nA | 100 fA | | 1 uA | 0 < Current < 1.06 uA | 1 pA | | 10 uA | 0 < Current < 10.6 uA | 10 pA | | 100 uA | 0 < Current < 106 uA | 100 pA | | 1 mA | 0 < Current < 1.06 mA | 1 nA | | 10 mA | 0 < Current < 10.6 mA | 10 nA | | 100 mA | 0 < Current < 106 mA | 100 nA | | 1 A | 0 < Current < 1.06 A | 1 uA | | 1.5 A | 0 < Current < 1.53 A | 1 uA | | 3 A | 0 < Current < 3.06 A | 10 uA | +————-+—————————+————+

Parameters:
  • channel (int) – SMU Channel
  • meas_range (float) – Measurement range
setMeasurementRangeAuto(channel)[source]

Set the measurement range mode to auto

Parameters:channel (int) – SMU Channel
setPowerOffMode(channel, mode)[source]

Set the power off mode

  • NORMAL - Normal (0V, output relay off)
  • ZERO - Ground output (0V, output relay on)
  • HIZ - Float output (Floating, output relay off)
Parameters:
  • channel (int) – SMU Channel
  • mode (str) – Power output mode
Returns:

setPowerOffModeFloat(channel)[source]

Power off the SMU, output is left floating

Parameters:channel (int) – SMU Channel
setPowerOffModeZero(channel)[source]

Power off the SMU, output is held at ground voltage

Parameters:channel (int) – SMU Channel
setSourceCurrent(channel, current_base, current_trig=None)[source]

Set the source output current. current_trig is used to specify a current level when the instrument is triggered

Parameters:
  • channel (int) – SMU Channel
  • current_base (float) – Base current when power output is enabled
  • current_trig (float) – Current when power output is enabled and instrument is triggered
Raises:

RuntimeError on verification failure

setSourceFixed(channel)[source]

Set the source to fixed voltage/current mode.

Parameters:channel (int) – SMU Channel
setSourceList(channel, source_points=())[source]

Set the source to list mode. Must set to current or voltage output mode first. Timing between each point is controlled by the trigger settings. Trigger points should equal the number of items in source_points. List mode is initiated by using the startProgram method. To set a fixed timing between list points, consider this example:

setTriggerSource(1, 'TIM') # Timer
setTriggerInterval(1, 1e-3) # 1ms between sweep points
powerOn(1)
startProgram(1)
Parameters:
  • channel (int) – SMU Channel
  • source_points (list) – List of points to traverse
setSourceSweep(channel, start, stop, points=2500)[source]

Set the source to sweep mode. Must set to current or voltage mode first. Sweeps from start to stop with points number of points. Timing between each sweep point is controlled by the trigger settings. Trigger points should match points. Sweep is initiated using the startProgram method. To set a fixed timing between sweep points, consider this example:

setTriggerSource(1, 'TIM') # Timer
setTriggerInterval(1, 1e-3) # 1ms between sweep points
powerOn(1)
startProgram(1)
Parameters:
  • channel (int) – SMU Channel
  • start (float) – Start voltage/current
  • stop (float) – Stop voltage/current
  • points (int) – Points to sweep
setSourceVoltage(channel, voltage_base, voltage_trig=None)[source]

Set the source output voltage. voltage_trig is used to specify a voltage level when the instrument is triggered

Parameters:
  • channel (int) – SMU Channel
  • voltage_base (float) – Base voltage when power output is enabled
  • voltage_trig (float) – Voltage when power output is enabled and instrument is triggered
Raises:

RuntimeError on verification failure

setTraceBufferPoints(channel, data_points)[source]

Sets the size of the instrument trace buffer. The maximum number of data points in the trace buffer is 100,000.

Parameters:
  • channel (int) – SMU Channel
  • data_points (int) – Number of data points to record in the trace buffer
setTriggerCount(channel, number)[source]

Set the trigger count for the specified device action

Parameters:
  • channel (int) – SMU Channel
  • number (int) – Number of triggers
setTriggerDelay(channel, delay)[source]

Set the time delay before the first trigger

Parameters:
  • channel (int) – SMU Channel
  • delay (float) – Trigger delay (seconds)
setTriggerInterval(channel, interval)[source]

Set the time interval between triggers. interval is the number of seconds, must be between 1E-5 and 1E+5.

Parameters:
  • channel (int) – SMU Channel
  • interval – Trigger timer interval (seconds)
Float interval:

float

setTriggerSource(channel, triggerSource)[source]

Set the trigger source. See VALID_TRIGGER_SOURCES attribute for valid values for parameter triggerSource

Parameters:
  • channel (int) – SMU Channel
  • triggerSource (str) – Trigger source
setTriggerSourceTimer(channel)[source]

Use the timer as the trigger source

Parameters:channel (int) – SMU Channel
setVoltageLimit(channel, limit)[source]

Set voltage protection limit. Automatically enables voltage protection mode

Parameters:
  • channel (int) – SMU Channel
  • limit (float) – Voltage limit
startProgram(channel)[source]

Start a program sequence / Force trigger.

Parameters:channel (int) – SMU Channel