Docs

Everything Mokxi does, written down

Start with Getting started, search for what you are stuck on, or read the engine’s own contract documents at the bottom.

Getting started

Open the editor, find your way around it, and build something that runs.

The editor

Parts, wires, code, Run, and everything around them.

Placing parts
The docked part panel: search, categories, thumbnails, and three ways to get a part onto the canvas.
Wiring
Drag between pins and holes, recolour, bend, name a net, and hide a family in the layers panel.
Sticky notes
A square of paper on the board: what a corner of the circuit is for, in your own words.
Drawing on the canvas
Pen strokes, arrows and boxes over the circuit, on a layer of their own that the simulator never sees.
Tidying up
Lay the wires out again so none of them lies on another, and line the parts up on the breadboard grid.
Pinned comments
A numbered pin on the board with a conversation behind it: a question about one resistor, answered in place, without typing anything into the circuit.
Frames
A labeled box around a corner of the board. Drag its title bar and everything inside goes with it, so "the power supply" moves as one thing.
Reusable blocks
A bit of circuit you built once, kept by name and dropped in again whenever you need it: a voltage divider, a debounced button, the parts for your display.
Making chips
Build a circuit once, package it into a named chip, and place it as often as you like, inside other chips too.
The code editor and compiling
One project per board, a real clang running in the tab, and diagnostics you can click.
Run and the serial monitor
What Run actually does, what the readout means, and how to talk to a board.
The serial plotter
Graph the numbers your sketch prints, in the Plot tab beside Serial.
The operating point, sweeps and frequency response
Three readings one probe will not give you: every node's voltage at once, what a node does as you turn something, and what the circuit does at every frequency.
The debugger
Stop a board on a line of your own code, look at what it was doing, and step through it while the circuit stays exactly where the halt found it.
Ask: questions about your circuit
Ask a model about the circuit on the canvas and the code that runs it, in the Ask tab beside Serial, on your own API key from the AI provider you pick.
WiFi, simulated
The board can join a network, fetch a page and serve one. The radio is simulated: there is no 802.11, no real internet, and the WiFi runtime is ours.
The properties panel
What you can change about a selected part or wire, and where the values go.
Undo, copy and paste
How far back undo goes, what copy takes, and what paste does with it.
Keyboard shortcuts
Every key the editor listens for, and the one rule about when it does not.
Saving and autosave
What the browser keeps, what the account keeps, and when each of them writes.
Sharing a project
The share sheet, who has access, what the link does, forking, and embedding a running circuit in a page.
Exporting PNG and SVG
A picture of the circuit, at what size, and which plans it is on.
SPICE netlists
Run a SPICE deck and plot the results, export a circuit as a `.cir` file, or import a netlist as parts and wires.
Working on a phone
The stacked layout, the bottom sheet, and two fingers on the canvas.
Install it as an app
How to add Mokxi to your home screen or dock from your browser, and what it changes.

Boards

Every board and the bare ATtiny85 chip: what each one models and what it leaves out.

The Arduino Uno
An ATmega328P at 16 MHz, what is modeled, and the sketches that ship with it.
The Arduino Nano
The Uno's chip on a board 45 by 18 mm, so it pushes into the breadboard instead of standing beside it, and two analog inputs an Uno has no pad for.
The Arduino Mega 2560
The Arduino for a project that ran out of pins: fifty-four digital, sixteen analog, four serial ports, on an ATmega2560 at 16 MHz.
The Arduino Leonardo
The Arduino whose USB socket goes to the chip itself: an ATmega32U4 at 16 MHz, with `Serial` on the USB and `Serial1` a port of its own on pins 0 and 1.
The ESP32-C3
A RISC-V core at 160 MHz on the real memory map, with no radio and a simulated network in place of one.
The ESP32-C6-DevKitC-1
A second RISC-V board: the same core as the ESP32-C3 at 160 MHz, with thirty-one GPIOs, half a megabyte of SRAM and an addressable RGB LED on GPIO 8.
The Raspberry Pi Pico
An RP2040 on our Cortex-M0+ core: one core, SIO GPIO, the TIMER, UART0 and PWM.
The Raspberry Pi Pico W
The Pico with a wireless chip on it. The chip is not modeled; the WiFi is simulated and says so, and the LED behind it works.
The Seeed XIAO SAMD21
A board the size of a thumbnail: eleven pads, all of them analog inputs, with `Serial` on the chip's own USB.
The STM32F411 Black Pill
A Cortex-M4 at 84 MHz with GPIO, four timers, USART1 and SysTick.
The BBC micro:bit V2
An nRF52833 on our Cortex-M4 core: GPIO, GPIOTE, three TIMERs, RTC0, UARTE0 and the 5x5 LED matrix.
The STM32 Blue Pill
An STM32F103C8T6 on our Cortex-M3 core at 72 MHz: GPIO through CRL and CRH, TIM1 to TIM4, USART1, a twelve-bit ADC and SysTick.
The Arduino Uno R4 Minima
The Uno everyone buys now: the same board, the same 5 V pins, an Arm Cortex-M4 underneath instead of an 8-bit AVR.
The ESP32 DevKit V1
The classic ESP32: an Xtensa LX6 at 240 MHz on the thirty-pin DOIT board, with the LEDC PWM controller, a twelve-bit ADC and the six pins that are input only.
The ESP32-S3-DevKitC-1
The ESP32-S3 on an Xtensa LX7 at 240 MHz: Espressif's own DevKitC-1, with its RGB LED on the RMT, two USB sockets, LEDC PWM and a twelve-bit ADC.
The ESP8266 NodeMCU
An ESP8266 board with simulated WiFi, an Xtensa LX106 at 80 MHz, D0 to D8 pins that differ from GPIO numbers, and software PWM.
The ATtiny85
A whole microcontroller in an eight-pin DIP: six I/O, two timers, a four-channel ADC, the USI, and a serial port the runtime bit-bangs for itself.
The Arduino Pro Mini
The Uno's chip on the smallest Arduino there is, with no USB on it, in the two builds it was always sold in: 5 V at 16 MHz, and 3.3 V at 8 MHz.
The Arduino Micro
The Leonardo's ATmega32U4, shrunk onto a board that pushes into a breadboard.
The SparkFun Pro Micro
The Leonardo's chip in a Pro Mini's footprint, with a USB socket on the end, and without the one thing people look for first: an LED on pin 13.
The Wemos D1 mini
The NodeMCU's ESP8266 on a board a third the size, with the same pin names and only the pins that do something.
The ESP-01S
An ESP8266 with its flash chip and an antenna on a module 24.8 by 14.3 mm, and eight pins.
The Seeed XIAO ESP32-C3
The ESP32-C3 on a thumbnail: 21 by 17.5 mm, fourteen pads, a USB-C socket and no LED of its own to blink.
The ESP32-C3 SuperMini
The smallest ESP32-C3 board in common use, and a blue LED wired the other way around from the DevKit's.
The Arduino Uno R4 WiFi
The Uno R4 with a 12 by 8 LED matrix on the board to draw on, and WiFi.

Parts

What is in the bin, where each part is documented, and how faithfully it behaves.

Finding a part
The bench, a part page, and the search box in the editor panel.
The part families
The nine categories the parts bin is sorted into, and what lives in each of them.
The bench instruments
Eight bench instruments you can wire into a circuit, with **Scope**, **Plot** and **Measurements** panels to read their results.
How faithfully a part behaves
What "analog islands solved by nodal analysis, digital everywhere else" means when you are the one wiring it.
The parts games are made of
A screen, something to hold, and the four circuits in the gallery that put them together.
LED
A light emitting diode: a real diode with a forward drop, not a resistor that glows.
Resistor
A true two-terminal resistor: Ohm's law, with no idea which way around it is wired.
Pushbutton (12 mm tactile)
The 12 mm tactile pushbutton in every kit: four pins, and real contact bounce.
VCC (power supply)
A positive supply rail: pick a voltage, and everything wired to it sits there.
GND (ground)
The 0 V reference every other part on the canvas measures against.
Clock
A free-running square wave source: pick a frequency, and it drives high and low forever.
Capacitor
A real capacitor, solved by the matrix rather than approximated part by part.
Inductor
A real inductor, solved by the matrix: the one two-terminal passive whose state is a current rather than a voltage.
Op-amp
An op-amp with a gain-bandwidth product, a slew rate, an output that stops short of its rails, and a current limit. Pick a model, or set the numbers yourself.
Signal generator
A bench signal generator on the canvas: sine, square or triangle, at whatever frequency and amplitude you set.
Function generator
The bench box: sine, square, triangle or sawtooth, with the knobs on the front and a real 50 ohm output.
Oscilloscope
A two-channel oscilloscope: clip it to any two nodes and watch the voltages over time while the circuit runs.
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.
Bench power supply
Nought to thirty volts, a current limit, and the two lamps that are the whole point of the instrument.
Frequency counter
Clip it on any net and read the frequency, the period, the duty, how long each cycle spends high, and how many pulses have gone by.
Logic probe
The pen with a needle on the end. Touch it on a pin and it tells you one of four things, and the fourth is one no other instrument here can tell you.
Component tester
Three sockets. Push two or three legs of an unknown part into them in any order and it names the part, measures it, and tells you which leg is in which socket.
Logic gate (ideal)
One ideal two-input logic gate: a teaching part, not a chip, with no supply pins to wire up first.
Inverter (ideal)
One ideal inverter: the companion to the ideal gate, with no supply pins and no chip behind it.
Bit switches, lamps and number parts
Switches, lamps, number parts, a constant bit and a step clock: ideal logic parts for building circuits out of gates, with no supply pins.
The program ROM, the terminal and Kestrel assembly
A program ROM that holds Kestrel assembly and a text terminal that shows what it prints: the parts around the computer you build from gates.
Seven-segment display
A single-digit 0.56 inch seven-segment LED display: eight plain LEDs in one package, nothing more.
Slide switch (SPDT)
A three-pin SPDT slide switch: the pole in the middle moves between the two ends as you click it.
Buzzer (active)
A 5 V active piezo buzzer: apply DC the right way around and it makes its one note.
The 74HC logic family
74HC00, 74HC04, 74HC08, 74HC32, 74HC86, 74HC74 and 74HC595. These are real chips, not teaching gates, each with its own page below.
74HC02 quad NOR gate
Four two-input NOR gates in a 14-pin package: the output is high only when both inputs are low.
74HC14 Schmitt-trigger inverter
Six inverters, with the 74HC04's pinout, and one difference that is the whole point of the part: each input has two switching thresholds instead of one.
74HC138 3-to-8 decoder
Three address inputs choose one of eight outputs, and that output goes **low** while the other seven stay high.
74HC161 synchronous counter
A 4-bit binary counter in which every output changes on the same clock edge.
74HC165 parallel-in shift register
The 74HC595 turned around. The 595 gives you eight outputs from three pins; the 165 gives you eight **inputs** on three pins.
74HC193 up/down counter
A 4-bit binary counter that counts both ways, with a separate clock for each direction.
CD4017 decade counter
The LED chaser chip: ten outputs, exactly one of them high at a time, and every clock edge moves the high one along to the next.
CD4511 seven-segment driver
Four wires in, one lit digit out: a BCD to seven-segment decoder for a common-cathode display.
DIP switch (4 and 8 way)
A row of tiny slide switches in the body of a chip.
Resistor network (SIP)
Four or eight equal resistors in one single in-line package, every one of them between its own pin and a shared common pin.
NE555 timer
The bipolar 555 timer: the chip in every beginner's kit, modeled down to its own internal comparators and flip-flop.
MAX7219 LED matrix driver
The MAX7219, wired to 8x8 LED matrix modules the cheap boards use: three wires in, and a chainable output.
MAX7219 eight-digit display
Eight red seven-segment digits on a MAX7219 module, three wires in and a cascade out. Aliases: 8-digit MAX7219 module, LedControl display.
WS2812 addressable LEDs
Addressable RGB LEDs on one wire, with no clock: aliases WS2812B, NeoPixel. A strip, a ring, or a 16-wide matrix, all the same part.
SSD1306 OLED display
The 128x64 OLED module every hobby kit has, over I2C. Aliases: 0.96 inch OLED, I2C OLED display.
ILI9341 color TFT
The 2.4 inch 240x320 color TFT panel, over 4-wire SPI. `DC` says whether a byte is a command or data; everything else follows from that one line.
Thumb stick (joystick)
The two-axis thumb stick module, KY-023 style: two potentiometers and a push switch under one cap.
Rotary encoder (KY-040)
The KY-040 rotary encoder module, with its own push switch: a shaft that counts clicks either way around.
Piezo element (passive)
A passive piezo disc: the other half of the buzzer pair, with no oscillator built in. It sings whatever frequency you drive it at.
Potentiometer
The three-pin rotary potentiometer every kit has a handful of. A carbon track from pin 1 to pin 3, with a wiper on pin 2 that runs along it as the shaft turns.
Slide potentiometer
The 45 mm slide potentiometer off a mixing desk: the same carbon track as the rotary potentiometer, laid out straight with a knob you push along it.
LDR (light-dependent resistor)
A light-dependent resistor, the GL5528 style: a two-legged resistor whose value depends on how much light is falling on it. Aliases: photoresistor, photocell.
TMP36 temperature sensor
The TO-92 analog temperature sensor, TMP36 style: three legs, no protocol, and a voltage that is the temperature.
LM35 temperature sensor
The LM35 precision centigrade sensor in a TO-92 case: 10 mV a degree from 0 V at 0 °C. Aliases: LM35DZ, analog temperature sensor.
HC-SR04 ultrasonic sensor
The four-pin ultrasonic ranger, HC-SR04 style: two transducer cans, a 5 V supply, and two logic pins. Aliases: ultrasonic sensor, ping sensor.
Servo (hobby, SG90 style)
The nine-gram hobby servo, SG90 style: three wires, and a horn that walks to the angle a pulse width tells it.
DC motor
A small brushed DC motor, the yellow gearbox kind: two terminals, and nothing driving it.
Gamepad (six-button pad)
A six-button console-style pad: a four-way D-pad plus A and B, each switch to ground on its own pin.
Arcade button (30 mm)
The 30 mm cabinet button with a microswitch under it: the switch you can hold for an hour with no fatigue.
Tilt switch (SW-520D)
The rolling-ball tilt sensor, SW-520D and its twins: a little metal can with two legs and a conductive ball rolling between two contacts inside.
Diode
The small-signal and rectifier diode, 1N4148 and 1N400x style: current goes from anode to cathode and not the other way, and that is the whole part.
Zener diode
The 1 W 1N4728A to 1N4742A family. Reverse biased it blocks like any other diode **until** it reaches its own voltage, and then it holds it there.
Transistor
A small-signal bipolar transistor, NPN and PNP, 2N2222 and BC547 style: a little current into the base lets a much larger one through from collector to emitter.
MOSFET
An enhancement-mode MOSFET, N and P channel, 2N7000 and IRF540N style: a *voltage* on the gate switches the channel between drain and source.
RGB LED
A common-cathode RGB LED in one 5 mm package: four legs, three separate LED dice under one lens.
Relay module (SRD-05VDC style)
The single-channel relay module every kit ships: a coil, a spring, and a metal arm with a contact on the end.
Relay boards: two and four channels
The green boards with a row of blue relays, one screw terminal per relay and a control header at the end.
DPDT relay
A bare 5 V double-pole double-throw signal relay, the small sealed kind: two changeover contacts on one arm, and a coil with nothing in front of it.
L298N motor driver module
The red board with the black heat sink that drives the two wheels of nearly every robot car.
DRV8833 motor driver
A small dual H-bridge breakout for two DC motors, from 2.7 V to 10.8 V, and the driver in many small robot kits.
2WD robot car chassis
The body of nearly every robot car kit: two TT gear motors on 65 mm wheels, a caster and encoder discs, driving across the canvas.
Limit switch (lever microswitch)
A lever microswitch with COM, NO and NC tags: the limit switch on robots, printers, turntables and conveyors.
Robot arm (4 servos)
A four-servo desktop robot arm: base, shoulder, elbow and claw, each an SG90 on its own signal pin.
PCA9685 16-channel servo driver
A 16-channel, 12-bit PWM board that runs sixteen servos from two I2C wires, with the Adafruit PWM Servo Driver library built in.
TB6612FNG motor driver
The Toshiba TB6612FNG dual motor driver on its breakout board: two H bridges for two DC motors. Aliases: TB6612, SparkFun motor driver, dual H-bridge.
L9110S motor driver
The HG7881 dual motor driver module: two L9110S chips, one per motor, on a small blue board. Aliases: L9110, HG7881, L9110S fan driver.
Gear motor with encoder
A gearbox motor with a two-channel Hall encoder, the JGA25-370, N20 or TT kind. Aliases: encoder motor, quadrature encoder motor.
Battery
A 9 V battery, a pack of AA cells or one or two 18650 cells, as a power source. Aliases: 9V battery, AA pack, 18650, Li-ion, 2S pack.
Solar panel
A small solar panel, the 6 V 1 W epoxy kind in STEM kits and solar builds. Aliases: solar cell, photovoltaic panel, PV panel, 6V 1W solar panel.
TP4056 charger
The TP4056 lithium-ion charger module, the small board with a USB socket that charges one 18650 cell. Aliases: Li-ion charger, 18650 charger.
Voltage regulator
A linear voltage regulator: the 7805, the AMS1117-3.3 module or the MCP1700-3.3 low dropout part. Aliases: LM7805, LDO, 3.3 V regulator.
A4988 and DRV8825 stepper drivers
The two small carrier boards that turn a bipolar stepper in every 3D printer and CNC kit.
NEMA 17 stepper motor
The square black motor on every 3D printer's axes: a bipolar hybrid stepper, 17HS4401 style, with two coils, four wires and 200 steps to a turn.
Vibration motor
A 10 mm coin vibration motor, the disc inside every phone and game pad.
Speaker (8 ohm)
A small 8 ohm speaker, the 40 mm paper cone in every kit: a coil in a magnet's gap, glued to a cone.
4x4 membrane keypad
The 4x4 membrane keypad, the sticky-backed one on a ribbon: sixteen keys, eight pins, and no chip at all.
Keypads: 4x3 and 5x4
The membrane keypad in three sizes: a twelve-key telephone pad, a twenty-key calculator pad, and the 4x4 you already know.
PS/2 keyboard
A real PS/2 keyboard on the two wires it has, with eleven-bit frames and scan code set 2. Click it while the simulation runs and type on it for real.
Handheld console
A games cabinet in one body: a 128x64 OLED above a D-pad, `A`, `B`, `Start` and `Select`, with a twelve-pin header along the bottom.
16x2 character LCD (HD44780)
The 16 by 2 character LCD, HD44780 style: sixteen pins, and a green or blue window with two rows of sixteen characters behind it.
Capacitive soil moisture sensor
The black "Capacitive Soil Moisture Sensor v1.2" stake: three pins at the head, no bare metal in the soil. Aliases: soil sensor, moisture sensor, plant sensor.
MQ-2 gas sensor
The MQ-2 on its FC-22 comparator board: a steel mesh can on six legs, two lamps, a trimmer and four pins. Aliases: gas sensor, smoke sensor, LPG sensor.
KY-038 sound sensor
An electret microphone on an LM393 comparator board with a blue trimmer, pins printed `A0 G + D0`. Aliases: sound sensor, microphone module, clap sensor.
Flame sensor
The flame sensor module, KY-026 style: a black infrared receiver standing off the end of an LM393 comparator board. Aliases: fire sensor, IR flame sensor.
Rain sensor
The rain sensor, FC-37 and YL-83 style: a plate of interleaved traces wired to an LM393 comparator board. Aliases: raindrop sensor, water sensor plate.
Water level sensor
The red water level sensor from starter kits: ten bare traces up a long board and three pins printed `S + -`. Aliases: water sensor, liquid level sensor.
TCRT5000 line sensor
The TCRT5000 reflective sensor on its LM393 board: a line follower's eye and a short-range object sensor. Aliases: line sensor, IR reflective sensor.
Line tracker, 5 channel
A five-channel line tracking board: five TCRT5000 sensors in a row, each with a comparator and lamp. Aliases: line follower sensor.
FC-51 obstacle sensor
The FC-51 infrared obstacle sensor: an IR LED and receiver on an LM393 board, one digital output. Aliases: KY-032, IR proximity sensor.
SW-420 vibration sensor
The SW-420 vibration sensor: a sealed vibration switch on an LM393 board, one digital output. Aliases: vibration switch, shake sensor.
49E linear Hall sensor
The 49E linear Hall sensor (Honeywell SS49E), a TO-92 whose output follows the magnetic field. Aliases: SS49E, KY-035, analog Hall sensor.
Force-sensing resistor
A force-sensing resistor, Interlink FSR 402 style: a round half-inch pad on a flat tail, with two legs at the end. Aliases: FSR, pressure sensor, force sensor.
Flex sensor
A flex sensor, the 2.2 inch Spectra Symbol strip: thin plastic with carbon ink along one side, two legs at one end. Aliases: bend sensor, flex strip.
HX711 and load cell
The HX711 load cell amplifier on its green board, wired to a bar load cell: the kitchen scale every kit builds. Aliases: load cell, scale, weight sensor.
A3144 Hall effect sensor
The Allegro A3144 Hall effect switch in a flat TO-92, and the magnet you hold up to it. Aliases: Hall sensor, KY-003, magnetic switch.
Slotted photo interrupter
A slotted optical switch on its small board (the KY-010), with an encoder wheel to spin through the slot.
TTP223 touch sensor
The TTP223 capacitive touch module: a small red board with a round pad printed on it. Aliases: touch button, capacitive touch sensor, touch pad.
20x4 character LCD
The big brother of the 16x2: four rows of twenty characters on the same HD44780 controller. Aliases: LCD2004, 2004A, 20x4 LCD.
SH1106 1.3 inch OLED
The 1.3 inch 128x64 OLED module. Aliases: 1.3 inch OLED, SH1106G.
SSD1306 128x32 OLED
The 0.91 inch OLED strip: 128 by 32 pixels on the same SSD1306 as the 128x64 module, on the same two wires at the same address, `0x3C`.
ST7735 1.8 inch TFT
The 1.8 inch 128x160 color TFT on the red board with the SD card slot on the back. Aliases: 1.8 inch TFT, ST7735S, 128x160 TFT.
ST7789 IPS TFT
The small IPS color TFTs: the square 1.3 inch 240x240 board, the 2 inch 240x320, and the 1.14 inch 135x240 on the TTGO T-Display.
GC9A01 round display
A 1.28 inch round IPS color display, 240x240 pixels, on a GalaxyCore GC9A01 driven over SPI. Aliases: round TFT, 1.28 inch round LCD, GC9A01A, watch display.
SSD1680 e-paper display, 2.13 inch
A 2.13 inch 250x122 black and white e-paper panel on an SSD1680 over SPI. Aliases: 2.13 inch e-ink, WeAct e-paper, DEPG0213BN.
ILI9341 touch TFT
The red 2.8 inch 240x320 TFT with a resistive touch panel: an ILI9341 display and an XPT2046 touch controller on one board.
Nokia 5110 LCD
The 84x48 screen out of the Nokia 5110 and 3310 phones, on a small board with eight pins. Aliases: Nokia 5110, PCD8544, 84x48 LCD.
LED bar graph
Ten rectangular LEDs side by side in one 20-pin block. Aliases: 10 segment bar graph, DC-10, LED level meter.
Four-digit seven segment display
Four 0.56 inch digits with their decimal points in one block, and no chip behind them.
HT16K33 four-digit display backpack
Four red digits and a colon on an HT16K33 I2C backpack at `0x70` to `0x77`. Aliases: Adafruit 7-segment backpack, I2C 4-digit display.
The 16x2 character LCD
Two rows of sixteen characters, on sixteen pins or on four. The HD44780 command set, the busy flag that catches everybody, and the I2C backpack.
Sensors that are a resistor or a switch
The LDR, the NTC thermistor, the reed switch, the tilt switch and the PIR: five cheap parts, four of which have no chip in them at all.
Driving a motor
A board pin cannot run a motor. One transistor will switch one; an L293D will turn one round. What each costs you, and why.
Two wires, several chips
The MPU6050, the DS3231 and the TM1637 all live on two wires. Two of them speak I2C and one of them does not.
DS18B20 1-Wire thermometer
The three-legged digital thermometer, also sold sealed in steel waterproof probes. Aliases: Dallas temperature sensor, 1-Wire probe, 18B20.
BME280 and BMP280 pressure sensors
Bosch pressure sensors on a purple I2C breakout: the BMP280 reads pressure and temperature, and the BME280 adds humidity. Aliases: barometer, GY-BME280.
SHT31 temperature and humidity sensor
The Sensirion SHT31 on an I2C breakout: temperature and humidity at `0x44` or `0x45`. Aliases: GY-SHT31-D, Adafruit SHT31-D, SHT30, SHT35.
SGP30 air quality sensor
The Sensirion SGP30 air quality sensor on I2C at `0x58`: CO2 equivalent in ppm and TVOC in ppb. Aliases: Adafruit SGP30, eCO2 sensor.
TCS34725 color sensor
The TCS34725 color sensor on I2C at `0x29`, with a white LED to light what it looks at. Aliases: Adafruit TCS34725, RGB color sensor, TCS3472.
AHT20 temperature and humidity sensor
The ASAIR AHT20 on its four-pin I2C breakout: temperature and relative humidity at address `0x38`. Aliases: AHT20 module, AHT10 successor, DHT11 replacement.
BH1750 light sensor
The ROHM BH1750FVI on the GY-302 module: ambient light in lux over I2C, at address `0x23`, or `0x5C` with `ADDR` high. Aliases: GY-302, BH1750FVI, lux sensor.
DS1307 real-time clock
The clock chip that every Arduino book used before the DS3231 got cheap, on a small breakout with a coin cell. Aliases: Tiny RTC, RTC module, DS1307 clock.
INA219 current monitor
A current, voltage and power monitor on a purple breakout with a 0.1 Ω shunt resistor. Aliases: current sensor, power monitor, wattmeter module.
ADS1115 sixteen-bit ADC
Four analog inputs and a sixteen-bit converter on a blue I2C breakout. Aliases: 16-bit ADC, analog to digital converter, ADS1015.
24LC256 I2C EEPROM
32 KB of memory that keeps its contents with the power off, in an eight-pin DIP. Aliases: external EEPROM, AT24C256, 24C256, I2C memory.
PCF8574 I/O expander
Eight more pins over two wires, on a small blue board. Aliases: I2C expander, port expander, PCF8574A, IO expansion board.
MCP23017 I/O expander
Sixteen more pins over I2C, in a 28-pin DIP. Aliases: 16-bit expander, port expander, MCP23S17.
Signals you time, not read
The DHT sensor and the infrared remote share one thing, and it is the thing that matters: the information is in how long a pulse lasts.
A stepper is four coils and a table
The 28BYJ-48 and its ULN2003 board are the first motor most people meet that goes to a position rather than at a speed.
The HC-05, honestly
Mokxi does not model Bluetooth. What it models is the only half of an HC-05 a circuit can see, which is a UART.
The logic analyzer
Four probes, every edge with the time it happened, and a timing diagram on the face of the instrument.
MFRC522 RFID reader
The blue RC522 board with the antenna coil printed round its edge, and the cards that come in the bag with it. It reads 13.56 MHz cards and key fobs over SPI.
microSD card module
The small SPI breakout with a microSD socket, a 3.3 V regulator and a level shifter, and a 4 MB card in it. `SD.h` reads and writes files on it.
NEO-6M GPS module
The GY-NEO6MV2 breakout: a u-blox NEO-6M, a square ceramic patch antenna and a green LED that blinks once a second when it knows where it is.
nRF24L01+ radio
The little green 2.4 GHz transceiver with a zigzag antenna printed on the end. Aliases: nRF24, 2.4 GHz radio, RF module.

Accounts and plans

Signing in, what each plan unlocks, billing, the student price, invites and API tokens.

Live collaboration

Rooms, watch and edit links, who may start one and how it ends.

Classrooms

Running a class, handing work out, marking it automatically, taking it back in, and joining as a student.

Lessons and the learning game

The six paths, XP, levels, streaks, badges, the daily challenge and the leaderboard.

Troubleshooting

Eight things that go wrong, and what is actually causing each one.

Reference

The engine’s own contract documents, rendered from the markdown the code is built against.

What Mokxi simulates
The digital kernel, the analog islands and the SPICE deck runner, and what each one does not model.
The ESP32-C3 model
The peripherals, the memory map and the timing of the DevKitM-1.
The Arduino Uno model
The ATmega328P, with its timers, USART, ADC, interrupts, sleep and EEPROM.
The Arduino Nano model
The Uno's chip on a board that fits a breadboard, with two analog-only pins.
The Arduino Mega 2560 model
The ATmega2560: eleven ports, six timers, four USARTs and a sixteen-channel ADC.
The Arduino Leonardo model
The ATmega32U4, whose USB goes to the chip: Serial is a CDC endpoint and Serial1 is the UART.
The ESP32-C6 model
The DevKitC-1: thirty-one GPIOs, one SRAM window, and a plain account of what is not modeled.
The ESP32 DevKit model
The classic ESP32 on an Xtensa LX6: the GPIO matrix, LEDC, ADC1, and one core where the chip has two.
The ESP32-S3 model
The S3 on an Xtensa LX7: one SRAM seen through two buses, the GPIO matrix, the USB serial port, LEDC, the RMT behind the RGB LED, and one core where the chip has two.
The ESP8266 NodeMCU model
The LX106 in the call0 ABI, GPIO16 that is not a GPIO, software PWM, and the one block whose registers are invented.
The Raspberry Pi Pico W model
The Pico with a CYW43439 on it: the chip is not modeled, the WiFi is simulated, and the LED behind it works.
The XIAO SAMD21 model
The ATSAMD21G18A: two PORT groups, SERCOMs as USARTs, TCC and TC PWM, the ADC on every pad, and the USB as a byte pipe.
The Raspberry Pi Pico model
The RP2040 on our Cortex-M0+ core, with SIO GPIO, the TIMER, UART0 and PWM.
The STM32F411 model
The Black Pill on our Cortex-M4 core, with GPIO, TIM2 to TIM5, USART1 and SysTick.
The BBC micro:bit V2 model
The nRF52833 on our Cortex-M4 core, with GPIO, GPIOTE, the TIMERs, RTC0, UARTE0 and the LED matrix.
The STM32 Blue Pill model
The F103 on our Cortex-M3 core, with CRL and CRH GPIO, TIM1 to TIM4, USART1 and a twelve-bit ADC.
The Arduino Uno R4 Minima model
The RA4M1 on our Cortex-M4 core: the PFS port block, GPT PWM, SCI2 as Serial1 and a fourteen-bit ADC.
The ATtiny85 model
A whole microcontroller in eight pins: the tinyAVR core, two timers, the ADC, the USI and a serial port it bit-bangs.
Compiling in the browser
How a sketch becomes firmware with no build server anywhere.
Simulated WiFi
The network a sketch joins: what is faithful, what is Mokxi’s own, and what is not there at all.