Embedded HandbookApps
All sections › V. Debugging and quality
STM32F103 · level intermediate · 23 min read
Open in the interactive handbook

36м. Higher-end RIGOL oscilloscopes: DHO1000 and DHO4000 — what they add and how remote control differs

Parts 36г–36ж went through the author's oscilloscope, the RIGOL DHO900, knob by knob and command by command. Sooner or later a higher-end instrument lands on the bench — in a lab, at a colleague's desk, in production — and then you need two answers: what it can do beyond the DHO900, and whether a script written for the DHO900 will run on it. This section answers both, and only those: the general workings of the channel, trigger, measurements and decoding are not repeated here — they are in 36г, 36д, 36е and 36ж.

The source for this section is unusual. For the DHO1000 and DHO4000 we have neither a datasheet nor a user guide — only the programming guide, the SCPI command reference (the instrument's command language, 36ж). But a command reference gives a lot away: which models it describes, which values a command accepts, which subsystems are missing altogether. Everything said below about the higher-end series follows from it; everything that does not follow from it goes into "Not verified" at the end.

Sources: RIGOL DHO1000/DHO4000 Programming Guide (Books/DHO_programming_manual.pdf, 2022; below — "the DHO1000/4000 guide", pages are PDF file pages): p. 23–24 — interfaces and models, p. 37–40 — acquisition and memory, p. 44–45 — decoding, p. 93–104 — channel and probes, p. 144 — *IDN?, p. 196–197 — measurements, p. 214–224 — power analysis, p. 277–283 — system and options, p. 431–441 — waveform readout. RIGOL DHO800/DHO900 Programming Guide (Books/DHO800900_ProgrammingGuide_EN.pdf, 2024; "the DHO800/900 guide"): p. 23–24, 42–43, 47, 86, 93–97, 139, 148, 155, 217, 264–267, 297, 426–436 — the same for the lower series. The comparison of the command sets, the parsing of replies and all model numbers — _verify/scope36m_check.py (pypdf) and the run of _verify/scope36m/ (Python 3.11 and numpy in the stm-lab:1 container); the listing was tested against stand-in instruments in the same run.

What it is called in the documentation

Original Meaning
Programming Guide, SCPI command programming guide, instrument command
root keyword, subsystem command root, subsystem: :POWer, :WAVeform
option, license, :SYSTem:OPTion:STATus? paid feature, key, check whether it is installed
power analysis, Power Quality, Ripple power analysis, AC input quality, output ripple
Real_P, Apparent_P, Reactive_P real, apparent and reactive power
P_Factor, Phase_Angle, Crest Factor power factor, angle, crest factor
input impedance OMEG, FIFTy 1 MΩ or 50 Ω input
HRESolution, :ACQuire:BITS high-resolution mode and its bit depth
active probe, current probe, demagnetize active probe, current clamp, demagnetize
preamble preamble: ten numbers that convert point codes into volts and seconds

36м.1 Who the DHO1000 and DHO4000 are — according to the guide

Models. The DHO1000/4000 guide opens with a table of models (p. 24):

series models bandwidth channels
DHO4000 DHO4204, DHO4404, DHO4804 200, 400, 800 MHz 4
DHO1000 DHO1072, DHO1074, DHO1102, DHO1104, DHO1202, DHO1204 70, 100, 200 MHz 2 or 4 (last digit)
DHO800 DHO802, DHO804, DHO812, DHO814 70, 100 MHz 2 plus external input, or 4
DHO900 DHO914, DHO914S, DHO924, DHO924S 125, 250 MHz 4

The two bottom rows come from the DHO800/900 guide (p. 24). In bandwidth the DHO1000 sits next to the DHO800/900, while the DHO4000 goes above all of them — up to 800 MHz.

What else the commands reveal. Not from specification tables, but from which commands exist and which values they accept:

Role. Together this forms a picture. The DHO4000 is an instrument for fast signals and power electronics: bandwidth up to 800 MHz, a 50 Ω input for an RF path, deep memory, power analysis and automotive and avionics buses — all of these as options. The DHO1000 is the same command platform, but closer to the DHO900 in bandwidth and memory, and without 50 Ω, power analysis and the rarer buses. The DHO800/900 are compact instruments that in turn have what the higher-end ones lack: digital channels (DHO900), a built-in generator and frequency response (models with the letter S) — 36м.4.

Mistake. Assuming that "higher-end means everything the same plus more". There is no generator, logic analyzer or histogram in the DHO1000/4000 guide: moving from a DHO924S to a DHO4404 takes features away.


36м.2 How the two guides were compared

Method. Both books are organized the same way: each command is a heading of the form "3.29.5 :WAVeform:DATA?", followed by a Syntax section. The section's check extracts all such headings from both PDFs with pypdf, compares the names case-insensitively and counts what is in both books and what is only in one:

DHO1000/4000 guide DHO800/900 guide
commands with a Syntax section 609 564
common 508 508
only in this book 101 56
command roots (subsystems and common *… commands) 41 44

There is one root the lower series lacks: :POWer. There are four roots the higher-end series lack: :BODeplot, :HISTogram, :LA, :SOURce. :SAVE exists in both books; in the DHO800/900 it has 7 more commands — saving to a network share.

Comparison of the SCPI command sets of the two RIGOL guides: only in the DHO1000/4000 — 101 commands (trigger 49 — FlexRay, I2S, MIL-STD-1553, CAN-FD; decoding 18; power analysis 17; system 8; channel 7 — 50 Ω input and probes; acquisition 2 — High Res), common — 508, only in the DHO800/900 — 56 (generator 19, digital channels 9, frequency response 9, histogram 9, network share 7 and 3 more)

An honest caveat. The DHO1000/4000 guide is from 2022, software version 00.01.00 (p. 2, 23); the DHO800/900 guide is from 2024, version 00.01.03 (DHO800/900 guide, p. 2, 23). Two years of firmware lie between them. Some differences may mean not "the instrument does not have it", but "it did not exist yet in 2022" or "it did not make it into the book". For example, :SAVe:SMB and :HISTogram may well have appeared in newer firmware of the higher-end series. Only the instrument itself gives a reliable answer: a command it does not have puts -113,"Undefined header…" into the error queue (DHO1000/4000 guide, p. 277).

What matched completely. Waveform readout :WAVeform — 14 commands, the same NORMal, MAXimum, RAW modes, the same WORD, BYTE, ASCii formats, the same 10-field preamble and the same formula for converting a code into volts (p. 431–441 and p. 426–436 of the DHO800/900 guide). Measurements :MEASure — the same 27 commands and the same list of 42 quantities. There is one difference: on the DHO900 a digital channel D0–D15 can be the source.

Mistake. Comparing by the table of contents. The DHO1000/4000 contents list ":SAVE and :LOAD", the DHO800/900 contents list ":SAVE" with :LOAD:SETup inside it; by the contents they look different, by the commands they are the same.


36м.3 Only in the DHO1000/4000

101 commands, by root:

What you see with it and without it. On the DHO900, millivolt ripple is measured through 20 MHz and averaging (36г.7, 36г.16). On the DHO4000, High Res is added — the noise drops in a single record, without repetitions. The 50 Ω input removes the external feed-through terminator on an RF path.

Mistake. Ordering a DHO1000 "for power analysis": according to the guide, :POWer is not supported on the DHO1000 at all (p. 214).


36м.4 Only in the DHO800/900

56 commands:

A depth of 5 million points. The value 5M is in the :ACQuire:MDEPth list of the DHO800/900 (p. 42) and is missing in the DHO1000/4000 (p. 38). A script that sets 5M will get an error on a higher-end instrument.

Mistake. Expecting a test-bench script that uses the generator (:SOURce) to move to a DHO4000: the higher-end guide has no generator, you need a separate one (36к).


36м.5 Power analysis: the :POWer commands

What it is. The instrument itself computes, from two channels — voltage and current — the power and related quantities, with statistics. Two types (:POWer:TYPE, p. 215):

Setup (p. 215–224):

command what it sets values
:POWer:VOLTage:SOURce, :POWer:CURRent:SOURce voltage and current channels CHANnel1…CHANnel4
:POWer:REFLevel:METHod reference levels in percent or in volts (the guide does not say how the instrument uses them) PERCent (default) or ABSolute
:POWer:REFLevel:PERCent:HIGH, MID, LOW levels in percent 0…100, default 90, 50, 10
:POWer:REFLevel:ABSolute:HIGH, MID, LOW levels in volts from −100 to 100 mV
:POWer:QUALity:FREQ:REFerence which signal the frequency is taken from VOLTage or CURRent
:POWer:QUALity:DISPlay, :POWer:RIPPle:DISPlay show the results ON or OFF
:POWer:RIPPle:SOURce ripple channel CHANnel1…CHANnel4
:POWer:STATistics:RESet reset the statistics —

Reply. :POWer:QUALity:STATistics:RESult? returns a table as a string: each row holds the name of the quantity, the channels, the current, average, maximum and minimum value, the deviation and the number of measurements (p. 222). Quantities: frequency Ref_Freq, Vrms and Irms, real Real_P, apparent Apparent_P and reactive Reactive_P power, power factor P_Factor, angle Phase_Angle, the voltage-to-current ratio Imp and the crest factors V_CrestFactor and I_CrestFactor. Numbers come with units and prefixes: 4.5289mW, 999.50kHz. For RIPPle the example has one quantity — the peak-to-peak Meas_Vpp (p. 224).

Let us check the guide's example. The numbers in the example on p. 222 are related to each other, and that helps understand what the instrument computes:

quantity in the example recomputed from Vrms, Irms and Real_P
apparent power 7.8598 mVA 88.273 mV × 89.039 mA = 7.8597 mVA
power factor 576.21m 4.5289 / 7.8598 = 0.57621
angle 54.81° arccos 0.57621 = 54.82°
reactive power 6.4237 mvar √(7.8598² − 4.5289²) = 6.4238 mvar
Imp 991.39 Ω 88.273 mV / 89.039 mA = 0.9914 Ω

The first four agree to within one unit of the last digit — that is rounding. Hence the important part: the angle in the example is the arccos of the power factor, not the shift between sine waves (why this difference matters — 36м.6). And Imp differs from the Vrms/Irms ratio by a factor of 1000: either a typo in the example or different units. Check the units of the reply on a known load.

Errors in the guide itself. For :POWer:REFLevel:ABSolute:HIGH the range is from −100 to 100 mV, but the default value is 300 mV, outside the range (p. 217); for LOW it is −300 mV (p. 218). The example for :POWer:QUALity:DISPlay queries :POWer:RIPPle:DISPlay? (p. 221). A script must not rely on default values — set everything explicitly and read it back.

Mistake. Enabling power analysis without checking the option. On a DHO4000 without UPA the :POWer commands are unavailable; the check is :SYSTem:OPTion:STATus? UPA, reply 1 or 0 (p. 282–283).


36м.6 Why this matters for a power supply and a motor

Model. The input of the simplest power supply: a transformer winding of 24 V, 50 Hz, winding and wiring resistance 0.5 Ω, a diode bridge (0.7 V per diode), a 2200 µF capacitor, a 20 Ω load. For comparison — the same winding on a 16 Ω resistor. We compute what power analysis would show at the bridge input:

quantity 16 Ω resistor bridge with capacitor
Vrms 24 V 23.06 V
Irms 1.5 A 2.806 A
real power 36 W 42.3 W
apparent power 36 VA 64.71 VA
power factor 1.000 0.654
current crest factor 1.414 2.49 (peak 7.00 A)
arccos(PF) 0° 49.2°
shift of the current fundamental 0° 10.8° (cos 0.982)

What you see. The capacitor charges only near the top of the sine wave: current flows 31 % of the time in short pulses. Hence the 7.00 A peak with an rms value of 2.806 A and a power factor of 0.654. But there is almost no shift: the current fundamental leads the voltage by 10.8°, its cosine is 0.982. Power is lost not to the shift but to the shape of the current: the share of the fundamental in the rms current is 0.698, and the other harmonics in it are larger than the fundamental (103 %). The useful power is carried mostly by the fundamental, while the rms current — and the apparent power — grow from all of them.

Why the angle misleads. If the angle is the arccos of the power factor (36м.5), the instrument will show 49.2°, although the sine waves are shifted by 10.8°. A capacitor or an inductor "to compensate the shift" will not help here — there is nothing to compensate. Only a different current shape helps: a power factor corrector (an active one is the same boost converter as in 58.1) or an input inductor.

Crest factor and channel setup. A current of 7.00 A at the peak with an rms value of 2.806 A: the current channel scale is chosen by the peak, not by the ammeter reading. In the 36м.8 listing the current channel is 2 A/div: 25 codes per division, a step of 0.08 A, a limit of ±10.24 A — the peak fits. The current clamp is demagnetized before measuring (on the DHO1000/4000 — by a command, 36м.3).

Output ripple. The capacitor averages 28.4 V, with a peak-to-peak ripple of 4.55 V at 100 Hz: this is what RIPPle measures (Meas_Vpp). The output delivers 40.3 W, the input takes 42.3 W — the bridge and the winding take 5 %. How to reduce the ripple with capacitance and why a switching regulator adds spikes at the switching frequency — 58.3 and 36г.7.

Motor. The same calculation at the input of a motor drive: in a drive with a rectifier and a DC-link capacitor (57а) the current shape is the same as above; in an induction motor fed straight from the mains, on the contrary, the current is almost sinusoidal, and the power factor is lost to a real shift. Power analysis tells these cases apart only together with the crest factor: a high crest factor means shape, a low one with a small PF means shift. The current in the motor windings themselves and how to measure it — 57б.

Safety. The example is deliberately taken on a 24 V secondary winding. On the 230 V mains side, voltage is measured only with a differential probe or an isolated channel, current — with a current clamp; the oscilloscope ground is never cut (36а.5, 36з, 208.7). Power analysis does not cancel this rule: it computes whatever arrives at the channels.

Mistake. Comparing the "power" from a plug-in wattmeter and from the instrument without checking that the window holds a whole number of periods. In the model the window is 10 periods of 50 Hz; with a fractional number of periods the real power "wanders" from record to record.


36м.7 Moving a script from the DHO900: what to change

A DHO900 script from 36ж will mostly work on a DHO1000/4000: memory readout and measurements are organized the same way (36м.2). It breaks on details — on parameter values the other series does not have:

what DHO800/900 DHO1000/4000 what to do in the script
model *IDN?: "RIGOL TECHNOLOGIES,,," (p. 148) the same (p. 144) take the series from the second field
number of channels :SYSTem:RAMount? :SYSTem:RAMount? "always 4" (p. 283) despite the two-channel DHO1072, DHO1102, DHO1202 take it from the last digit of the model
smallest scale with a 1X probe DHO800 500 µV/div, DHO900 200 µV/div (p. 97) DHO4000 100 µV/div, DHO1000 500 µV/div (p. 98) do not set lower; read the scale back
offset ±8 V from 65.01 to 260 mV/div (p. 96) ±10 V from 65.1 to 270 mV/div (p. 97) do not count on a ±10 V margin on the DHO900
50 Ω input no command :CHANnel<n>:IMPedance FIFTy — DHO4000 only (p. 99) set OMEG explicitly, FIFTy only on purpose
bandwidth limit 20M (p. 93) 20M or 250M (p. 93) 250M — DHO4000 only
memory depth, 1 channel DHO800 25M, DHO900 50M DHO1000 50M (option 100M), DHO4000 250M (option 500M) choose by series; 1M exists everywhere
the same, 2 channels DHO800 10M, DHO900 25M DHO1000 25M (50M), DHO4000 125M (250M)
the same, 3–4 channels DHO800 5M, DHO900 10M DHO1000 10M (25M), DHO4000 50M (100M and 125M) the higher-end series have no 5M
acquisition mode Normal, Average, Peak, UltraAcquire (p. 43) plus HRESolution and :ACQuire:BITS (p. 37, 40)
waveform readout :WAVeform, D0–D15 sources on the DHO900 only the same 14 commands and preamble no change
measurements :MEASure:ITEM, 42 quantities, D0–D15 on the DHO900 (p. 217) the same 42 quantities (p. 196–197) no change
decoding PARallel, RS232, SPI, IIC, LIN (DHO900), CAN (p. 47) plus IIS, FLEXray, M1553 — DHO4000 with options (p. 44–45)
saving :SAVE and :SAVe:SMB :SAVE and :LOAD — the same commands without SMB no change unless SMB is used
power no :POWer — compute it yourself :POWer on a DHO4000 with UPA branch on :SYSTem:OPTion:STATus? UPA

Memory ratio. On two channels a DHO4000 without options holds 5 times more points than a DHO900; with the option, on one channel, 10 times more. This is not free: readout over the network goes in chunks via :WAVeform:STARt and STOP, and the transfer time grows in the same proportion (36ж).

Mistake. Carrying over "magic" values: 5M, a 200 µV/div scale on a DHO1000, :BUS1:MODE LIN on a DHO800. Each one is error −113 or another error in the queue, and without checking the queue after every command the script silently captures the wrong thing.


36м.8 One script for all series

Task. Measure the power at the input of the power supply from 36м.6: channel 1 — voltage (differential probe), channel 2 — current (current clamp), 10 periods of 50 Hz. The script identifies the model by *IDN?; on a DHO4000 with the UPA option it hands the calculation to the instrument, on the others it reads the memory of both channels and computes by itself:

# dho_any.py — мощность на входе блока питания: DHO800/900 и DHO1000/4000 одним скриптом
import re, sys, time
import numpy as np
import pyvisa

ADDR = sys.argv[1]            # VISA-адрес: Utility → IO или :LAN:VISA?
CHUNK = 250000                # точек за одно чтение :WAVeform:DATA?
DEPTH2 = {"800": "10M", "900": "25M", "1000": "25M", "4000": "125M"}   # наибольшая память на 2 канала без опций

scope = pyvisa.ResourceManager().open_resource(ADDR)
scope.timeout = 10000
scope.read_termination = scope.write_termination = "\n"


def cmd(s):
    scope.write(s)
    err = scope.query(":SYSTem:ERRor?").strip()
    if int(err.split(",")[0]) != 0:
        raise RuntimeError(s + " -> " + err)


def series(model):
    """DHO924S -> ("900", 4), DHO1072 -> ("1000", 2), DHO4804 -> ("4000", 4)."""
    num = re.fullmatch(r"DHO(\d{3,4})S?", model).group(1)
    return num[0] + "0" * (len(num) - 1), int(num[-1])


def si(text):
    """'4.5289mW' -> 0.0045289: так :POWer:...:RESult? пишет числа."""
    m = re.match(r"([-+0-9.eE]+)([pnumkMG]?)", text)
    return float(m.group(1)) * {"p": 1e-12, "n": 1e-9, "u": 1e-6, "m": 1e-3, "": 1.0,
                                "k": 1e3, "M": 1e6, "G": 1e9}[m.group(2)]


model = scope.query("*IDN?").split(",")[1]
ser, nch = series(model)
upa = ser == "4000" and scope.query(":SYSTem:OPTion:STATus? UPA").strip() == "1"
print("%s: серия DHO%s, каналов %d, память на 2 канала до %s, :POWer %s"
      % (model, ser, nch, DEPTH2[ser], "есть" if upa else "нет — считаем сами"))

scope.write("*RST")
while scope.query("*OPC?").strip() != "1":
    time.sleep(0.1)
for ch, probe, scale, unit in ((1, 10, 10, "VOLTage"), (2, 10, 2, "AMPere")):
    cmd(":CHANnel%d:DISPlay ON" % ch)
    cmd(":CHANnel%d:PROBe %d" % (ch, probe))       # дифференциальный щуп / токовые клещи
    cmd(":CHANnel%d:UNITs %s" % (ch, unit))
    cmd(":CHANnel%d:SCALe %g" % (ch, scale))       # 10 В/дел и 2 А/дел
    cmd(":CHANnel%d:OFFSet 0" % ch)
cmd(":TIMebase:MAIN:SCALe 0.02")                    # 20 мс/дел: 10 периодов 50 Гц
cmd(":ACQuire:MDEPth 1M")                           # есть во всех четырёх сериях
cmd(":TRIGger:MODE EDGE")
cmd(":TRIGger:EDGE:SOURce CHANnel1")
cmd(":TRIGger:EDGE:LEVel 0")
cmd(":SINGle")
t0 = time.time()
while scope.query(":TRIGger:STATus?").strip() != "STOP":
    if time.time() - t0 > 5:
        raise TimeoutError("нет запуска за 5 с")
    time.sleep(0.05)

if upa:                                             # DHO4000 с опцией UPA: считает прибор
    cmd(":POWer:TYPE QUALity")
    cmd(":POWer:VOLTage:SOURce CHANnel1")
    cmd(":POWer:CURRent:SOURce CHANnel2")
    cmd(":POWer:QUALity:DISPlay ON")
    rows = re.findall(r"\[([^\[\]]+)\]", scope.query(":POWer:QUALity:STATistics:RESult?"))
    table = {r.split(",")[0].strip('"'): [c.strip('"') for c in r.split(",")] for r in rows}
    head = table.pop("Name")
    cur = {k: si(v[head.index("Current")]) for k, v in table.items()}
    vrms, irms, p, crest = cur["Vrms"], cur["Irms"], cur["Real_P"], cur["I_CrestFactor"]
else:                                               # остальные: память двух каналов и numpy
    cmd(":WAVeform:MODE RAW")
    cmd(":WAVeform:FORMat BYTE")
    wave = []
    for ch in (1, 2):
        cmd(":WAVeform:SOURce CHANnel%d" % ch)
        pre = scope.query(":WAVeform:PREamble?").split(",")
        npts, yinc, yorg, yref = int(pre[2]), float(pre[7]), float(pre[8]), float(pre[9])
        raw = b""
        for start in range(1, npts + 1, CHUNK):
            cmd(":WAVeform:STOP %d" % min(start + CHUNK - 1, npts))
            cmd(":WAVeform:STARt %d" % start)
            raw += scope.query_binary_values(":WAVeform:DATA?", datatype="B", container=bytes)
        wave.append((np.frombuffer(raw, np.uint8) - yorg - yref) * yinc)
    v, i = wave
    vrms, irms = np.sqrt(np.mean(v * v)), np.sqrt(np.mean(i * i))
    p, crest = np.mean(v * i), np.abs(i).max() / irms
scope.close()
print("Vrms %.2f В, Irms %.3f А, P %.2f Вт, S %.2f ВА, PF %.3f, пик-фактор тока %.2f"
      % (vrms, irms, p, vrms * irms, p / (vrms * irms), crest))

How it works. The series comes from the model name: three digits — DHO800/900, four — DHO1000/4000; the last digit is the number of channels, so :SYSTem:RAMount? is not needed (36м.7). :SYSTem:OPTion:STATus? UPA is sent only to a DHO4000: the DHO1000 has no such option, the DHO900 lacks the command itself. Everything that distinguishes the series is gathered in the if upa branch; channel setup, trigger and memory readout are shared. The 1M depth is chosen because it exists in all four series; with it, a 200 ms window means 5 MSa/s. Each command is checked against the error queue, as in 36ж: a command from another series will not pass silently.

Run. Four stand-in instruments in the container — DHO924, DHO1204, DHO4204 without the option and DHO4804 with the UPA option. Each knows only the command headers from the guide of its own series (the check compares them with the PDF) and returns the signal of the 36м.6 model:

DHO924: серия DHO900, каналов 4, память на 2 канала до 25M, :POWer нет — считаем сами
Vrms 23.07 В, Irms 2.805 А, P 42.29 Вт, S 64.70 ВА, PF 0.654, пик-фактор тока 2.48
DHO1204: серия DHO1000, каналов 4, память на 2 канала до 25M, :POWer нет — считаем сами
Vrms 23.07 В, Irms 2.805 А, P 42.29 Вт, S 64.70 ВА, PF 0.654, пик-фактор тока 2.48
DHO4204: серия DHO4000, каналов 4, память на 2 канала до 125M, :POWer нет — считаем сами
Vrms 23.07 В, Irms 2.805 А, P 42.29 Вт, S 64.70 ВА, PF 0.654, пик-фактор тока 2.48
DHO4804: серия DHO4000, каналов 4, память на 2 канала до 125M, :POWer есть
Vrms 23.06 В, Irms 2.806 А, P 42.30 Вт, S 64.71 ВА, PF 0.654, пик-фактор тока 2.49

Errors in the queues — 0 on all four; out-of-range points — 0. The "compute it ourselves" branch read the two channels in 8 calls of :WAVeform:DATA? and differed from the instrument in the last digit: a BYTE code has 256 steps, a voltage step of 0.4 V at 10 V/div. The DHO4804 received 5 :POWer commands and not a single memory read.

What the run does not prove. The stand-in instrument replies the way it is described in the guides — but a real one may reply differently: whether to wait for the statistics to accumulate before :RESult?, whether the table arrives as one line (a line break inside the reply would cut the read at the first line), what exactly the units of Imp are. The listing was not run on a DHO1000 or a DHO4000.

Mistake. Detecting the series by :SYSTem:RAMount? or by whether a command exists — "let us try, maybe it answers": the first lies on two-channel DHO1000 models, the second leaves an error in the queue and breaks the check of the next command.


36м.9 Pitfalls

"Higher-end" does not mean "more". There is no generator, frequency response, digital channels or histogram in the DHO1000/4000 guide (36м.4).

Power analysis on the DHO1000. Not supported; on the DHO4000 — only with the UPA option (36м.5).

The angle is not the shift. On a rectifier with a capacitor arccos(PF) = 49.2° with a shift of the fundamental of 10.8° (36м.6).

Imp off by a factor of 1000. The guide's example gives 991.39 Ω while Vrms/Irms = 0.9914 Ω — check the units on a known load (36м.5).

Default values out of range. ABSolute HIGH of 300 mV with a range of ±100 mV — set the levels explicitly (36м.5).

5M and 200 µV/div. Present on the DHO900, absent on the DHO4000 or DHO1000 (36м.7).

:SYSTem:RAMount? = 4 on a two-channel model. Take the channels from the model (36м.7).

Guides from different years. 2022 and 2024: a difference may be firmware; the instrument itself and its error queue settle it (36м.2).

Current scale by the rms value. With a crest factor of 2.49 the scale is chosen by the peak (36м.6).


36м.10 Summary

Next: section 36н "Oscilloscope and generator at work: a practicum on the DHO900 and DG900 Pro" — twelve tasks for an oscilloscope and a generator on one bench.

Open in the interactive handbook