A free Arduino simulator for students
Intermediate
Or see every lesson.
- 261parts on the bench
- 31boards running now
- 1.00xreal time, on every board
Mokxi is a free Arduino simulator for students. It runs in your web browser. You wire a circuit, write your sketch in C++, and press Run. There is nothing to install, and you do not need an account to start.
The circuit above is a reaction timer on an Arduino Uno. Wait for the lamp, then press the button. The serial monitor prints how fast you were.
Whether this is your first Arduino or your fourth course in embedded systems, you can use the whole simulator for free.
What is free
Every board and every part is on the free plan. That includes the Arduino Uno, Nano and Mega, ESP32 boards and the Raspberry Pi Pico. Your sketch compiles in your browser tab.
With a free account, you can save any number of public projects and five private or link-only ones, and go back to the last five saves of each one. You can share any project with a link.
Most coursework never needs more than that.
It runs on the computer you have
Mokxi runs in a modern web browser. It works on a laptop, a Chromebook and a phone. The simulation runs on your own device, so it does not wait for a server.
The first time you build code, the browser downloads the compiler, about 70 MB. After that, it is saved for next time.
Half price with your school email
Pro adds unlimited projects, live rooms with no limit on people, and PNG and SVG export. For a student with a school email address, Pro is $5 a month or $50 a year, instead of $10 a month.
Many academic addresses verify the moment you press the button. That includes .edu, and .edu.co in Colombia, .edu.mx in Mexico, .edu.ar in Argentina, .edu.pe in Peru and .edu.br in Brazil. It lasts twelve months, and you can renew it while you study.
If your school does not give out email addresses, tell us where you study on your account page. A person reads it.
In some countries, the pricing page also shows a lower regional price. It only shows one when Checkout will charge it.
Use it before your lab, not only after
Build the circuit from your lab handout the night before. Press Run and see if it does what you expect. If you are meant to predict a reading, find it here first.
Then at the bench, you know what a right answer looks like. If the real circuit reads something very different, look for a wiring mistake before you blame the parts.
After the lab, open the project again and change one thing. Swap a resistor, or change a delay in the code. Asking "what if" is quick when nothing can break.
For a lab report, the serial plotter has a CSV button. It downloads every point it drew, so you can make your own graph in a spreadsheet.
Common mistakes
An LED with no resistor. It still lights here, because no part in Mokxi burns out. On a real Arduino, it can damage the LED or the pin. Always put a resistor in series, such as 220 ohms.
A button with no pull-up. In Mokxi, a pin with nothing driving it reads LOW. On a real board, it can read either way at random. Use pinMode(pin, INPUT_PULLUP), and the pin reads LOW while the button is pressed.
Forgetting that buttons bounce. The pushbutton here bounces for a few milliseconds, like a real one. One press can look like several, so debounce it in your code.
Printing before the port is open. Call Serial.begin in setup() before your first print. On a real board, set the serial monitor to the same baud rate too.
A pin number that does not match. Check that the pin in your code is the pin your wire goes to. This one simple check catches a lot of bugs.
When you run out of free projects
Five projects go quickly over a term. Before you delete one, open the Save menu and press Download JSON. That saves the whole project as a file on your computer.
Later, Open JSON or SPICE in the same menu brings it back. You can also share a project with a link, so a classmate or a tutor can open it.
Read these pages in your language
Mokxi is written in English. The language menu at the top of the page opens any page in Spanish, Portuguese and other languages through Google Translate.
If your teacher has a class
Your teacher gives you a six-character code. Go to /class, type it and press the button. You need a free account to join.
Open an assignment from your class page. Build it, then submit it from the Save menu. If your teacher added checks, press Check my work to see how each one went. You can fix it and submit again.
Your new work replaces the old one, so you never hand in a pile of copies. If your teacher already graded it, your own Check my work does not change their grade. Handing in new work clears it, so they can grade the new version.
When your teacher writes back, the note shows on your class page. Read it before the next lab, because the next lab often builds on this one.
In a class on the Teacher plan, you get Pro’s room while you are in it, at no cost to you.
Questions
Is the Arduino simulator really free for students?
Yes. The free plan has every board and every part, with no time limit and no card. You only pay if you want Pro, and students get it at half price.
Does my .edu.co address count?
Yes. Addresses ending in .edu.co verify on the spot, and so do many other academic domains. Put it in under Student status on your account page.
Can I move my sketch to a real Arduino?
Yes. It is ordinary Arduino C++. Test the final circuit on real hardware before you rely on it.
Is it a free Tinkercad or Wokwi alternative?
It is free to use, with breadboards, chips, meters and a scope beside the boards. The comparison pages say where each tool is stronger.
Keep going
Build this for real
Open the editor, change a value and watch the number move with it. Nothing to install, and no account needed.