Click a question to expand it. For the full walkthrough, see the Manual.
Wire the generator into the filter's input and the filter's output back into the scope's second channel (keep the input channel on the generator side too, so Bode Lab can compute gain as Vout/Vin rather than trust the generator's own nominal amplitude). Run a THRU calibration first with the filter temporarily bypassed, if you want cable/probe response subtracted out. Set Start/Stop [Hz] to comfortably bracket the expected cutoff, turn on Auto Range, and press Single. The -3 dB bandwidth callout in the Analysis panel gives you the cutoff directly.
This is the textbook FRA use case dedicated instruments (Bode 100, Venable, Omicron) exist for - injecting a small AC perturbation into the feedback loop (usually via an injection transformer/resistor in the feedback path) and measuring the loop gain and phase margin. Bode Lab measures gain and phase the same way those do; the injection point and technique are the same as you'd use with any FRA instrument - see your supply's own feedback-loop topology for where to inject. Use a logarithmic sweep (the standard choice for this), typically from well below to well above the expected crossover frequency.
Turn on Measure THD in the sidebar, set THD harmonics (2f..Nf) to how many harmonics to sum, and run your sweep as usual - THD%/THD+N% show up in the status bar and CSV for every point, computed from the same waveform capture, no extra acquisition needed. See the status bar for what the two numbers mean, and the Manual's own note on why this is THD, not a noise-inclusive spec.
Put a known reference resistor in series between the generator and your DUT, wire the scope to read the voltage across the DUT (and, as usual, the generator/reference side too), turn on Impedance mode (Z), and enter that resistor's value as Rref [Ω]. The chart and status bar then read impedance magnitude instead of plain gain.
Turn on Stereo (2-channel), wire both output channels to the scope, set Right CH to the second channel, and pick a Mismatch f_ref [Hz] (typically 1 kHz) - the reported Channel Mismatch [dB] is normalized to read 0 dB there, so you see directly how the two channels diverge from each other across the sweep, in one pass.
Click Step Resp. in the ribbon - it opens a separate window that drives a square wave into your DUT instead of a sine sweep, and reads the time-domain response directly, using the same connected instrument pair.
With it on, Bode Lab adjusts the scope's V/div at every point, converging towards 60-80% of screen height before measuring - so the trace never clips or vanishes into the noise floor as gain changes across the sweep. Turn it off if you've already set a V/div you know covers the whole sweep (e.g. a DUT with a known, narrow gain range) and want a fixed scale throughout, or if the auto-convergence itself is behaving oddly on a particular instrument - see Settings → Auto-range/Timing for the knobs that tune it instead of just switching it off.
It's the smallest peak amplitude (on either channel) Bode Lab still accepts as a real reading - below it, a point is flagged ⚠ LOW SIGNAL and excluded, no matter what V/div is in use. Default is 5 mV. Lower it if you need to keep measuring deep into a filter's stopband (where a small, but still real, signal is expected); raise it if you're seeing "measurements" that are really just the scope's own noise floor. See the Manual for the full explanation.
⚠ OVERLOAD/CLIPPING (red) - the waveform is clipping the scope's current range. ⚠ INVALID READING (red) - the captured waveform disagreed with the scope's own independent voltage reading, almost always a stale/corrupted capture, not the DUT. ⚠ LOW SIGNAL (amber) - below Min amplitude. ⚠ UNSTABLE (low SNR) (amber) - noisy, but still plotted. ⚠ UNCALIBRATED FREQUENCY (orange) - this point falls outside your loaded THRU calibration's own range. Full reference: the Manual's status bar section.
Every cable, connector, and probe between the generator and your DUT (and between the DUT and the scope) has its own small gain/phase response that isn't zero, especially as frequency rises. THRU calibration measures that response with the DUT bypassed, so it can be subtracted from every later measurement - without it, the cable/fixture's own contribution gets reported as if it were part of the DUT.
Rigol DHO4404 (oscilloscope) + Rigol DG4202 (signal generator) is the pair Bode Lab is built and extensively tested against - this is what's named in the app's own description and what every feature above has been verified on.
Supported oscilloscope families (same driver, chosen automatically from the model name the instrument itself reports):
WORD waveform transfer. DHO4404 itself extensively tested; other DHO models
share the identical command set and are expected to work the same way.BYTE waveform transfer, with the extra command pacing an older,
slower scope needs to stay reliable over LAN. A Rigol MSO1104Z has been
confirmed working end-to-end this way - noticeably slower per point than a DHO4404, but
completes a full sweep with no manual workarounds. The rest of this group is classified by
name prefix only (not by each model's actual hardware), so it's treated as this same
8-bit/paced profile across the board even where a specific model might really be newer or
faster - it should still work, just not necessarily at DHO4000-series speed.Supported generator family: Rigol DG4000 series (DG4102/4162/4202/…) - DG4202 itself extensively tested; the rest share the same command set.
Every model above beyond the DHO4404+DG4202 pair "should work" on the strength of a shared, documented SCPI command set, but hasn't been individually verified against real hardware the same way. If you hit something odd on one of them, get in touch at petr@fotoventus.cz.
Not today - Bode Lab only ships drivers for the Rigol families listed above. The SCPI abstraction underneath is designed so a new driver is a self-contained addition (see the source), but nothing beyond Rigol is wired into the shipped app right now.
LAN/SCPI only in the current release - both instruments need an IP address on the same network Bode Lab's PC is on. USB isn't wired into the connect flow yet.
No - it's expected. That model's own single-core CPU can't reliably keep up with SCPI traffic paced as fast as the DHO4404 can handle, so Bode Lab deliberately paces every command to it more conservatively to stay reliable, at the cost of speed. A DHO4404 sweep is noticeably faster for exactly this reason.
Everything - sweep results, calibration, profiles, memory traces, preferences - stays on
your own computer, under %LocalAppData%\BodeLab, and wherever you choose to
export files. Bode Lab has no server, no account, and no telemetry - see the full
privacy policy.