Rigol DHO Series Oscilloscopes

class pymeasure.instruments.rigol.DHOBase(adapter, name='Rigol DHO', **kwargs)

Bases: SCPIMixin, Instrument

PyMeasure driver base class for the Rigol DHO series oscilloscopes.

ch_1
Channel:

DHOBaseChannel

ch_2
Channel:

DHOBaseChannel

ch_3
Channel:

DHOBaseChannel

ch_4
Channel:

DHOBaseChannel

property acquisition_averages: Any

Control the number of averages (2 … 65536, powers of 2).

property acquisition_memory_depth: Any

Control the memory depth per channel.

Accepted values: "AUTO", 1000, 10000, 100000, 1000000, 10000000, 25000000, 50000000, 100000000, 200000000.

property acquisition_type: Any

Control the acquisition mode:

  • "NORM" - Normal (default)

  • "AVER" - Average

  • "PEAK" - Peak detect

  • "ULTR" - UltraAcquire (DHO-series specific)

autoset()

Execute AUTOSET to automatically configure timebase, channels, and trigger based on the input signals.

clear_measurements()

Remove all displayed measurements.

clear_screen()

Clear the waveform display area.

clear_status()

Clear the event status register (CLS).

property cursor_mode: Any

Control the cursor mode: "OFF", "MAN", "TRAC", or "XY".

property display_grading_time: Any

Control the persistence time: "MIN", "0.1", "0.5", "1", "5", "10", or "INF".

property display_type_vector_enabled: Any

Control the waveform display type: True for Vector or False for Dots.

property event_status: Any

Get and clear the Standard Event Status Register (ESR, IntFlag).

force_trigger()

Force a trigger event.

get_waveform(channel=1, mode='NORM', fmt='BYTE')

Download a waveform from the oscilloscope.

For "MAX" and "RAW" mode, the scope is automatically stopped before reading and restarted afterwards if it was running.

Parameters:
  • channel – Channel number 1-4. (default: 1)

  • mode

    Waveform mode:

    • "NORM" - points shown on screen (up to 1000)

    • "MAX" - all points in memory (up to full memory depth)

    • "RAW" - raw ADC samples from memory (default: 'NORM')

  • fmt – Data format: "BYTE" (8-bit unsigned) or "WORD" (16-bit unsigned, higher precision). (default: 'BYTE')

Returns:

Tuple (time_array, voltage_array) where both arrays are numpy.ndarray with the time axis in seconds and the voltage axis in Volts.

get_waveform_ascii(channel=1)

Download a waveform in ASCII format.

Uses "NORM" mode, returning up to 1000 points shown on screen. For full memory depth use get_waveform() with mode="MAX" or mode="RAW".

Parameters:

channel – Channel number 1-4. (default: 1)

Returns:

Tuple (time_array, voltage_array) where both arrays are numpy.ndarray with the time axis in seconds and the voltage axis in Volts.

get_waveform_preamble(channel=1)

Get the waveform preamble for channel as a dict.

The preamble encodes scaling information needed to convert raw samples to physical units.

Parameters:

channel – Channel number 1-4. (default: 1)

Returns:

dict with keys format, type, points, count, xincrement, xorigin, xreference, yincrement, yorigin, yreference.

measure(item, channel=1)

Query a built-in automatic measurement.

Parameters:
  • item – Measurement item string, e.g. "VMAX", "VMIN", "VPP", "VRMS", "VAVG", "PER", "FREQ", "RISE", "FALL", "NWID", "PWID", "PDUT", "NDUT".

  • channel – Channel number 1-4. (default: 1)

Returns:

Measured value as float, or float("nan") if the measurement is not available.

run()

Start continuous acquisition.

property sample_rate: Any

Get the current sample rate in Sa/s (float).

single()

Trigger a single acquisition.

property status_byte: Any

Get the status byte (STB, IntFlag).

stop()

Stop acquisition.

property timebase_mode: Any

Control the timebase mode: "MAIN", "XY", or "ROLL".

property timebase_offset: Any

Control the horizontal offset (trigger delay) in seconds (float).

property timebase_scale: Any

Control the horizontal (timebase) scale in s/div (float).

Valid range: 1 ns/div - 1000 s/div.

property trigger_coupling: Any

Control the trigger coupling: "AC", "DC", "LFR", or "HFR".

property trigger_holdoff: Any

Control the trigger holdoff time in seconds (float).

property trigger_level: Any

Control the trigger level in Volts (float).

property trigger_mode: Any

Control the trigger mode: "EDGE", "PULS", "RUNT", "WIND", "NEDG", "SLOP", "VID", "PATT", "DEL", "TIM", "DUR", "SHOL", "RS232", "IIC", "SPI", "CAN", "LIN".

property trigger_slope: Any

Control the edge trigger slope: "POS" (rising), "NEG" (falling), or "RFAL" (either).

property trigger_source: Any

Control the edge trigger source channel: "CHAN1""CHAN4", "AC", or "EXT".

property trigger_status

Get the current trigger status string.

Possible values: "TD", "WAIT", "RUN", "AUTO", "STOP".

property trigger_sweep: Any

Control the trigger sweep mode: "AUTO", "NORM", or "SING".

wait_for_opc(timeout=10)

Block until the oscilloscope reports operation complete.

class pymeasure.instruments.rigol.rigol_dho_base.DHOBaseChannel(parent, id, **kwargs)

Bases: Channel

A single analog input channel of the Rigol DHO series.

property bandwidth_limit: Any

Control the bandwidth limit: "OFF", "20M", or "100M".

property coupling: Any

Control the input coupling: "AC", "DC", or "GND".

property display_enabled: Any

Control whether the channel is displayed (bool).

property invert: Any

Control whether the channel waveform is inverted (bool).

property label: Any

Control the label content shown for the channel (string, max 10 chars).

property label_enabled: Any

Control whether the label is shown on screen (bool).

property offset: Any

Control the vertical offset in Volts (float).

property probe: Any

Control the probe attenuation ratio (float).

Valid values: [0.001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 20, 50, 100, 150, 200, 500, 1000, 1500, 2000, 5000, 10000, 15000, 20000, 50000]

property scale: Any

Control the vertical scale in V/div (float).

Valid range: 500 µV/div - 10 V/div for a 1x probe.

property units: Any

Control the unit of the vertical axis: "VOLT", "WATT", "AMP", or "UNKN".