Siglent SDS1000XHD Oscilloscope

class pymeasure.instruments.siglenttechnologies.SDS1000XHD(adapter, name='Siglent SDS1000xHD Oscilloscope', timeout=2000, chunk_size=20971520, **kwargs)

Bases: SCPIMixin, Instrument

Represents the SIGLENT SDS1000xHD Oscilloscope.

The SDS1000X-HD series are high-definition oscilloscopes with enhanced measurement capabilities and improved user interface. This implementation supports common oscilloscope operations including waveform acquisition, measurements, and trigger control.

acquisition
Channel:

AcquisitionChannel

channel_1
Channel:

AnalogChannel

channel_2
Channel:

AnalogChannel

channel_3
Channel:

AnalogChannel

channel_4
Channel:

AnalogChannel

measure
Channel:

MeasureChannel

timebase
Channel:

TimebaseChannel

trigger
Channel:

TriggerChannel

waveform_channels
Channels:

wf_C1: WaveformChannel, wf_C2: WaveformChannel, wf_C3: WaveformChannel, wf_C4: WaveformChannel, wf_F1: WaveformChannel, wf_F2: WaveformChannel, wf_F3: WaveformChannel, wf_F4: WaveformChannel, wf_D0: WaveformChannel, wf_D1: WaveformChannel, wf_D2: WaveformChannel, wf_D3: WaveformChannel, wf_D4: WaveformChannel, wf_D5: WaveformChannel, wf_D6: WaveformChannel, wf_D7: WaveformChannel, wf_D8: WaveformChannel, wf_D9: WaveformChannel, wf_D10: WaveformChannel, wf_D11: WaveformChannel, wf_D12: WaveformChannel, wf_D13: WaveformChannel, wf_D14: WaveformChannel, wf_D15: WaveformChannel

auto_setup()

Perform automatic setup of the oscilloscope.

clear_sweeps_acq()

Clear accumulated sweeps and reset acquisition statistics.

class pymeasure.instruments.siglenttechnologies.siglent_sds1000xhd.AnalogChannel(parent, id, **kwargs)

Bases: Channel

Implementation of a SIGLENT SDS1000xHD Oscilloscope channel.

property bandwidth_limit_enabled: Any

Control the bandwidth limit enabled state (bool).

property coupling: Any

Control the channel coupling mode (str): ‘DC’, ‘AC’, or ‘GND’.

property display_enabled: Any

Control whether the channel display is turned on or off (bool). This turns the display of the specified channel on or off. Different from visible_enabled which sets the display state only.

property invert: Any

Control signal inversion (bool).

property label: Any

Control the channel label text (str).

property offset: Any

Control the vertical offset of the channel in volts (float).

property probe: Any

Control the probe attenuation factor (float).

property scale: Any

Control the vertical scale of a channel in V/divisions (float strictly between 1e-3 and 10).

property unit: Any

Control the channel unit (str): ‘V’ or ‘A’.

property visible_enabled: Any

Control whether the channel waveform is displayed on screen (bool). This sets the display state only, controlling waveform visibility. Different from display_enabled which controls the physical channel switch.

class pymeasure.instruments.siglenttechnologies.siglent_sds1000xhd.WaveformChannel(parent, id, **kwargs)

Bases: Channel

Waveform channel for SDS1000XHD oscilloscope.

This class provides methods to retrieve waveform data from the oscilloscope. The waveform record contains two portions: the preamble and waveform data. The preamble contains information for interpreting the waveform data, while the waveform data is the actual data acquired for each point in the specified source. Both must be read separately using dedicated commands.

get_data()

Get the waveform data from the oscilloscope for the current source.

This method retrieves waveform data from the oscilloscope using the preamble property to get descriptor information about the waveform format.

Returns:

A tuple containing (time_values, volt_values) where: - time_values: List of time values in seconds - volt_values: List of voltage values in volts

Return type:

tuple

property interval: Any

Control the interval between data points for waveform transfer (int).

This controls the interval between data points for waveform transfer using the query :WAVeform:DATA?. Value in NR1 format (integer with no decimal point). Note: The value range is related to the values set by the commands :WAVeform:POINt and :WAVeform:STARt.

property max_point: Any

Get the maximum points of one piece when reading waveform data in pieces (float).

This query returns the maximum points of one piece, when it needs to read the waveform data in pieces. This is useful for determining how to segment large waveform transfers.

property point: Any

Control the number of waveform points to be transferred with :WAVeform:DATA? (int).

This controls the number of waveform points to be transferred with the query :WAVeform:DATA?. Value in NR1 format (integer with no decimal point). Note: The value range is related to the current waveform point.

property preamble

Get the waveform preamble descriptor data.

The preamble contains binary descriptor information about the waveform data format, including voltage scale, offset, time interval, trigger delay, time division, voltage codes per division, ADC bit depth, and probe attenuation factor. This uses the same binary parsing approach as the get_descriptor method.

Returns:

A dictionary with the following keys:

  • vdiv: Voltage per division (float)

  • voffset: Voltage offset (float)

  • interval: Time interval between points (float)

  • trdl: Trigger delay (float)

  • tdiv: Time per division (float)

  • vcode_per: Voltage codes per division (float)

  • adc_bit: ADC bit depth (int)

  • probe: Probe attenuation factor (float)

Return type:

dict

property source: Any

Control the waveform source to be transferred from the oscilloscope (str).

property start_point: Any

Control the starting data point for waveform transfer (int).

This command specifies the starting data point for waveform transfer using the query :WAVeform:DATA?. The value range is related to the current waveform point and the value set by the command :WAVeform:POINt. Value in NR1 format (integer with no decimal point).

property width: Any

Control the output format for the transfer of waveform data (str).

This controls the current output format for the transfer of waveform data. Options: ‘BYTE’ or ‘WORD’.

class pymeasure.instruments.siglenttechnologies.siglent_sds1000xhd.AdvancedMeasurementItem(parent, id, **kwargs)

Bases: Channel

Represents an advanced measurement item in the SDS1000xHD oscilloscope.

This class provides controls for enabling/disabling the measurement item, setting its source, and retrieving its value.

property enabled: Any

Control whether the advanced measurement item is enabled (bool).

property source1: Any

Control the first source for the advanced measurement item (str).

property source2: Any

Control the second source for the advanced measurement item (str). This is used for measurements that require two sources.

property statistics_all: Any

Get all statistics for the advanced measurement item. Gets all statistical data when statistics are enabled, or ‘OFF’ when disabled.

property statistics_count: Any

Get the count of measurements used for statistics calculation.

property statistics_current: Any

Get the current statistical value in NR3 format (scientific notation, e.g., 1.23E+2).

property statistics_maximum: Any

Get the maximum statistical value in NR3 format (scientific notation, e.g., 1.23E+2).

property statistics_mean: Any

Get the mean statistical value in NR3 format (scientific notation, e.g., 1.23E+2).

property statistics_minimum: Any

Get the minimum statistical value in NR3 format (scientific notation, e.g., 1.23E+2).

property statistics_stddev: Any

Get the standard deviation of the statistics for the advanced measurement item. Returns the standard deviation in NR3 format (e.g., 1.23E+2).

property type: Any

Control the type of advanced measurement (str). This controls the type of advanced measurement to be performed.

property value: Any

Control the value of the advanced measurement item. This command retrieves the current value of the advanced measurement item. The value is returned in NR3 format (e.g., 1.23E+2).

class pymeasure.instruments.siglenttechnologies.siglent_sds1000xhd.MeasureChannel(parent, id, **kwargs)

Bases: Channel

Unified measurement class for SDS1000xHD oscilloscope.

This class combines Simple, Advanced, Gate, and Threshold measurement functionality. It provides a comprehensive interface for all measurement operations on the SDS1000xHD.

property advanced_line_number: Any

Control the total number of advanced measurement items displayed (int strictly between 1 and 12).

property advanced_mode_enabled: Any

Control whether advanced measurement mode is enabled (bool).

clear_advanced()

Clear advanced measurements.

clear_simple()

Clear simple measurements.

property enabled: Any

Control the state of the measurement function (bool).

get_simple_value(measurement_type)

Get the value of a specific simple measurement type.

This method retrieves the current value of the specified simple measurement type.

Parameters:

measurement_type (str) –

The measurement type to query. Valid values are: PKPK, MAX, MIN, AMPL, TOP, BASE, LEVELX, CMEAN, MEAN, STDEV, VSTD, RMS, CRMS, MEDIAN, CMEDIAN, OVSN, FPRE, OVSP, RPRE, PER, FREQ, TMAX, TMIN, PWID, NWID, DUTY, NDUTY, WID, NBWID, DELAY, TIMEL, RISE, FALL, RISE20T80, FALL80T20, CCJ, PAREA, NAREA, AREA, ABSAREA, CYCLES, REDGES, FEDGES, EDGES, PPULSES, NPULSES, PACArea, NACArea, ACArea, ABSACArea

Note: To get all measurement values at once, use the simple_value_all property.

Returns:

The measurement value in NR3 format (e.g., 1.23E+2)

Return type:

float

reset_statistics()

Reset statistics for advanced measurements.

property simple_item: Any

Set the simple measurement item.

This command sets the type of simple measurement and its state. Takes a tuple of (item, state) where: - item (str): The measurement item to set. Valid values are: PKPK, MAX, MIN, AMPL, TOP, BASE, LEVELX, CMEAN, MEAN, STDEV, VSTD, RMS, CRMS, MEDIAN, CMEDIAN, OVSN, FPRE, OVSP, RPRE, PER, FREQ, TMAX, TMIN, PWID, NWID, DUTY, NDUTY, WID, NBWID, DELAY, TIMEL, RISE, FALL, RISE20T80, FALL80T20, CCJ, PAREA, NAREA, AREA, ABSAREA, CYCLES, REDGES, FEDGES, EDGES, PPULSES, NPULSES, PACArea, NACArea, ACArea, ABSACArea - state (str): The state of the measurement item (ON or OFF).

property simple_source: Any

Control the source for simple measurements.

property simple_value_all: Any

Get all simple measurement values. This command retrieves all measurement values of all measurement types except for delay measurements.

property statistics_enabled: Any

Control whether statistics are enabled for measurements (bool).

class pymeasure.instruments.siglenttechnologies.siglent_sds1000xhd.TriggerChannel(parent, id, **kwargs)

Bases: Channel

Trigger channel for SDS1000xHD oscilloscope.

This class provides comprehensive trigger control for the SDS1000xHD oscilloscope using SCPI commands. It handles type-specific trigger configuration where different trigger types (EDGE, SLOPe, etc.) have their own source, level, and coupling settings. The source parameter values are: C1, C2, C3, C4, EX, EX5, LINE where: - C1-C4: Channel inputs - EX: External trigger input - EX5: External trigger input divided by 5 - LINE: Line frequency trigger

property edge_coupling: Any

Control the coupling mode of the edge trigger.

property edge_high_impedance: Any

Control whether edge trigger uses high impedance (bool).

When True, uses 1MΩ high impedance input. When False, uses 50Ω low impedance input.

property edge_hld_event: Any

Control the number of holdoff events for edge trigger (int strictly between 1 and 100000000). The holdoff event count determines how many trigger events to ignore before allowing the next trigger to occur.

property edge_hld_off: Any

Control the holdoff type for edge trigger (str).

Available options: - ‘OFF’: Turn off holdoff - ‘EVENTS’: Use event count-based holdoff - ‘TIME’: Use time-based holdoff

property edge_hld_start: Any

Control the initial position of the edge trigger holdoff.

property edge_hld_time: Any

Control the holdoff time for edge trigger (float strictly between 8e-9 and 30). This controls the holdoff time of the edge trigger in seconds. The holdoff time determines how long to wait after a trigger event before allowing the next trigger to occur.

property edge_level: Any

Control the trigger level of the edge trigger. This controls the trigger level of the edge trigger in volts. For SDS1000X HD models, the range is: [-4.1*vertical_scale-vertical_offset, 4.1*vertical_scale-vertical_offset] See programming manual for other models.

property edge_noise_reject: Any

Control the noise rejection for edge trigger (bool).

property edge_slope: Any

Control the slope of the edge trigger.

property edge_source: Any

Control the trigger source of the edge trigger.

force_trigger()

Force a trigger event.

property frequency: Any

Get the current trigger frequency from the hardware frequency counter. Returns the value of hardware frequency counter in hertz if available. The default precision is 3 digits, maximum valid precision is 7 digits. Use “:FORMat:DATA” command to set the data precision.

property mode: Any

Control the trigger mode.

Available options:

  • AUTO: Oscilloscope searches for trigger signal. If satisfied, shows ‘Trig’d’ and stable waveform. Otherwise shows ‘Auto’ with unstable waveform.

  • NORMal: Oscilloscope waits for trigger signal. If satisfied, shows ‘Trig’d’ and stable waveform. Otherwise shows ‘Ready’ with last triggered waveform.

  • SINGle: Single trigger mode. Oscilloscope waits for trigger, then stops scanning after trigger is satisfied.

  • FTRIG: Force trigger to acquire a frame regardless of trigger conditions.

run()

Set the oscilloscope to run state. This command starts the oscilloscope acquisition and puts it in running mode. The oscilloscope will continuously acquire and display waveforms.

property status: Any

Get the current trigger status, such as STOP, READY, ARM, TD, WAIT, etc.

stop()

Set the oscilloscope to stop state. This command stops the oscilloscope acquisition. The oscilloscope will stop acquiring new waveforms and display the last acquired waveform.

property type: Any

Get the current trigger type as a dict with keys: - “type”: trigger type (EDGE, SLOPe, PULSe, VIDeo, WINDow, INTerval, DROPout, RUNT, PATTern, QUALified, DELay, NEDGe, SHOLd, IIC, SPI, UART, CAN, LIN, etc.)