The bench instruments

Eight bench instruments you can wire into a circuit, with Scope, Plot and Measurements panels to read their results.

They are in the part panel under Timers and analog, and they are ordinary parts: nothing about them is privileged, they are saved with the circuit, and what they measure is what the same engine is solving for everything else. Wire them in, press Run, and read them.

What each one is for

instrument the question it answers
multimeter what is this voltage, current, resistance, capacitance, frequency: anything, one number at a time
oscilloscope what shape is it, and what is it doing between the numbers
logic analyzer what are these four lines doing to each other
function generator what does it do when I drive it with this
bench supply what does it do at this voltage, and at only this much current
frequency counter how fast, exactly
logic probe is anything happening on this pin at all
component tester what is this part, and which leg is which

Every one of them has its own article with its pins, its properties and its limits. What follows is the half of each that is worth knowing before you reach for it.

The multimeter

Three jacks (V, A, COM) and a dial with ten positions on it, and turning the dial changes what is between the leads, not only what the display says. Volts is 10 Mohm across the node, and that megohm really loads it. Amps is a 1 ohm shunt in series, and there is a 2 A fuse behind it that goes if you put the A jack across a supply, after which the current range reads zero through everything, which is the symptom and the lesson. Ohms, continuity, diode and capacitance all push the meter's own small current, so they only mean anything with nothing else driving the leads, and the face says IN CIRCUIT when something is. Continuity beeps, under 30 ohms, and the beeper mark beside the digits mutes it.

HOLD, MIN/MAX and RANGE are the front panel and change nothing electrical, so they land while the circuit keeps running. The dial does not: turning it restarts the circuit, because it changes what the meter is.

The oscilloscope

Two probes and a ground clip. CH1 and CH2 go on any two nodes, GND goes to the circuit's ground, and the screen draws both against time.

The two knobs are on the face. Under the screen are the time base on the left and the volts per division on the right, each with a - and a + that step through 1, 2, 5 per decade the way a real front panel is marked. The same two settings are in the properties panel if you would rather type a number. Changing them does not restart the circuit: the trace keeps running while you change range, which is the whole reason the buttons are there.

The trigger is automatic. The screen holds 256 samples, and the scope keeps four screens behind it so it can pick which 256 to draw: the newest whole screen that starts on channel 1 rising through the middle of its own swing. That is what makes a repeating waveform stand still instead of crawling across the screen. TRIG appears in the corner when it found an edge; with no edge to find (a DC level, a trace that has only just started) it draws the newest screen anyway rather than leaving you with a blank one.

The strip along the bottom measures channel 1 off the trace that is on the screen: peak to peak, true RMS, frequency, and how much of each cycle it spends high. The crossings are interpolated between samples, so the frequency does not step in units of the sample rate. The other five measurements, and both channels, are on the Scope tab.

What it will not do: 256 samples a screen is the resolution, so a feature much narrower than a hundredth of the time base is not in the picture. A probe clipped to nothing reads as a gap in the trace rather than as zero. There is no math channel and no persistence.

The Scope tab

The face on the canvas is the instrument; the Scope tab along the bottom of the editor, beside Serial, is the same trace on a screen big enough to work on. It reads the same samples the face reads, so the two can never disagree, and the picker in its head chooses between the scopes when a circuit has more than one.

Both channels are first class. CH1 and CH2 each get their own column of measurements, and both are drawn on the same screen.

Nine automatic measurements, per channel, off the 256 samples that are on the screen and nothing else:

Vpp peak to peak
Vmax, Vmin the two peaks
Mean the arithmetic mean of the screen
Vrms true RMS of the screen, the offset included
Freq, Period from the crossings of the middle of the swing, interpolated
Duty how much of a period is spent above that middle
Rise 10-90 the first rising transition that climbs from a tenth to nine tenths of the swing, both crossings interpolated

-- where the screen does not hold the answer: fewer than two edges for a frequency, no rising transition for a rise time. That is the honest answer and it is not a zero. Mean and Vrms are over the whole screen, which is the mean and RMS of the waveform only when the trigger has put a whole number of cycles on it. That is a real scope's answer too, and the panel says so under the table.

An edge faster than one sample interval has its 10% and its 90% crossing between the same two samples, and what comes back is the interpolation across that one interval. That is under a sample time, and it is the resolution limit rather than a measurement of the edge.

Cursors. Two time cursors and two voltage cursors, dragged with the pointer, with Δt, 1/Δt and ΔV read out under the screen. Each of the three has a pin beside it for the lab notebook.

The trigger block is the six controls a bench scope has, and all six are properties of the part, so a circuit saved with its trigger set opens with it set and a lesson that says "trigger on the falling edge of channel 2" travels with its trigger:

  • Source, CH1 or CH2: which channel the edge is looked for on.
  • Slope, rising or falling.
  • Level, with an auto box. Auto uses the middle of that channel's own swing, which is what makes an unattended trace stand still; clear it and type a number of volts, and the level is drawn on the screen as a dashed line.
  • Mode: Auto draws the newest screen when there is no edge to be found, the way a bench scope's auto trigger does. Normal keeps the last screen that did trigger and says it is armed. Single is the same with a Re-arm button: the first edge after Re-arm is held on the screen and stays there.
  • Hold-off, in milliseconds: how long after one edge the next may trigger. This is the control for a burst with two edges a cycle, which otherwise jumps between them.

XY puts CH1 across and CH2 up, which is the view for a Lissajous figure, a transfer curve or a hysteresis loop.

FFT is the spectrum of the window that is on the screen, in decibels relative to one volt peak against a logarithmic frequency axis, with the strongest peak marked and interpolated across its neighbors. The line under it says the three numbers that make it readable: the window function is Hann, the resolution is one bin every 1/(time base) hertz (a 20 ms time base resolves 50 Hz and no finer), and the transform is over 256 points, once, with no averaging. The Hann window costs a factor of two in resolution (its main lobe is four bins wide) and buys about 31 dB of side-lobe rejection, which is why a tone here has three bins of skirt rather than a smear across the axis. A tone that does not land on a bin center is spread across its neighbors; that is the window, not the circuit.

The logic analyzer

Four probes and a ground clip, and it records edges rather than samples: every moment one of the four channels changed, to the picosecond the kernel keeps. A channel nobody is driving is drawn down the middle of its lane rather than as a zero, because floating and low are different things.

- and + change how much time the face shows, C throws the capture away and ↓ exports the whole of it as CSV.

The decoders

Set the decode property to uart, i2c or spi and the bytes are written over the trace at the times they happened. Nothing about the capture changes: the same edges are on the screen, a decode is a reading of them, and switching decoder re-reads the capture that is already there rather than running the circuit again.

The probes carry a fixed meaning per decoder, which the strip under the screen prints so it cannot be got wrong:

decode D0 D1 D2 D3
uart the line
i2c SCL SDA
spi SCK MOSI MISO CS

UART takes a falling edge as a start bit and then reads the line in the middle of each bit, which is what a receiver's oversampling does and is what makes the decode insensitive to an edge landing a little early. Least significant bit first, eight data bits, the parity property (none, even or odd), then the stop bit; a stop bit that is not high is a framing error and is printed as one rather than swallowed. Set baud to the rate the sketch uses. At the wrong baud you get bytes, and they are wrong ones, and the frame errors are the clue, which is what a real analyzer does too.

I2C takes a start as SDA falling while SCL is high and a stop as SDA rising while SCL is high, and clocks every bit in on SCL's rising edge, where the spec says data must be stable. The first byte after a start is printed as the address and the direction (0x68 W), the ninth clock of every byte is the acknowledge (+ for ACK, ! for NACK), and a repeated start is marked Sr, which is the thing to look for when a read from a register goes wrong. Ten-bit addressing is not decoded; nothing in the parts bin uses it.

SPI takes the bit on the sampling edge (the first edge of each bit in modes 0 and 3, the second in modes 1 and 2) and groups the words by chip select: everything between CS falling and CS rising is one transfer, printed as one line. A transfer that ends mid-word is reported as a short word rather than padded, because the usual cause is a chip select that went high early and that is the bug being hunted.

What a decoder cannot see: a stretch where a line is floating, which ends the frame rather than being guessed at; a voltage, because high and low are the kernel's own half-supply rule, so it cannot show a line sitting in the forbidden band; and more than the four channels the part has.

Open the desk clock to see it working. The analyzer is on the DS3231's bus with decode set to i2c, and the transfer reads S 0x68W 0x00 Sr 0x68R and then seven BCD registers, which are the time the clock part was told to start at.

The Plot tab: the serial plotter

Graph the numbers a sketch prints, on every board that has a serial monitor. The serial plotter is the whole of it.

The Measurements tab: the lab notebook

A lab write-up is a table of readings with a note beside each one. Until now every instrument here printed its number and then lost it: the scope's strip is overwritten on the next screen and the meter's display is four readings a second. This is the table, and it is part of the document.

Press the pin beside any reading and it lands in the table with the words the instrument used, where it came from and the simulated time it was taken at. The pins are on every measurement and every cursor difference in the Scope tab, on every line of the operating point in the properties panel, and in the tab's own picker, which lists every running part that has a reading: the multimeter, and anything else with a probe.

Each row has a name and a note you type into, and an × that takes it out again. CSV downloads the table; Copy markdown puts it on the clipboard as a markdown table, ready to paste into a write-up.

What it cannot see: a pinned reading is the number the instrument was showing at the instant you pinned it, with that instrument's own limits. It is a copy, not a live link. It does not change when the circuit does and nothing here re-measures it, which is exactly what a lab book is, and is why the time it was taken at is in the row.

It is saved with the project, so it travels with a share link, with an export and with a submission, and it is in the version history and the undo stack like everything else on the document. Two hundred readings is the limit.

The function generator

Sine, square, triangle and sawtooth from OUT down to GND. The shape, the frequency and the amplitude have buttons on the face; the offset, and the duty of a square wave, are in the properties panel.

It drives through 50 ohms, which is printed beside the posts and is the one thing about it worth knowing. Into a megohm you get the amplitude you asked for; into 50 ohms you get half of it; into anything in between you get the divider between the two. A real bench generator does exactly this, and a student who has never met it spends an afternoon wondering where the other half of their signal went.

Amplitude is the peak either side of the offset, so the defaults (2.5 V of amplitude on a 2.5 V offset) swing from 0 V to 5 V, which is what drives a logic input. Amplitude 2 on offset 0 swings to −2 V, which is perfectly legal and is how the negative half of an AC circuit gets simulated.

There is also a plain signal source in the panel (generator), which is a sine, a square or a triangle from an ideal output, with no face and no 50 ohms. Use it when you want to drive a node and stop thinking about it; use the function generator when the 50 ohms, the sawtooth or the knobs are the point.

The bench power supply

V+ and V-, a voltage knob to 30 V, a current limit to 3 A, and an output button. Two displays, and both show what it is actually supplying rather than what the knobs are set to, which is the entire instrument, because they are not the same thing.

CV means the voltage loop has the output and the terminals hold the setting. CC means the load asked for more current than you allowed, so the supply is holding the current instead and the voltage is wherever the load puts it. Twelve volts set, a 1 A limit and ten ohms across the terminals reads 10.0 V and 1.00 A with CC lit, and nothing is wrong. Set the limit to what a circuit should draw before you switch it on, and a part in backwards costs you a lamp instead of the part.

It is an analog source, so the nets it feeds are solved in the matrix. For simply powering a board, the vcc symbol is the lighter part.

The frequency counter

One probe, one ground clip, and a display with the frequency in the big digits and the period, the duty, the high time and a running pulse total under it. It counts edges at the instant they happen, so the reading does not step in units of a sample rate, and it measures from the first rising edge in the gate to the last rather than over the gate, which is why a quarter-second look at a 480 Hz square is good to better than a tenth of a percent. RST puts the total back to zero.

The logic probe

A pen with a needle, three lamps and a ground lead. H, L, ? for two drivers fighting, P for pulsing, and nothing lit at all for a pin nobody is driving, which is the fault a voltmeter cannot tell from a low and the reason to own one. Its thresholds are not its own: it shows the level the driver declared, so a 3.3 V board's pin is a clean high here for the same reason it is one on the board.

The component tester

Three sockets. Push any two or three legs of an unknown part in, any way around, and it names it: a resistor and its value, a capacitor and its value, a diode or an LED and which end is the anode, an NPN or a PNP with its gain and which socket the base is in, a MOSFET with its on-resistance and which socket the gate is in. It drives its own sockets and measures what comes back (it does not look at the netlist), which means one part at a time, and which means it can be fooled the way the real one can.

What none of them can see

The same sentence for all eight, because it is the same engine under all eight:

  • No noise. Nothing in Mokxi has any, so no instrument here has a minimum signal, a trigger sensitivity, a last digit that dances, or a noise floor. A spectrum's floor is the window's own side lobes and the arithmetic's rounding. A reading is the solver's answer to four figures, and a real instrument's would not be.
  • No accuracy specification. No ±0.5% and ±2 counts, no time base error, no calibration and no drift with temperature or age. What is quoted on these faces is arithmetic, and what is quoted on a real face is a promise about a physical thing.
  • Input impedance is modeled where it is stated and nowhere else. The meter's 10 Mohm, the scope's and the counter's 1 Mohm, the probe's 10 Mohm and the generator's 50 ohms are all really in the circuit and really load it. There is no input capacitance, no common-mode rejection and no attenuator behind any of them.
  • Burden voltage is modeled only on the meter's current range, where the 1 ohm shunt is a real ohm in a real series path. Nothing else here has a burden at all.
  • Resolution is stated where it bites. 256 samples a screen on the scope; 4 kHz sampling on the meter's integrating ranges, which makes an AC reading above about a kilohertz read low; and nothing at all on the ranges that count edges, which is the point of counting them.

Each article says what else its own instrument leaves out.

Circuits to open

A divider, measured is three resistors and the meter: the place to start. The rest of the dial is an unpowered board for diode, ohms, capacitance and continuity. The current limit is the supply into ten ohms it cannot hold. What is this part? is two testers with unknown parts in them. A logic probe puts one probe on a driven pin and one on a floating one. Counting a 555 has the counter and the meter's Hz range on the same astable. RC filter on the bench puts the generator into a low pass with the scope on both ends, so you can sweep it from the knobs and watch the phase lag open up. 555 on the bench has the scope and the meter agreeing on one signal; open the Scope tab on it and the measurements read 484 Hz at 67% off the trace. Desk clock is the one to open for the decoders, and Weather station for the plotter.

They are all in the editor's Examples menu and on the templates gallery.

See also