Arduino is an open-source electronics platform that can be used to make interactive projects. As such, if you like tinkering with an Arduino, you’ll need a breadboard, a lot of small components, and of course, an Arduino. Additionally, if you start more than one project at a time (as many of us do), you’ll need time and some money. Plus, you’ll be fidgeting with a lot of small jumper cables to make your ideas real.

All those parts can make for a lot of overhead, but there is a way around it. Before taking the plunge with the real deal, you can start experimenting with an Arduino simulator. A good simulator should allow you to digitally recreate several aspects of the process:

  • Design your own components and circuits (or import from some kind of library)
  • Create programs (sketches) or import from Arduino IDE
  • Simulate interaction between the Arduino, IO interfaces, and program
  • Design boards and schematics (optional but useful)
  • Export boards and schematics for PCB production (optional)

This article will help you figure out which simulator is right for your project. For each option, we’ll give you some background info and a simple example to try it out!

Back to Contents

Online

To start with, let’s look at the options that are available online. That’s to say, you’ll need a browser and a good internet connection – no need to download any programs.

Back to Contents

Advertisement
1
The Best Arduino Simulators (Online & Offline)

Microsoft Maker Code

A great place to start!
A great place to start! (Source: Raphael Bertasius via All3DP)

In Microsoft Maker Code, creating simulations with various boards, including Arduino models, is done with visual blocks, making it accessible even to those who have no prior coding experience. One can also opt for programming in Python or JavaScript. Everything in this environment is very intuitive, and once you nail down basic concepts, you’ll be able to create excellent simulations.

Despite it being an online platform, you can also connect physical devices. You’ll have access to a wide variety of extensions for sensors and other components that are a great help for simulations. In addition to the most basic functions, there are more advanced extensions that can be found lower down in the panel to give you additional features such as a joystick, sensors, or even commands for USB pen drive support and flash storage.

The UI is quite streamlined, displaying an illustrative panel with animations on the left and the block programming panel on the right. Some output commands display results even without an Arduino or a component being connected, such as sound. You can even print the electronic wiring diagram to assist with physical assembly.

  • Developed by: Microsoft
  • Open source: No
  • Best for: Beginners to intermediate users
  • Special features: Test various virtual components, beginner-friendly
  • Compatible with: All systems (web-based)
  • Price: Free

Example

Let’s see a basic example of an operation:

  1. Open the Microsoft Maker Code page.
  2. Click on “New project” and select a board.
  3. In the Music tab, click and drag the “play sound” block to the “on start” block.
  4. Select the desired sound.
  5. In the Music tab again, click and drag the “play melody” block to the “forever” block.
  6. Click on the musical note bar and select some squares that represent notes. Test your song with the triangle play button at the bottom of the field.

Back to Contents

Advertisement
Advertisement
Advertisement
2
The Best Arduino Simulators (Online & Offline)

Tinkercad Circuits

Where's the green ball?
Where's the green ball? (Source: Luca Dinale via Tinkercad Circuts)

Tinkercad Circuits is a free, online service from Autodesk that began in 2017 and is probably the most user-friendly Arduino simulator. You can easily design your own circuits, create a program in block or text format, and then debug it.

The simulation of Arduino boards and IO interfaces and the interaction with the code works like a charm, and the code can be downloaded and shared with other makers.

There are limits, of course. Tinkercad allows you to use any item from its library, but it doesn’t allow you to add new component options (Arduino modules, different models of Arduino boards, Arduino sensors) to the library, and you can’t modify the items that are available in the library. Some more basic components such as resistors can be parameterized, but this isn’t an option for microcontrollers, and for Arduino, there’s only the Arduino Uno R3 model.

If you want to give Tinkercad a try, you’ll need to join, choosing either an educator, student, or personal account.

  • Developed by: Autodesk
  • Open source: No
  • Best for: Beginners to intermediate users
  • Special features: Export boards and schematics for PCB production
  • Compatible with: MacOS, Windows, Linux, and so on (web-based)
  • Price: Free

Example

To get a feel for the program without joining, you can test out this virtual tape measure. Once you’ve opened the link:

  1. Click on “Simulate” (change your browser to full screen).
  2. Click “Start Simulation”.
  3. Click on the HC-SR04 ultrasonic sensor and drag the small green circle to change the distance (if the image is too big, you can drag it with the left mouse button or zoom with the mouse wheel).

And, it works! The distances on the LCD screen are equal to the data shown by the sensor. For more, check out our article on how to design and simulate circuits in Tinkercad.

Back to Contents

Advertisement
Advertisement
Advertisement
3
The Best Arduino Simulators (Online & Offline)

Wokwi

A really nice web interface, not for beginner
A really nice web interface, though not recommended for beginners (Source: Wokwi)

Wokwi is based on AVR8js, a JavaScript implementation of the AVR 8-bit architecture. On the GitHub page, you can find Wokwi-elements and Wokwi-playgrounds. From here, you can explore examples and simulate them, as well as modify the sketch and the circuit appearance (using the diagram.json file).

If you want to save (make a copy of) an example, you’ll need to register with Google or GitHub. After signing in, you’ll see a small menu (in the top right corner of the screen) with the following choices: Discord server, My projects, The Club, and Logout.

It’s not a drag-and-drop interface, so you’ll need to study existing examples, copy them, modify them, and check the results yourself. Once you’ve done that, you can make your own simulation. To design your own circuit, you need to modify the diagram.json file. See docs for more information.

Advanced users can create or add their own parts and components as well as add Arduino libraries (click the small arrow next to the list of files, choose “New File…” and add .h or .cpp files). The only limits are that you can’t export boards and schematics for PCB production.

The developer and the community are very proactive and Wokwi has evolved quickly. In the Discord channel, you can ask questions and receive support, including from the developer.

And if the free version isn’t up to your needs, you can join the Wokwi Club for ~$7/month, which, in addition to customizability, also allows you to keep your projects private.

  • Developed by: Uri Shaked
  • Open source: Yes
  • Best for: Intermediate to advanced users
  • Special features: Discord chat (online help), GitHub repository
  • Compatible with: MacOS, Windows, Linux, and so on (web-based)
  • Price: Free (optional monthly donation)

Example

Let’s check our test program:

  1. Register with Google or GitHub.
  2. Start the simulation by clicking on the white arrow inside a green dot (change your browser to full screen).
  3. Click on the HC-SR04 ultrasonic sensor and drag the slider to change the distance.
  4. If the image is too big, you can zoom with the mouse wheel or hide the code by clicking the small square on the right top side of the screen.

It works! The distances on the LCD screen are nearly equal to the data shown by the sensor.

Back to Contents

Advertisement
Advertisement
Advertisement

Online & Offline

The following simulators are available both online and offline, so different needs can be met.

Back to Contents

Advertisement
4
The Best Arduino Simulators (Online & Offline)

Virtual Breadboard & Avatar Hardware

Circuit design and serial monitor, all in a nice interface
Circuit design and serial monitor, all in a nice interface (Source: Luca Dinale via All3DP)

Virtual Breadboard is a Windows Store app. The interface is user-friendly and you can easily design your own circuits (with drag-and-drop tools). You can also upload your sketches in HEX format from Arduino IDE, Arduino Create, PlatformIO, Visual Studio, and so on.

The scope of its functionality includes simulating an Arduino board, IO interfaces, and program interacting. Additionally, you can export your project in SVG and KiCad format. What’s special about Virtual Breadboard is the inclusion of mixed reality virtual hardware and the opportunity to remodify hardware.

The simulator is a bit restrictive in that you can’t create or add your own parts and components nor create your own programs from the software interface. And finally, you can’t export boards and schematics for PCB production.

  • Developed by: James Caska
  • Open source: No
  • Best for: Beginner to intermediate users
  • Special features: Create mixed reality virtual hardware, remodify hardware
  • Compatible with: Windows
  • Price: App is free, Avatar hardware is ~$10, interface devices are $15-$60

Example

Mix virtual with real components
Mix virtual with real components (Source: Luca Dinale via All3DP)

To test the Virtual Tape Measure, download the software and install it on your PC. After doing that, you can start to use the Toolbox to add your components by clicking and dragging. For instance: “Toolbox > Integrated circuits > ATMega328p”.

You can now load your HEX file just by dragging it, but you’ll receive the following error message:

Unlicensed components: ATMega328Uno
Consider purchasing a license to enable these components at runtime

To check if our test program works, you’ll need a license and then you can:

  1. Start the Virtual Breadboard app.
  2. Click on “Menu > Open > Browse Files > Open DigitalTapeMeasure.vbb”.
  3. Power on (wait a few seconds).
  4. Move the slider on the left side of HC-SR04 to change wall distance.
  5. If you want to use a real Arduino, copy IO connections and open the sketch in your favorite editor, then upload it to the board.

It works! And the distances on the LCD screen are equal to the data shown by the sensor.

If you don’t want to buy a subscription, you can try the online beta examples.

Back to Contents

Advertisement
Advertisement
5
The Best Arduino Simulators (Online & Offline)

PICSimLab

A Linux-inspired interface
A Linux-inspired interface (Source: Luca Dinale via All3DP)

PICSimLab is a realtime emulator of development boards with an integrated MPLAB X/AVR-GDB debugger. It supports some PICSim microcontrollers and some Simavr microcontrollers. PICSimLab has integration with MPLAB X Arduino IDE for programming microcontroller boards.

You can design your own circuits, load HEX files, or upload directly from Arduino IDE. You can also simulate Arduino I/O interfaces and program interacting. Advanced users can create or add their own parts and components, but once again you can’t design boards and schematics and export them for PCB production.

  • Developed by: Luis Claudio Gambôa Lopes
  • Open source: Yes
  • Best for: Intermediate to advanced users
  • Special features: Emulate some PICSim microcontrollers, GitHub repository
  • Compatible with: Windows 32- or 64-bit, Ubuntu, MacOS (with Wine)
  • Price: Free

Example

  1. Download and install the software.
  2. Download and install Com0com (for serial emulation in Windows, use the PICSimLab manual).
  3. Start the software.
  4. Click on “File > Load Workspace”.
  5. Choose the DigitalTapeMeasure.pzw file.
  6. Move the slider on the left side of HC-SR04 to change the distance.
  7. Click on “Tools > Serial Terminal”.

Back to Contents

Advertisement
Advertisement

Offline

And to round things up, here are a few options that you can download and work with without needing to stay connected as you simulate.

Back to Contents

Advertisement
6
The Best Arduino Simulators (Online & Offline)

Flowcode

The all-in-one you were looking for!
The all-in-one you were looking for! (Source: Raphael Bertasius via All3DP)

Flowcode is a graphical programming platform with an integrated IDE for various controllers such as PIC, AVR, ARM, ESP, or Raspberry Pi. In addition to easily simulating Arduino, it offers a wide range of testing components and 3D or 2D environment visualization. With a simple click and drag, you can include editable command blocks in a flowchart to test your Arduino without even switching screens! Check out this YouTube video from StudentCompanion Electronics to see the program in action.

Flowcode is quite intuitive and suitable for both users who are just starting out and those with some prior experience. It uniquely features the ability to import 3D models in MESH, STEP, and OBJ file formats, making it perfect to experiment with electromechanical systems where motors, servos, and actuators can all be integrated into the digital representation.

There is a free version of Flowcode available for registered makers and hobbyists with a lot to offer and no limitations on project size. The Pro and Academic versions have a few special features related to debugging, paradigms, and documentation. Flowcode lays out all the differences in detail on their site. It’s available in six languages.

  • Developed by: Matrix TSL
  • Open source: No
  • Best for: Beginners to advanced users
  • Special features: Graphical programming and Integrated Development Environment (IDE)
  • Compatible with: Windows
  • Price: Free for makers and hobbyists, plus a 30-day trial for the Pro version (~$330)

Example

In addition to the getting started guide and an instructional video for first-timers, we can give our test program a spin to see how a workflow may look like:

  1. Download and install the software.
  2. Create an account and log in.
  3. Start a new project and select “Arduino Uno R3 SMD” in the free targets tree.
  4. Under “Component Library > Outputs”, search “LED ARRAY PCB” and add the item to the 3D panel.
  5. In the Project Explorer window, drag and drop “Loop” and position it between the start and end blocks of the flowchart. Drag and drop another “Loop” and position it between the loop tags in the flowchart.
  6. With a double click on the right mouse button, open the properties window of the “Output” item.
  7. In the “Use Chip References” dialog box, select port B as the Port Field. Set the value in the variable field to 1. In the Advanced Options, select “Single bit” and set the value 1, too.
  8. In the Debug tab, click on “Run” or press F5 to start and observe in the 3D visualization panel.

Back to Contents

Advertisement
Advertisement
7
The Best Arduino Simulators (Online & Offline)

SimulIDE

A really simple and fast interface
You'll need good eyes or a big screen to work with this simulator (Source: Luca Dinale via All3DP)

SimulIDE is a real-time electronic circuit simulator with PIC, AVR, and Arduino simulation. It has a spartan interface, aiming to be fast, simple, and easy to use.

You can design your own circuits and program them with a code editor and debugger for GcBasic, Arduino, PIC, and AVR. SimulIDE also has a YouTube channel with over 45 videos.

As we’ve seen in the previous examples, you can’t create your own parts or components (though you could ask on the forum or Patreon). It’s also not possible to design boards and schematics and export them for PCB production.

  • Developed by: Santiago Gonzales & Popov Alexey
  • Open source: Yes
  • Best for: Beginner to advanced users
  • Special features: GitHub repository
  • Compatible with: Windows 32- or 64-bit, Ubuntu, MacOS (with Wine)
  • Price: Free (donations accepted)

Example

We’ll try the free version to create our example. There are two ways to do this:

The Simpler Way

  1. Download, install, and start the software.
  2. Click on the Open Circuit icon.
  3. Choose the DigitalTapeMeasure.simu file.
  4. Click on the red button to power up the circuit.
  5. To change distance, click on the small volts display window and rotate the knob.

The More Complicated Way

  1. Download, install, and start the software.
  2. Drag and drop the following components: Arduino Uno, Hd44780 (LCD display), HC-SR04 (Ultrasonic sensor), and voltage source.
  3. Connect all wires.
  4. Right-click on Arduino and load the firmware (HEX file).
  5. Click on the red button to power up the circuit.
  6. To change the distance, click on the small volts display window and rotate the knob.

Back to Contents

Advertisement
Advertisement
8
The Best Arduino Simulators (Online & Offline)

Arduino IO Simulator

Don't wait for your components
Don't wait for your components (Source: Xevro)

Despite the name, the Arduino IO Simulator is best for testing components and requires a physical Arduino connected to the computer to use. When running a code or example on the Arduino connected to the PC, you can interact with this Arduino through the sensors and components of the simulator. In the free version, you need to be connected via a USB cable and use a COM port, but in the Pro version, it’s possible to emulate ports via TCP protocol and thus connect via Wi-Fi. The Pro version is currently available for free.

The promise of this program is to facilitate a test if you don’t have all the components or to quickly check how your code behaves. Everything is well-documented, including an instruction manual and installation guide that explains what one needs for Java installation. There are several examples that the program offers for testing, and there are also libraries to facilitate the use of components. This program can be very useful for educational purposes.

  • Developed by: Xevro
  • Open source: No
  • Best for: Beginners to intermediate users
  • Special features: Test various virtual components
  • Compatible with: MacOS, Windows
  • Price: Free

Example

Let’s check how to use this program:

  1. Download and install the software.
  2. Activate with one of the keys provided on the download page.
  3. Choose a servo from the examples menu and open it in the IDE.
  4. Adjust component ports according to the channels used in the program.
  5. Load your code into your Arduino and connect the serial port.
  6. Manipulate the virtual component that represents the potentiometer and observe the component’s reaction!

Back to Contents

Advertisement
Advertisement
9
The Best Arduino Simulators (Online & Offline)

UnoArduSim

Keeping it simple
Keeping it simple (Source: Luca Dinale via All3DP)

UnoArduSim is a free educational tool where you can design your own circuits (by clicking “Configure > I/O Devices”), programs (text only or by loading Arduino files), debug code, and simulate Arduino IO interfaces and program interacting.

Note that you can’t create or add your own parts and components, drag and drop components, design boards, and schematics, or export boards and schematics for PCB production.

  • Developed by: Stan Simmons
  • Open source: No
  • Best for: Intermediate to advanced users
  • Special features: Nice oscilloscope-like interface
  • Compatible with: Windows
  • Price: Free

Example

Let’s check our test program:

  1. Download and install the software.
  2. Copy into the same folder the INO sketch and myArduPrefs.txt and myIODevs.txt files.
  3. Load the INO file.
  4. Select components by clicking “Configure > I/O Devices”.
  5. Right-click on “LCD” to choose the type.
  6. Click twice on pins 2 and 3 to open a digital waveforms (oscilloscope-like) display.

Back to Contents

Advertisement
Advertisement
10
The Best Arduino Simulators (Online & Offline)

Virtronics

Simulate and test different codes with different Arduino models.
Simulate and test different codes with different Arduino models. (Source: Raphael Bertasius via All3DP)

Virtronics is a simulator that doesn’t offer many virtual components for you to assemble projects with wires, modules, and symbolic parts. Instead, you’ll take control of a test run of how an Arduino board or model might behave in a given situation in a more technical way.

You can control inputs and outputs to simulate components and behaviors, and use monitors to watch for potential errors and understand why they occur. This is very useful if you’re building a project and you’re having a problem that you can’t figure out.

Don’t think that the good news ends there; you also have a serial monitor and many other tools such as an ASCII table, barcode maker, calculator, logical analyzer of digital pins, map of USB connectors, Ethernet, and a 2.1-mm jack, just to name a few.

The interface also displays a summary of the variables in real-time and in the “View” menu you’ll find other options like SubRoutines, EEPROM, Class Explorer, and more. All this can be used with models of 10 different boards: the Uno, Due, Papilio, Esplora, Leonardo, Lily Pad, Arduino Mega, Arduino Nano, Uno32, and Yun. It’s also possible to test and simulate other hardware, such as terminal and LCD monitors.

All these features allow you to both test code before buying hardware and to debug, demonstrate, and teach about how the board works, in addition to being a great ally for sketching more complex codes and testing faster and easier than using the physical board itself.

The free version is limited by three independent counters, and when one of them reaches the limit, it activates a delay of 300 seconds that slows down the use of the program but doesn’t prevent it from being used. The three counters that limit the free version are 200 lines, 45 days, and 100 sketches, whichever comes first. The timer delays program loading, and the same delay occurs if you open another project or create a new one or other functions.

  • Developed by: Virtronics
  • Open source: No
  • Best for: Intermediate to advanced users
  • Special features: Variety of tools for analysis and monitoring of simulations
  • Compatible with: Windows
  • Price: Free version need to wait at every start, Pro version license is ∼$20

Example

Testing is very simple; after all, you can download the free version at Virtronics. The program already comes with some demo examples. After installing and opening the program, just follow the steps below:

  1. Go to “File > Load Sketch F4” or click on “Load” (directly beneath the File drop-down menu).
  2. Go to the “Simulator for Arduino (Free)” installed folder.
  3. Choose the folder “01.Basics” and select the file “Blink.ino”.
  4. If you reached the limit test, allow for the 300 second timeout (of the free version).
  5. Click on “Run” or press F9.
  6. Note that the digital pin 13 will flash, turning on and off every one second on the plate.

Back to Contents

Advertisement
Advertisement
11
The Best Arduino Simulators (Online & Offline)

Proteus VSM

It's half of our small project
It's half of our small project (Source: Luca Dinale via All3DP)

Proteus VSM for Arduino AVR is by far the priciest option on the list. That being said, in addition to all the basics, it offers some special things that we haven’t seen with other simulators. For example, you’ll have access to thousands of peripheral models, plus you can drag and drop dozens of shields into your simulations.

  • Developed by: Labcenter Electronics
  • Open source: No
  • Best for: Advanced to professional users
  • Special features: Shields can be added to simulations
  • Compatible OS: Windows
  • Price: Starting at ~$300 (with additional costs for bundle options)

Example

Although we couldn’t test our example because the professional demo version is quite limited, a lot of people on YouTube have used the same simple tape measure project.

If you want to give it a try, there are many sample projects:

Sample 1

  1. Download and install the Demo Version.
  2. Start the program and open the sample.
  3. Search for “Arduino LCD”.
  4. In the VSM for AVR Category, choose “Arduino using I2C 16×2 LCD breakboard”.
  5. Run the simulation.
  6. You can change the source code, but you’ll likely get the message “Saving is disabled in the demonstration version of Proteus” when you try to save your changes.

Sample 2

And the other half!
And the other half! (Source: Luca Dinale via All3DP)
  1. Start the program and open the sample.
  2. Search for “Arduino SRF04”.
  3. Choose one project.
  4. Run the simulation.
  5. Right-click on the sensor, then select “Edit Properties” and change the Range Value to 125.
  6. Run the simulation again.

Back to Contents

Advertisement
Advertisement

License: The text of "The Best Arduino Simulators (Online & Offline)" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

Stay informed with notifications from All3DP.

You get a notification when a new article is published.

You can’t subscribe to updates from All3DP. Learn more… Subscribe to updates

You can’t subscribe to updates from All3DP. Learn more…

Advertisement