Source: https://mokxi.com/docs/editor/run-and-serial
Updated: 2026-09-27

Getting started The editor Placing parts Wiring Sticky notes Drawing on the canvas Tidying up Pinned comments Frames Reusable blocks Making chips The code editor and compiling Run and the serial monitor The serial plotter The operating point, sweeps and frequency response The debugger Ask: questions about your circuit WiFi, simulated The properties panel Undo, copy and paste Keyboard shortcuts Saving and autosave Sharing a project Exporting PNG and SVG SPICE netlists Working on a phone Install it as an app Boards Parts Accounts and plans Live collaboration Classrooms Lessons and the learning game Troubleshooting Reference

Docs / The editor / Run and the serial monitor

# Run and the serial monitor

What Run actually does, what the readout means, and how to talk to a board.

## Pressing Run

There are two Run buttons and they are the same button: one in the header, one
on the canvas toolbar. Both turn into Stop while a circuit is running.

Run does three things in order. It builds a netlist from the diagram, which is
where the breadboard stops existing (strips and wires are flattened into nets).
It builds any board's firmware that needs building, as
the code editor and compiling describes. Then
it starts the engine.

The engine runs in a Web Worker, not on the page's own thread, and hands back
one snapshot per animation frame. That is why the canvas stays smooth while a
board is executing a hundred and sixty million instructions a second.

## Editing while it runs

You can. The circuit rebuilds itself a moment after you stop editing, so a burst
of changes is one restart rather than twenty. Holding a pushbutton, turning a
potentiometer and typing into the serial monitor all work on the running
circuit.

## The readout

The header shows two numbers, for example 12.480 s 1.00x.

The first is simulated time: how long the circuit has been running in its own
world. The second is speed against the clock on the wall. 1.00x means the
simulation is keeping pace with real time, which is what you want. Below that
and the circuit is running slower than the real thing would;
the simulation runs slow says what causes
it.

Beside the readout is the engine badge, which says whether the WebAssembly
engine is up.

## Show levels

To read what a circuit is doing rather than watch it, turn on Show levels,
in the more menu on the canvas toolbar, or press Shift+L. Every net that has a
wire then carries a small live readout: H for a net driven high, L for one
driven low, X where two drivers of equal strength disagree, and Z for a net
nothing is driving at all, each with the net's voltage to two decimals beside
it. A net you have named shows its readout under its name and the rest show
theirs on the open stretch of their wires, never over a part. The numbers
repaint every frame, so a clock divider or a shift register can be read a net at
a time in front of a class.

It is off until you turn it on, and this browser remembers your answer. Stop the
simulation and the last frame stays on screen, grayed, which is usually the one
worth talking about. Zoom far enough out and the readouts go, so a whole board
is still a board, and an
exported picture never carries them: an export is of the
circuit, not of one moment of it running.

## The serial monitor

The strip along the bottom of the window. Anything a board writes to its UART
arrives here as text: UTF-8 decoded as it streams, carriage returns dropped,
\n ending a line. A half-written line is shown as it arrives rather than held
back until the newline.

- Clear empties the log. It keeps the last two thousand lines across every
board, and drops the oldest after that.

- The input row at the foot sends bytes back to a board. Type and press
Enter, or press Send.

- With more than one board talking, each line is prefixed with the board it came
from and a picker chooses which board the input row is talking to.

Each board keeps its own decoder, so two boards writing at the same time never
interleave bytes inside a line.

## Which pins carry serial

The serial monitor is wired to the board's UART directly, not to pins on the
breadboard. On the Uno that is USART0, on the ESP32-C3 it is UART0, on the Pico
UART0 and on the STM32F411 USART1. On the real hardware those signals share
pins with GPIO; here the pins stay GPIO and the bytes go to the monitor.

Nothing appearing? The serial monitor shows nothing.

### On this page

Pressing Run Editing while it runs The readout Show levels The serial monitor Which pins carry serial
