Siglent SDS1000XHD Oscilloscope
- class pymeasure.instruments.siglenttechnologies.SDS1000XHD(adapter, name='Siglent SDS1000xHD Oscilloscope', timeout=2000, chunk_size=20971520, **kwargs)
Bases:
SCPIMixin,InstrumentRepresents 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:
- channel_2
- Channel:
- channel_3
- Channel:
- channel_4
- Channel:
- measure
- Channel:
- timebase
- Channel:
TimebaseChannel
- trigger
- Channel:
- 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:
ChannelImplementation 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:
ChannelWaveform 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:
ChannelRepresents 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:
ChannelUnified 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:
ChannelTrigger 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.)