An oscilloscope simulator on a running circuit
Mokxi is a free online oscilloscope simulator that runs in your browser, with nothing to install and no account needed. A signal generator puts a 1 kHz sine, 2 V peak, into a 160 mH inductor and a 1 k resistor, and a two-channel scope watches both ends: one trace on the input, one on the filtered output. Change the frequency and watch the output shrink and slide behind.
- 455parts on the bench
- 43boards running now
- 1.00xreal time, on every board
What you can do here
In the circuit above, or in the editor it opens.
- Clip two channels to any two points and watch both voltages over time
- Step the time base and the volts per division on the scope’s face while the circuit runs
- Trigger on either channel, rising or falling, in Auto, Normal or Single
- Read peak to peak, frequency and duty off the measurement strip
- Put cursors on the trace, switch to XY, or look at an FFT in the Scope tab
- Drive it from the signal generator: a sine, a square or a triangle
What the running circuit shows
Two traces, one corner frequency.
The inductor is in series and the resistor is across the output, so the circuit is a low pass whose corner is where the inductor’s reactance equals the resistance: f = R / (2πL), which for 1 k and 160 mH is 995 Hz. The generator sits on 1 kHz, as good as on the corner, so in the engine the output peaks at about 1.41 V against the input’s 2.00 V, a ratio of 0.705, and lags it by 45 degrees, an eighth of a cycle. The screen shows 4 ms across: four whole cycles.
Turn the generator down to 100 Hz and the two traces sit almost on top of each other, 1.99 V against 2.00 V. Turn it up to 10 kHz and the output falls to about 0.20 V, a tenth of the input, and lags by nearly a quarter of a cycle. That is a filter’s frequency response, read off two traces at three settings.
How the scope is modeled
A real probe load, and no noise.
Each channel is 1 megohm to the ground clip, as a real probe is, and the engine counts that load: on the capacitor simulator’s circuit, 10 k charging 100 µF, the scope’s megohm holds the capacitor at about 4.95 V instead of 5.00 V. The screen is 256 samples, and the scope keeps four screens behind it so it can draw the newest one that starts on a rising edge, which is what makes a repeating waveform stand still. With no edge to find it free-runs, as a bench scope’s auto trigger does.
What it leaves out: the probe has no input capacitance, so there is nothing to compensate and no x10 setting, and there is no bandwidth limit, no noise and no vertical quantization, so the trace is exactly what the solver computed. Samples are point readings, so a spike narrower than the gap between two of them is missing rather than drawn as a thin line. There is no math channel and no persistence.
Questions
Is it free?
Yes. The circuit on this page, every part in it and the editor it opens in are on the free plan, with no card.
Do I need an account?
No. The circuit runs the moment the page does, and the editor opens without one. A free account is only for saving a project to the cloud and sharing it by link.
Can I use the oscilloscope with an Arduino?
Yes. Clip a channel to any pin and the scope draws what the pin does: a PWM output shows its duty cycle, and a serial line shows its bits. For several digital lines at once, the logic analyzer decodes UART, I2C and SPI.
Is there a function generator to go with it?
Yes. The signal generator makes a sine, a square or a triangle wave with a frequency, an amplitude, an offset and, for the square, a duty cycle, and it can drive anything on the canvas.
Does it work on a Chromebook?
Yes. It runs in Chrome with nothing to install, which is how many school physics and electronics classes use it.
More simulators
Each one opens on a circuit that is already running.
Read a trace
Open the circuit, change the frequency and watch both traces. Nothing to install, and no account needed.