Getting Started with SimulIDE and Arduino

I was looking for an alternative to Tinkercad to simulate building, coding, and running Arduino projects. SimulIDE Circuit Simulator seemed like an ideal candidate.

SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students to learn and experiment with analog and digital electronic circuits and microcontrollers. It supports PIC, AVR , Arduino and other MCUs and MPUs.

I installed it from Flathub (SimulIDE). It worked well. It is easy to understand and work with. It’s also easy for a beginner to pick up and start designing circuits in 5 minutes. I tried a few basic circuits. Then I tried the Blink circuit and Fade circuits based on Arduino. Unlike previous ones, this one included building a firmware and loading it. To make it complex, I was also using the Flatpak version of the Arduino IDE. Then I found two options

Load Firmware in SimulIDE

In this option, we will build the software in the Arduino IDE. Compile it. Once it generates a firmware (a HEX file), we will load it into SimulIDE. For this, we need to know where the compilation output is in the Arduino IDE, and then make sure SimulIDE has access to that path. Enable verbose output in the Arduino IDE Preferences, and then compile. The IDE will print the path. Take the path, go to Flatseal 1, and give SimulIDE access to that path.

Arduino IDE, Enable Verbose output
Arduino IDE, Enable Verbose output
Path of firmware hexfile built by Arduino IDE
Path of firmware hexfile built by Arduino IDE
Giving folder access to SimulIDE so it can access the Hex files in Flatseal.
Giving folder access to SimulIDE so it can access the Hex files in Flatseal.

Now SimulIDE has access to the folders where firmware is built. Before you simulate the circuit, right-click the Uno, go to mega328-109, and then load firmware. Choose the hex file. Alternatively, right-click Uno, go to mega328-109 – Properties, enter the firmware path, and select Reload HEX at Simulation Start.

Accessing Arduino Uno properties in SimulIDE
Accessing Arduino Uno properties in SimulIDE
Load hex firmware from a path in SimulIDE
Load hex firmware from a path in SimulIDE

Now everything is set up. Code and Compile in Arduino IDE. Come to SimulIDE and restart the simulation. That will load the recent firmware and start the simulation.

Configure SimulIDE with Arduino Toolchain

For this, you can use the SimulIDE flatpak version, but you will need the native Arduino installed on the machine. For me, I downloaded the Arduino Linux ZIP file version. Then extracted it into a local directory, say /home/thej/code/arduino-ide_2.3.10_Linux_64bit. Then go to Flatseal and grant SimulIDE access to the folder /home/thej/code/arduino-ide_2.3.10_Linux_64bit .

Once this is done, open an INO file (the Arduino Sketch) on the right-hand panel of the SimulIDE. Go to compiler settings and set the Arduino installation folder path (/home/thej/code/arduino-ide_2.3.10_Linux_64bit) as the Tool path.

Setup Arduino Toolchain in SimulIDE
Setup Arduino Toolchain in SimulIDE

Now it’s all set. Use the integrated editor in the SimulIDE to edit code, compile, and load firmware. Then simulate.

Both setups were easy, even though Flatpak made it a bit difficult. If you are not using Flatpak, then you can ignore the Flatseal permission-giving part. The rest of the configuration will still work. Once set up, both flows worked flawlessly. For most people option 2, setting up Arduino toolchain is an easy option. See the demo below.

Demo of Arduino Uno Blink circuit simulation in SimulIDE

SimulIDE is an amazing piece of software for beginners. You will have fun building and simulating circuits in it. Try it and let me know.


You can read this blog using RSS Feed. But if you are the person who loves getting emails, then you can join my readers by signing up.

Join 2,279 other subscribers

  1. Flatseal is a graphical utility to review and modify permissions from your Flatpak applications.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.