Real boards, built from the datasheets
Mokxi simulates 45 boards in your browser, free: 42 run your own C++ compiled in the tab, from the Arduino Uno to ESP32, ESP8266, Raspberry Pi Pico, STM32 and micro:bit boards, and the Raspberry Pi computers run Python. Explore each board, its supported peripherals and its model limits. For supported hardware, test your finished firmware on the physical board too.
45
boards running now
Real time
our own cores, cycle counted
Free
every board, on every plan
A RISC-V chip at 160 MHz, on the real memory map.
The classic Arduino, with an ATmega328P running at 16 MHz.
The Uno’s chip on a small board that fits a breadboard.
The big Arduino, with 54 digital pins and four serial ports.
An Uno-shaped board whose chip does its own USB serial.
A second RISC-V board, with 31 pins and simulated WiFi.
The classic ESP32 at 240 MHz, with simulated WiFi.
The ESP32-S3 at 240 MHz, with USB serial and an RGB LED.
The NodeMCU’s ESP8266 at 80 MHz, with simulated WiFi.
The RP2040 on our own Arm core, at real time.
The Pico’s chip and pins, with WiFi on a simulated network.
A tiny Arm board at 48 MHz where every pad reads analog.
The micro:bit with its 5x5 LED grid, buttons and speaker.
A whole microcontroller in an 8-pin chip for the breadboard.
An Arm Cortex-M4 at 84 MHz, with an ADC, PWM and serial.
ST’s Nucleo-64: an STM32F411 at 100 MHz with Uno headers.
An Arm Cortex-M3 at 72 MHz, with an ADC, PWM and serial.
The Uno shape with a 48 MHz Arm chip inside.
The Uno’s chip on the smallest Arduino, at 5 V or 3.3 V.
The Uno’s chip on the smallest Arduino, at 5 V or 3.3 V.
The Leonardo’s chip on a board that fits a breadboard.
A tiny board with the Leonardo’s chip and a USB socket.
An ESP8266 on a small board, with simulated WiFi.
An ESP8266 with eight pins, wired up with jumpers.
The ESP32-C3 on a thumbnail-sized XIAO board.
The smallest common ESP32-C3 board, at 160 MHz.
The ESP32-C6 on a thumbnail-sized XIAO board.
Espressif’s own ESP32 board, with 38 pins.
A classic ESP32 with an OV2640 camera socket, on 40 pins.
A classic ESP32 on a narrow board with a battery socket.
The ESP32-S3 on a thumbnail-sized XIAO board.
An ESP32-S3 on the Nano outline, with simulated WiFi.
The Pico’s RP2040 on the Nano outline, at 133 MHz.
The Pi 4, Pi 5 and Zero 2 W header, driven by Python with gpiozero.
The Pi 4, Pi 5 and Zero 2 W header, driven by Python with gpiozero.
The Pi 4, Pi 5 and Zero 2 W header, driven by Python with gpiozero.
The Uno R4 with a 12 x 8 LED grid and simulated WiFi.
The Uno’s chip on its own, wired up on a breadboard.
The Uno’s chip on its own, wired up on a breadboard.
A classic ESP32 on the Uno’s outline, with the Uno’s headers.
A classic ESP32 behind a 2.8 inch touch screen.
A classic ESP32 with a 1.14 inch color screen and two buttons.
The Pico’s RP2040 on a thumbnail-sized XIAO board.
The Pico’s RP2040 on a tiny board, with a NeoPixel.
The cheapest RISC-V chip there is.
Questions about the boards.
Are all the boards free?
Yes. Every board is on every plan, the Free plan included, with no time limit on simulating.
Does my own code run on them?
Yes. 42 boards compile your Arduino C++ in the browser and run it on a model of the chip; the Raspberry Pi Pico and the classic ESP32 boards also run MicroPython, and the Raspberry Pi computers run Python. Each board page says what is modeled and what is not.
Can I put the code on a real board?
Yes. The sketch is ordinary Arduino code, so the same sketch builds for the real board. With Pro, Send to board uploads it from Chrome or Edge to an Arduino Uno, Nano, Mega or Leonardo over USB, and a Pico or a micro:bit gets a file to drag onto it. Every board’s Arduino IDE steps are free on every plan.
Pick a board and press Run
Open the editor, drop a board on the bench and write the firmware. Nothing to install, and no account needed.