Undalogic logoUndalogic
Loading Light/Dark Toggle

Documentation

On-board I-V Sweep

Performing I-V sweeps directly on the miniSMU MS01

The miniSMU MS01 includes built-in I-V sweep functionality starting with firmware version 1.3.4. This feature allows you to configure and execute voltage sweeps directly on the device, significantly reducing the amount of communication needed compared to sending individual voltage points from a host computer.

Firmware v1.3.4 Required: The on-board I-V sweep feature requires firmware version 1.3.4 or later. If you need to update your firmware, visit the Firmware Update Page to download and install the latest firmware version.

Overview

The on-board I-V sweep feature provides:

  • Reduced I/O overhead: Configure sweep parameters once, then execute and retrieve results
  • Consistent timing: More precise dwell times between measurement points, without communication interference between PC and miniSMU
  • Flexible output formats: Choose between CSV or JSON data formats
  • Real-time monitoring: Query sweep progress during execution
  • Automatic output control: Optionally enable/disable channel output during sweeps

Sweep Configuration Commands

Voltage Sweep Parameters

Configure the voltage range and measurement parameters for the sweep:

CommandFunctionExampleNotes
SOUR1:SWEEP:VOLT:START <voltage>Set sweep start voltageSOUR1:SWEEP:VOLT:START -0.5Starting voltage in volts
SOUR1:SWEEP:VOLT:END <voltage>Set sweep end voltageSOUR1:SWEEP:VOLT:END 1.5Ending voltage in volts
SOUR1:SWEEP:POINTS <count>Set number of pointsSOUR1:SWEEP:POINTS 100Maximum 1000 points
SOUR1:SWEEP:DWELL <milliseconds>Set dwell time between pointsSOUR1:SWEEP:DWELL 50Maximum 10,000ms

Channel Output Control

Control whether the channel output is automatically managed during the sweep:

CommandFunctionExampleNotes
SOUR1:SWEEP:AUTO:ENAEnable auto output controlSOUR1:SWEEP:AUTO:ENAOutput enabled during sweep, disabled after
SOUR1:SWEEP:AUTO:DISDisable auto output controlSOUR1:SWEEP:AUTO:DISManual output control (default)
SOUR1:SWEEP:AUTO?Query auto control settingSOUR1:SWEEP:AUTO?Returns 0 or 1

Output Format Selection

Choose the data format for sweep results:

CommandFunctionExampleNotes
SOUR1:SWEEP:FORMAT CSVSet CSV formatSOUR1:SWEEP:FORMAT CSVSimple comma-separated values (default)
SOUR1:SWEEP:FORMAT JSONSet JSON formatSOUR1:SWEEP:FORMAT JSONStructured format with metadata
SOUR1:SWEEP:FORMAT?Query current formatSOUR1:SWEEP:FORMAT?Returns "CSV" or "JSON"

Sweep Execution Commands

Starting and Stopping Sweeps

CommandFunctionExampleNotes
SOUR1:SWEEP:EXECUTEExecute the configured sweepSOUR1:SWEEP:EXECUTEStarts the sweep with current settings
SOUR1:SWEEP:ABORTAbort running sweepSOUR1:SWEEP:ABORTStops sweep immediately
SOUR1:SWEEP:STATUS?Query sweep statusSOUR1:SWEEP:STATUS?Returns status and progress information
SOUR1:SWEEP:DATA?Retrieve sweep dataSOUR1:SWEEP:DATA?Returns data in selected format

Status Monitoring

The SOUR1:SWEEP:STATUS? command returns status information in the format: "status,current_point,total_points,elapsed_ms,estimated_remaining_ms"

Example response: "RUNNING,49,100,4495,4641"

  • status: Current sweep state (RUNNING, COMPLETED, IDLE, etc.)
  • current_point: Current data point being measured
  • total_points: Total number of points in the sweep
  • elapsed_ms: Time elapsed since sweep started (milliseconds)
  • estimated_remaining_ms: Estimated time remaining (milliseconds)

Data Formats

CSV Format

The CSV format provides simple comma-separated values without headers. Each line contains: timestamp,voltage,current

Where:

  • timestamp: miniSMU system time in microseconds
  • voltage: Voltage measurement in volts
  • current: Current measurement in amperes

Example CSV data:

129793905,-9.969e-01,-8.998e-09
129883905,-9.768e-01,9.865e-09
129973905,-9.566e-01,-9.194e-09
130063905,-9.365e-01,1.017e-08

JSON Format

The JSON format includes sweep configuration metadata along with the measurement data:

{
  "sweep_config": {
    "channel": 1,
    "start_voltage": -1,
    "end_voltage": 1,
    "points": 100,
    "dwell_ms": 50,
    "auto_enable": true
  },
  "data": [
    {
      "t": 129793905,
      "v": -0.9969,
      "i": -8.998e-9
    },
    {
      "t": 129883905,
      "v": -0.9768,
      "i": 9.865e-9
    },
    {
      "t": 129973905,
      "v": -0.9566,
      "i": -9.194e-9
    }
  ]
}

Basic I-V Sweep Example

Here's a complete example of configuring and running a basic I-V sweep:

SOUR1:SWEEP:VOLT:START -0.5       # Start at -0.5V
SOUR1:SWEEP:VOLT:END 1.5          # End at +1.5V
SOUR1:SWEEP:POINTS 100            # 100 measurement points
SOUR1:SWEEP:DWELL 50              # 50ms between measurements
SOUR1:SWEEP:AUTO:ENA              # Auto-enable output during sweep
SOUR1:SWEEP:FORMAT JSON           # Use JSON output format
SOUR1:SWEEP:EXECUTE               # Start the sweep
SOUR1:SWEEP:DATA?                 # Retrieve results when complete

Advanced Usage

Monitoring Sweep Progress

To monitor a long-running sweep in real-time:

# Start sweep
SOUR1:SWEEP:EXECUTE

# Check status periodically
SOUR1:SWEEP:STATUS?
# Response: "RUNNING,25,100,2250,6750"

# Continue checking until complete
SOUR1:SWEEP:STATUS?
# Response: "COMPLETED,100,100,9000,0"

# Retrieve data
SOUR1:SWEEP:DATA?

Aborting a Sweep

If you need to stop a sweep before completion:

SOUR1:SWEEP:ABORT
SOUR1:SWEEP:STATUS?
# Response: "ABORTED,45,100,4050,0"

Limitations and Considerations

  • Maximum points: 1000 data points per sweep
  • Maximum dwell time: 10,000ms (10 seconds) between points
  • Channel support: Commands shown for channel 1; replace SOUR1 with SOUR2 for channel 2
  • Firmware requirement: On-board I-V sweep requires firmware version 1.3.4 or later