Skip to content
shaostassen.com

← back to the write-up

Electrons → Instructions

Eleven levels, from charge drifting in copper to a running program that puts a bit back on a pin. Every level can be broken on purpose — that is the part worth your time.

Use ← and → to move between levels.

the whole ladder in about a minute

receiver input · 3.3 V LVCMOSVALID
V_IH = 2.0 V · reads 1 aboveV_IL = 0.8 V · reads 0 belowundefined3.3 V0 V
the same wire, physically
e⁻ drift ∝ E-field
logic read
1
V now
3.00 V
glitches / window
0
drive the wire
V target3.00 V
noise ±0.08 V

A bit is not a thing — it is a promise about voltage. This receiver speaks 3.3 V LVCMOS: anything at or below 0.8 V it swears to read as 0, anything at or above 2.0 V as 1. Between them is the forbidden zone: no guarantees. That band is where floating pins, slow edges, and ground bounce turn into intermittent bugs.

The gap between what a driver outputs (V_OL/V_OH) and what a receiver demands is noise margin — the entire budget for crosstalk, IR drop, and EMI. Try noisy line: when the trace strays across a threshold, the read flips and the glitch counter climbs. Every pull-up resistor, debounce routine, and Schmitt-trigger input you have ever used exists because of this picture.

Physics footnote: the dots below the scope are electrons drifting at roughly mm/s. The field that actually carries your signal moves at ~0.6c through FR4. Electrons are slow; electromagnetism is fast.

Built as a standalone React component with no runtime dependencies. source ↗