Simulator

Free online ESP32 simulator, running in this tab

Mokxi is a free ESP32 simulator that runs in your browser, with nothing to install and no account needed. It runs eleven ESP32 boards, from the classic ESP32 DevKit on an Xtensa core to the ESP32-S3, C3 and C6, each on the real memory map for its supported peripherals, with your sketch compiled in the tab. The one running here is the ESP32-C3-DevKitM-1.

  • 505parts on the bench
  • 45boards running now
  • 1.00xreal time, on every board
ESP32-C3: blinklive0.000 s 0.00x
Click to open it in the editor
Real firmware, running right now on our own core. Click it to open the circuit in the editor.
What is modeled

The numbers, not the marketing

Taken from the board's own contract document and put in plain words.

The coreRV32IMC with Zicsr, machine mode, one instruction per cycle at 160 MHz, passing riscv-tests 67 of 67.
PeripheralsGPIO and IO_MUX at their real register offsets, UART0 paced at the configured baud rate and wired to the serial monitor, and the SYSTIMER, which parks the core during delay() rather than spinning on it.
WiFi, simulatedThe board joins a network, fetches a page and serves one, with the Arduino calls a tutorial gives you. There is no radio and no 802.11 under it. Four made-up addresses under .mokxi answer inside this tab, and signed in you can switch on real internet for HTTP and HTTPS requests to real hosts.
What is not thereA radio of any kind: WiFi and Bluetooth LE are simulated, with no radio under either. This page is the DevKitM-1; the XIAO ESP32-C3 and the SuperMini have boards of their own.
Boards

Every ESP32 board here

Three chip families on two instruction sets, each board on its own pinout.

ESP32 DevKit V1The classic ESP32 on an Xtensa LX6 at 240 MHz: the GPIO matrix, UART0, timer group 0, a twelve-bit ADC1 and the eight LEDC PWM channels, on the real memory map.ESP32-DevKitC V4Espressif’s own ESP32 board: the WROOM-32 module, thirty-eight pins named by GPIO, a full inch between the rows.Freenove ESP32-WROVERFreenove’s ESP32-WROVER board (FNK0060): a classic ESP32 on forty pins named by GPIO, with USB-C and a BOOT button.Wemos LOLIN32 LiteA classic ESP32 on a narrow board with a LiPo socket: twenty-six pins named by GPIO, 0.9 inch between the rows.Wemos D1 R32A classic ESP32 on the Arduino Uno’s outline, with the Uno’s four headers, so a shield plugs in.Cheap Yellow Display (ESP32-2432S028R)A classic ESP32 behind a 2.8 inch 240x320 ILI9341 screen with a resistive touch film, wired as the real board wires them.LilyGO TTGO T-DisplayA classic ESP32 with a 1.14 inch 135x240 ST7789 screen and two buttons, on twenty-four pins named by GPIO.ESP32-S3-DevKitC-1The ESP32-S3 on an Xtensa LX7 at 240 MHz: GPIO matrix, UART0, USB serial, ADC1, LEDC PWM and the RMT driving the RGB LED, on the real memory map.Seeed XIAO ESP32-S3The ESP32-S3 at 240 MHz on the XIAO’s thumbnail outline: fourteen pads, D0 to D10 in the XIAO’s numbering.Arduino Nano ESP32An ESP32-S3 at 240 MHz on the Nano outline, with the Nano’s D and A pin names and an orange LED on D13.ESP32-C3-DevKitM-1A RISC-V core at 160 MHz with GPIO, UART, the SYSTIMER, a twelve-bit ADC on GPIO 0 to 4 and LEDC PWM on any pin, on the real memory map.Seeed XIAO ESP32-C3The ESP32-C3 at 160 MHz on the XIAO’s thumbnail outline: fourteen pads, and D0 to D10 that are the XIAO’s numbers, not GPIOs.ESP32-C3 SuperMiniThe smallest ESP32-C3 board in common use, sixteen pins named by GPIO, at 160 MHz.ESP32-C6-DevKitC-1A second RISC-V board: thirty-one GPIOs, 512 KB of SRAM in one window, UART0, the SYSTIMER, a twelve-bit ADC on GPIO 0 to 6 and LEDC PWM on any pin.Seeed XIAO ESP32-C6The ESP32-C6 at 160 MHz on the XIAO’s thumbnail outline: fourteen pads, D0 to D10 in the XIAO’s numbering.
Go further

The full board page

Every peripheral area, every example and the wiring notes, in one place.

ESP32-C3 simulatorBlink, a button and the serial monitor, running.
How it works

Three steps from a blank tab to a running circuit.

  1. Open the editor

    It runs in your browser tab. Nothing to install, and you need no account to start.

    Your first project
  2. Wire it and write the code

    Drag parts onto a breadboard, run each wire from pin to pin, and write the sketch beside it.

    Wiring
  3. Press Run

    Your sketch compiles in the tab and runs on a model of the chip, with the Serial Monitor beside it.

    Run and serial
Reviews

What makers say about Mokxi.

“The AI checker helps check and correct my circuits, and it has way more components than Tinkercad. As a student I really appreciate the tool.”

ChloeEngineering student

“I’d been looking for a real online electronic simulator that was intuitive and complete when I found Mokxi. I was able to quickly import a Fritzing file and my Arduino sketch and start testing. Mokxi has all of the makings for the best online Arduino simulator I have been able to find!”

JayModel builderFeatured in his DioramaOS post

“I’m using Mokxi to develop and simulate an STM32-based four-wheel-drive robot car before building the actual hardware. It allows me to experiment with DC motor control, PWM, RPM measurement using photointerrupters, and different acceleration, braking, and reversing strategies, helping me understand and refine the system before implementing it in real life.”

NusretRobot car builder, Hamburg

Share your story

FAQ

Questions, answered.

Which ESP32 boards can I simulate?

Eleven: the ESP32 DevKit V1, the ESP32-DevKitC V4 and the LOLIN32 Lite on the classic Xtensa chip; the ESP32-S3-DevKitC-1, the XIAO ESP32-S3 and the Arduino Nano ESP32 on the S3; the ESP32-C3-DevKitM-1, the XIAO ESP32-C3 and the C3 SuperMini; and the ESP32-C6-DevKitC-1 and the XIAO ESP32-C6. The ESP8266 boards have a page of their own.

Does it simulate WiFi?

Yes, and it says so: the Arduino WiFi, HTTPClient and WebServer calls over a simulated network. There is no radio and no 802.11 behind it. A sketch can fetch and serve pages on addresses under .mokxi, and signed in you can switch on real internet to reach a real API over HTTP or HTTPS.

Does it simulate Bluetooth or MQTT?

Bluetooth, yes, simulated: BluetoothSerial and the BLE server talk to a phone in the editor’s Bluetooth pane, with no radio under it. MQTT, no: the network carries HTTP only, so an MQTT client compiles but cannot reach a broker. Wokwi simulates MQTT, if your project depends on it.

Can I write MicroPython or ESP-IDF code?

MicroPython, on the classic ESP32 boards (the DevKit V1, the DevKitC and the LOLIN32 Lite) and the Raspberry Pi Pico: choose MicroPython (main.py) in the board’s Firmware panel and the official firmware runs it. The other ESP32 boards run Arduino-style C++, compiled in the tab; for ESP-IDF or Rust on a simulated ESP32, Wokwi supports both.

Will my firmware run on a real board?

Firmware for the modeled peripherals targets the real register offsets. On the ESP32-C3, Upload to board (Beta) writes a hardware build to the board over Web Serial. Test the finished build on the board before relying on it.

Is it free?

Yes, every ESP32 board is on the free plan, with no card and no account needed to try it.

Simulators for one kind of circuit

A servo, a display, a motor driver or a rectifier, each already running.

Try your own firmware on the ESP32-C3

What you build here runs on the board on your desk, unchanged. Nothing to install and no account needed.