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:
| Command | Function | Example | Notes |
|---|---|---|---|
SOUR1:SWEEP:VOLT:START <voltage> | Set sweep start voltage | SOUR1:SWEEP:VOLT:START -0.5 | Starting voltage in volts |
SOUR1:SWEEP:VOLT:END <voltage> | Set sweep end voltage | SOUR1:SWEEP:VOLT:END 1.5 | Ending voltage in volts |
SOUR1:SWEEP:POINTS <count> | Set number of points | SOUR1:SWEEP:POINTS 100 | Maximum 1000 points |
SOUR1:SWEEP:DWELL <milliseconds> | Set dwell time between points | SOUR1:SWEEP:DWELL 50 | Maximum 10,000ms |
Channel Output Control
Control whether the channel output is automatically managed during the sweep:
| Command | Function | Example | Notes |
|---|---|---|---|
SOUR1:SWEEP:AUTO:ENA | Enable auto output control | SOUR1:SWEEP:AUTO:ENA | Output enabled during sweep, disabled after |
SOUR1:SWEEP:AUTO:DIS | Disable auto output control | SOUR1:SWEEP:AUTO:DIS | Manual output control (default) |
SOUR1:SWEEP:AUTO? | Query auto control setting | SOUR1:SWEEP:AUTO? | Returns 0 or 1 |
Output Format Selection
Choose the data format for sweep results:
| Command | Function | Example | Notes |
|---|---|---|---|
SOUR1:SWEEP:FORMAT CSV | Set CSV format | SOUR1:SWEEP:FORMAT CSV | Simple comma-separated values (default) |
SOUR1:SWEEP:FORMAT JSON | Set JSON format | SOUR1:SWEEP:FORMAT JSON | Structured format with metadata |
SOUR1:SWEEP:FORMAT? | Query current format | SOUR1:SWEEP:FORMAT? | Returns "CSV" or "JSON" |
Sweep Execution Commands
Starting and Stopping Sweeps
| Command | Function | Example | Notes |
|---|---|---|---|
SOUR1:SWEEP:EXECUTE | Execute the configured sweep | SOUR1:SWEEP:EXECUTE | Starts the sweep with current settings |
SOUR1:SWEEP:ABORT | Abort running sweep | SOUR1:SWEEP:ABORT | Stops sweep immediately |
SOUR1:SWEEP:STATUS? | Query sweep status | SOUR1:SWEEP:STATUS? | Returns status and progress information |
SOUR1:SWEEP:DATA? | Retrieve sweep data | SOUR1: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
SOUR1withSOUR2for channel 2 - Firmware requirement: On-board I-V sweep requires firmware version 1.3.4 or later