Arduino Simulation in Proteus ISIS

Arduino simulation model UNO version

Labcenter Electronics’ Proteus has become an indispensable tool for engineers as it offers not only schematic and PCB design but also real-time simulation. However, Arduino simulation is not supported by this application by default. This tutorial will show you how to simulate an Arduino with Proteus ISIS.

Step 1: Add Arduino Library for Proteus

All devices that can be simulated in Proteus ISIS have an .IDX and a .LIB file. Normally, one or more devices are part of a library. The .IDX file is an index or list of all devices under the library while the .LIB file contains information about the devices in the same library.

To add support for Arduino simulation, we just need to add an .IDX and .LIB file for Arduino. You can download the files in my repository. Note that these files are a work in progress and only contain a UNO model. In the future, however, I am looking to support all Arduino boards.

Place the files inside the folder: C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus version 8 or at C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\LIBRARY for Proteus version 7.

Step 2: Open Arduino Model to Verify

After placing the said files, open Proteus ISIS and search for the model using the keyword “arduino”:

Pick the Arduino simulation model


Place the model in the workspace and you can now simulate Arduino programming in Proteus ISIS! Here's what the Arduino UNO model looks like:

Arduino simulation model UNO version


Step 3: Load an Example Sketch

As with other microcontroller models in Proteus, the Arduino model requires a HEX file for simulation. However, the Arduino IDE won’t show the HEX file location by default. To show the location, go to File > Preferences and tick on the compilation checkbox beside Show verbose output during

Enable verbose output during compilation


This will show a lot more information during compilation, including the HEX file location of the sketch you are compiling! Here I am compiling the Blink example sketch which simply changes the state of pin 13.

Hex file now shown


Copy (CTRL+C) the location, double click on the Arduino Proteus model, and then paste to the Program field:

Paste program location


Step 4: Simulate

Finally, run the simulation and see the results!


Leave a Reply

Your email address will not be published. Required fields are marked *