Multimeter

Every range a real handheld has, on a dial you turn on the face: DC and AC volts, DC and AC amps, ohms, continuity, diode, capacitance, frequency and duty.

Three jacks and ten dial positions, and, exactly like the real box, turning the dial changes what is between the leads rather than only what the display says. The reading appears on a four-digit display and updates four times a second.

Pins

Pin What it does
V The red lead for volts, ohms, continuity, diode, capacitance, frequency and duty.
A The red lead for current, with a 1 ohm shunt and a 2 A fuse behind it.
COM The black lead, on every measurement.

Every measurement uses COM and one of the other two; the face dims the jack the red lead does not belong in.

The dial

position what it measures what is between the leads
V– DC volts 10 Mohm from V to COM
V~ AC volts, true RMS the same 10 Mohm
A– DC amps a 1 ohm shunt from A to COM, in series with the circuit
A~ AC amps, true RMS the same shunt
Ω ohms a 30 µA test current out of V, with 100 kohm across it
·))) continuity the same, and it beeps under 30 ohms
▶| diode 1 mA out of V, clamped at 3 V
–|– capacitance 2 µA reversed twenty times a second
Hz frequency the same 10 Mohm, and a comparator
% duty the same

Turning the dial restarts the simulation. That is not a shortcoming: crossing between a range that pushes its own test current and one that does not changes whether the meter creates an analog island around itself, which is decided when the island is built, and on a bench it is the same thing as taking the leads out, turning the knob and putting them back.

HOLD, MIN/MAX and RANGE are not like that. They change nothing electrical, so they land while the circuit keeps running. HOLD and MIN/MAX are not saved with the circuit; the range the button picks is, as the range property below.

Properties

mode: one of dcv, acv, dca, aca, ohms, continuity, diode, capacitance, frequency, duty. The dial sets the same property, so a dial position is saved with the circuit and undone with everything else.

range: auto, or a full scale: 0.1, 1, 10, 100, 1k, 10k, 100k, 1M, in whatever unit the dial is on. Over the top of a manual range the display reads OL, which is the whole point of having one. The RANGE button steps through them and back to auto. On the capacitance and diode positions only auto is useful, because the smallest entry on the list is already far above anything either of them reads.

What each range does

Volts is the one you reach for. The 10 Mohm input really loads the node, which is why a divider with a 6.7 k source reads 1.666 V rather than 1.667 V: that is the meter being honest, not the engine being wrong.

Amps means breaking the circuit and putting the meter in the gap, red lead in the A jack. The 1 ohm shunt costs the circuit 20 mV at an LED's 20 mA, which is the burden voltage a real meter has. There is a fuse in that jack, rated 2 A, and putting the A jack across a supply blows it in ten milliseconds, after which the current range reads zero through everything, which is the symptom and the reason a meter with a blown fuse is so confusing. FUSE: fit a new one appears on the face; pressing it fits one. A real cheap meter has two current jacks, a milliamp one behind a 200 mA fuse and a 10 A one that is often not fused at all; this part has one jack and one fuse between the two.

AC is the true RMS of the moving part, with the DC offset left out, so a 2 V peak sine reads 1.414 V however it is sitting. The window is the aperture, a quarter of a second, and it is not locked to the signal: a frequency that does not fit a whole number of times into a quarter second is measured across a fractional cycle.

Ohms pushes its own small current, so it only means anything across something with nothing driving it. When something else is driving the leads, IN CIRCUIT appears and the reading is not one. What it reads is the resistance between the leads, which on a network is the parallel combination and not the part you meant to measure: 4.7 k in parallel with 10 k reads 3.20 k, which is the right answer to the wrong question. Neither this meter nor a real one can see a parallel path; lift a leg. Above 1 Mohm it reads OL, which is also what it reads with the leads in the air.

Continuity is the ohms range with a beeper on it, tripping at 30 ohms. It is the one measurement you take while looking at the circuit rather than at the meter, which is why it makes a noise; the beeper mark beside the digits mutes it, and what it is set to is remembered in your browser. A browser will not let a page make a sound until you have clicked on it, so the first beep of a session may be silent. The lamp is the reading and the tone is the cue.

Diode pushes 1 mA through the unknown and shows what it takes to push it, which for a part whose model is the Shockley equation is that equation's own answer at a milliamp and not a table of forward voltages. Backwards, a diode blocks, the milliamp climbs to the 3 V compliance clamp and the display reads OL, which is how you find which end is which. The clamp is modeled as what it is, a clamp across the terminals, so a blue LED reads OL here for the same reason it does on a cheap meter.

Capacitance charges the unknown with 2 µA through 5 Mohm, reverses it twenty times a second, and solves the first-order response from two samples taken at fixed instants inside the same charging ramp. Which means the reading needs no assumption that the ramp is straight (at the top of the range it visibly is not) and no edge to catch, because the meter is driving the ramp itself. A nanofarad to a millifarad, and OL outside. The tolerance is the solver's own error and nothing else, because the capacitor being measured has no ESR, no leakage and no dielectric absorption in its model; a Rust test holds four values over three decades to a tenth of a percent.

Frequency and duty count edges rather than samples, through the same comparator and counter the frequency counter uses, with the aperture as the gate. The comparator sits in the middle of the swing the last aperture saw.

The front panel

The reading updates four times a second, because the meter integrates over a quarter of a second before it shows you anything, the way a real one does. On a DC range that quarter second is averaged, which is why a DC meter on a square wave reads the duty cycle times the height: a real measurement, not an artifact.

HOLD freezes the display so you can get the probes out of somewhere awkward before you read it. MIN/MAX records the lowest and highest reading since you pressed it, under the digits. RANGE steps off auto.

What it does not model

There is no noise anywhere in Mokxi, so there is no minimum signal, no last digit that dances, and no accuracy specification at all: the reading is the solver's own number with none of the ±0.5% and ±2 counts a real meter's datasheet quotes. There is no calibration drift, no temperature coefficient, and no test-lead resistance to zero out. The fuse is a current and a time rather than an I²t curve.

The 10 Mohm input and the 1 ohm shunt are modeled, so the loading and the burden voltage are real; nothing else about the input stage is: no input capacitance, no common-mode rejection, no autoranging attenuator.

It samples at 4 kHz on the ranges that integrate, so an AC reading above about a kilohertz is under-sampled and reads low. That is a real instrument's bandwidth limit in miniature, and the answer is the same as on a real bench: use the scope. The frequency and duty ranges do not have that limit, because they do not sample.

A known disagreement with the real world: the diode range reads about 1.42 V on a red LED where a real meter on a real red LED reads nearer 1.6 V. The LED card is fitted to 1.8 V at 20 mA with an emission coefficient of 2, and that makes its curve too soft a decade down. It is written up in docs/accuracy-audit.md rather than quietly rounded.

Common mistakes

Measuring current across something instead of through it. A current range has to be in the circuit: break the connection and put A on one side and COM on the other. Put it across a supply instead and the fuse goes, exactly as it would on the bench.

Believing an ohms reading on a live circuit. IN CIRCUIT is the meter saying it cannot.

Believing an ohms reading on a network. It is a true reading of what is between the leads and a false reading of the part you meant.

See it in action

A divider, measured is the meter on its own, with something to do in every dial position. The rest of the dial is an unpowered board for the four ranges that only work with the power off. 555 on the bench has it averaging a square wave beside an oscilloscope measuring the same signal, and Counting a 555 has it on Hz beside a counter. Open them at /templates, and see the bench instruments for the whole set.