The Arduino Simulator you’ve been looking for!

Are you on the lookout for a good Arduino simulator? Wondering what an Arduino simulator is? We’ve gotten a lot of questions about Arduino simulators, and if a good simulator exists, so keep watching to find out more!

Overview

In this video we’ll cover:

  • WHAT an Arduino simulator is
  • WHY you should be checking them out
  • HOW to use popular Arduino simulator called Tinkercad (which is free)

What is an Arduino simulator?

An Arduino simulator is a virtual representation of a real world Arduino circuit.

What does that actually mean? Let’s look at an example. Now some people have different interpretations of what the famous “Hello World” circuit is.  Some say it’s your first project where you create a simple blinking LED circuit; others claim it’s when you have an LCD display that says “Hello world!”

For our purposes, we are just trying to create the the most simple of circuits, so we are referring to the interpretation where you just have a blinking LED circuit.

So we’ve setup the circuit, we’ve programmed the code in the Arduino IDE, we’ve uploaded it, and now we have a real world, physical circuit that blinks the LED. This took about 6 minutes to construct.

Next we’ll use the free online Arduino simulator software at TinkerCAD. In about 2 minutes we’ve created exactly the same circuit, we’ve used the same exact code, and after hitting the “start simulation button”, we have a virtual version of exactly the same circuit. That is some serious efficiency!

Programming Electronics Academy members, check out the Arduino Course for Absolute Beginners to jump start your Arduino programming skills.

Not a member yet?  Sign up here.

We’ll show you at the end of the video exactly how to make that demo.

Why are simulators so cool?

You’ve already seen how it can be much quicker to build stuff online so we won’t belabor that point. Here are some other reasons why simulators rock:

  1. You can learn how to code and build circuits from anywhere you have a computer and internet access.
  2. It’s much easier to track down hardware / wiring errors in the simulator. It can be very difficult to visualize which wires are connected to which pins on a busy breadboard, but if you get it right in the simulator, then recreating it in the real world goes much smoother.
  3. You can share your design with peers for feedback and to help troubleshoot issues, and the person reviewing your design is able to see both the hardware and coding side of your project at the same time.

Programming Electronics Academy members, use the coding challenges in the Bread and Butter: I/O section of the Arduino Course for Absolute Beginners to drive home these basic coding skills.

Not a member yet?  Sign up here.

How do you use a simulator?

Next we’ll show you exactly how to build the blinking LED circuit from previously. First go to TinkerCAD and setup an account if you don’t already have one. After that you’ll find yourself in the dashboard, this is where we can view previous designs or choose to create a new one.

Once your at the dashboard, click on the “Create new Circuit” button. Now you’ll see the “workspace”, this is really where the magic happens. On the right hand side you can see where you can click and drop the various components.

One thing to note: you can select Components > Starters > Arduino and here you can access a bunch of premade circuits which are called assemblies. You can click and drop the “Blink” assembly, which will provide all the necessary components, as well as the code to make the circuit run.

If you click “Start Simulation” you will see this circuit functions as advertised. So let’s create it from scratch instead.  The first thing we will want to do is make sure we have components placed in our project. Type in “Arduino” in the components side menu and then click and drop the UNO3.

PRO-TIP 1: To pan the view around, just click and hold anywhere in the workspace to move it around.

Next, let’s drop a breadboard. After that, we’ll drop an LED. Find it in the components list, then carefully drop it onto the breadboard. You can see where the cathode or anode connects to specific pins on the board.

Another cool thing is you can click on the various components to change their characteristics. You can change the colors of LEDs, the resistance value of resistors, and the color of the wires, to name a few.

Lastly we will wire it up. You do not find wires in the component list, you simply click on either the breadboard or the Arduino pins with the left mouse button and a wire begins.

PRO-TIP 2: When creating the wires, every time you click you add a “node” in the wire which allows you to keep things very organized. Also changing the colors of the wires can keep things very organized as well.

So that’s how you build the circuit.  Let’s look at the code. You can see it’s already preloaded with a sketch because we had previously selected the “Blink” starter assembly. You can also see it’s in a format that may seem a little unusual, “block view“. You can mess around with this view if you want, but we typically like to view the code in “text view” which is the same as the official Arduino IDE.

The purpose of this lesson is not to teach the code but rather show you the simulator, so let’s click the “Start Simulation” button and there you have it, a functioning blinking LED circuit.

PRO-TIP 3: Sometimes you’ll start the simulation, and then get distracted by something, and then try to edit either the code or the hardware. If the simulator is still running, you will not be able to edit anything, and sometimes the only indicator that the sketch is still running is the green box that says “Stop Simulation”. If you can’t seem to edit anything, make sure your simulation is not running.

Other aspects of TinkerCAD

So that’s how you build a very basic blinking LED circuit in TinkerCAD. There are lots of other really cool things about Tinkercad which we’ll explore now.

Go to your main dashboard by clicking the TinkerCAD logo at the top left of the screen, then click the “Learn” tab at the top right of the screen. Next click the drop down button (which defaults to 3D) and select “Circuits”. Here you can select various start guides and lessons.

If you select “Projects”, then “Show all Arduino”, you can see various projects at the bottom with the green backgrounds. All of these projects correspond to the starter projects that are included in the the official Arduino.CC starter kit, which is super helpful if you have that kit and want to follow along.

If you’re just trying to get some inspiration, learn new skills, or check out new stuff, go over to the “Gallery” tab. Again, make sure to select “Circuits”, and from here you can see a variety of projects from the community.

Programming Electronics Academy members, check out the Wireless Thermometer Project for practice building useful IoT devices.

Not a member yet?  Sign up here.

You can also search for specific projects which is useful if you’re struggling with a particular project and you’re wondering if someone else has already created it.

Once you find a project you like you can click on it, then click “Copy and Tinker”, and you are now able to explore and edit the users project. You can leave a comment, check out their code, and make any modifications that you desire.

In Summary

You can see how there’s tons of really useful stuff on Tinkercad. It’s not only a great place to design circuits, but also a great place to learn from the community and get inspiration.

How do you use the simulator? Do you like creating projects virtually first, do you like to dive right into the physical world? Let us know in the comments below, we’d really appreciate it. Have a great day!

installing Arduino libraries

Installing Arduino Libraries | Beginners Guide

IoT sewage project

Pumping poo! An IoT sewage project

ESP32 webOTA updates

How to update ESP32 firmware using web OTA [Guide + Code]

error message Brackets Thumbnail V1

expected declaration before ‘}’ token [SOLVED]

Compilation SOLVED | 1

Compilation error: expected ‘;’ before [SOLVED]

Learn how to structure your code

46 Comments

  1. […] post The Arduino Simulator you’ve been looking for! appeared first on Programming Electronics […]

    • Steve Tripoli on August 8, 2019 at 11:55 pm

      Thanks another great tutorial. This one will make prototyping a whole lot easier, again thanks.

      • Michael James on August 9, 2019 at 7:24 am

        Thanks Steve!

        • Jimmie Fouts on August 9, 2019 at 7:50 am

          Michael,
          Your information and instruction is awesome! I always enjoy what you bring us. The lifetime membership is well worth the money to me!

          • Michael James on August 9, 2019 at 10:16 pm

            So glad you found this helpful Jimmie and that you are enjoying the lifetime membership!



    • Rich on August 9, 2019 at 11:08 pm

      Wow!!!!!!!!! Did not know this existed….thanks for the demo as well!!!!

      • Michael James on August 10, 2019 at 8:17 am

        Glad you found this helpful Rich! I hope it can be a useful tool for you.

  2. Flippo David K on August 8, 2019 at 10:45 pm

    This is absolutely cool Michael! I’m so glad you provided this email!

    • Michael James on August 8, 2019 at 10:48 pm

      Great! I hope you find it as useful tool as I have!

  3. Jim on August 8, 2019 at 10:50 pm

    I’ve messed with TinkerCAD before and you make it look very easy. I’m going to have to mess with it some more. I want to look into the 3D design as well for some structural components of a project.

    • Michael James on August 8, 2019 at 10:54 pm

      It’s funny, I had no idea TinkerCad could even do circuit simulation, i thought it was only 3D designs. And then I interviewed one of the developers, and learned about the Arduino simulator, and I was pretty impressed. It does have some limits (i.e., not every electrical module you’re looking for may be available), but overall it’s pretty solid.

  4. Okusitino Tahitua on August 9, 2019 at 2:15 am

    thank you so much Michael

    • Michael James on August 9, 2019 at 7:23 am

      You’re welcome – thanks for checking it out Okusitino!

  5. Ian Porteous on August 9, 2019 at 2:40 am

    I want to add a new item thats not in the pull down list – 8×8 dot matrix – how?

    • Michael James on August 9, 2019 at 7:23 am

      Hi Ian, that is one of the one the limits of the system, there are only so many components available.

      • QuietFire on February 13, 2021 at 11:28 pm

        Another limit is adding libraries. I use the fastled library in 95% of the projects I’d like to simulate. Alas, they don’t have my favored library.

        Additionally, I work with WS2812b strips. I use varying lengths as I customize my strip lengths, both longer and shorter than stock strips.

        I also am VERY fond of the STM Blue Pill knock offs from China. These are incredible little boards that blow away Arduinos of the same price point and blow away the price point of Arduinos around their capabilities.

        Finding a simulator that could fit my needs would be amazing. As it is, I’ll keep using my 3d printed test bed that has dual Blue Pills, 1 FTDI board with a DPDS switch to swap between the blue pills for flashing, and a HC-06 Bluetooth board. I have two 300 LED strips above my desk that can be run independently or tied together to give me 600 continuous LEDs.

        I like Tinker Cad for cranking out some basic 3D prints. I use it quite often. But their Circuit design just ffalls way to short of my needs!

  6. Ken on August 9, 2019 at 3:53 am

    Is it Windows only? I can’t access it on my iMac.

    • Michael James on August 9, 2019 at 7:22 am

      Hi Ken, I use TinkerCad on my Mac – it runs in a browser. I use the Chrome for my browser, maybe it is a browser issue?

  7. Todd Duffett on August 9, 2019 at 7:23 am

    TinkerCad rocks, (so do you of course).
    Looks like they keep adding components, who ever they are, and keep increasing functionality which is great.

    The 3D Design feature has wonder simple but complex capabilities in similar fashion that I have just begun exploring for developing exportable #D printing files. actually very accurate and effective with just a little practice.

    Keep up the good work you’ve been doing. I like your presentation style and effectiveness.

    • Michael James on August 9, 2019 at 7:26 am

      Thanks a ton Todd – much appreciated!

      I haven’t played yet with the 3D designs yet, seems like it would be fun.

  8. Geoff Male on August 11, 2019 at 4:19 pm

    Thank you Michael. I always enjoy the emails from P.E.A. and what I will learn next. Cheers.

    • Michael James on August 11, 2019 at 9:14 pm

      You’re very welcome! I am glad it was helpful.

  9. John Vankoeveringe on August 18, 2019 at 7:26 am

    A great big thank you for making us aware of the existence of the Sim.
    It’s a fantastic help to get ones feet wet.
    Also great thanks to the people who produced the sim.
    And the people whom made it available for free.

    Again many thanks !!

    • Michael James on August 18, 2019 at 9:21 am

      Absolutely – thanks for checking it out John!

    • Emmanuel Ebenehi on January 6, 2024 at 1:26 pm

      Please , I’m look for Arduino based ac universal motor speed controller, where the following where used. These are:
      1. Arduino uno
      2. IR sensor module as tachometer for RPm measurement of the motor speed
      3. Rotary encoder
      4. Lcd 16×2 / 12c module
      5. Dimmer phase control the motor using Triac, moc3023
      6. Zero crossing circuit using pc817 and resistor s and bridge rectifier
      7 S8050 transistor with 5v relay.
      Automated Ac motor speed controller.. I need your help with the circuit and c++ code.

  10. Omer Siddiqui on November 19, 2019 at 11:48 am

    you really solved a big issue of my life , Iam really thankful to you for providing such a great Simulator.. Thanks aloot 🙂

  11. Alan on December 8, 2019 at 6:07 am

    This is coming from an old guy just starting out with Aduino, knowing the creative potential of my new hobby but at the same time finding things daunting, like where do I start. I am so glad I found your link to tinkercad, it has given me the resources and confidence to move forward, thank you!

  12. Ranger on April 27, 2020 at 8:48 am

    Thanks, very useful!

  13. ADITYA AGRAWAL on May 2, 2020 at 3:43 pm

    how I can connect ThinkerCad simulator while developing sample app in

    https://create.arduino.cc/getting-started/iotsetup/connect-usb
    I am newbie..Sorry If I ask any basic question

  14. Avinash Magdum on May 29, 2020 at 10:57 pm

    How do we simulate sensor behavior? For example I am using a light sensor (LDR). How do I change the light intensity and see the output showing the new intensity? In real project, I can use mobile torch to get bright light or put my hand on the LDR and create darkness. In simulator how these effects can be shown?

    • Michael James on May 31, 2020 at 10:16 pm

      Great question Avinash! When you are in the simulation mode, you can select the component and adjust its outputs/inputs – it is pretty slick.

  15. Cristian Solervicens on June 24, 2020 at 1:06 pm

    Great video !!!!
    thanks a lot!!!

  16. khagesh on June 26, 2020 at 11:09 pm

    very useful but consume high internet data.

  17. Siddharth Vyas on September 10, 2020 at 9:55 am

    can we write nodejs(javscript) jonny five code in TinkerCAD?

  18. Puneeth on September 22, 2020 at 10:41 am

    Hi There, A very nicely written article indeed. Is it possible for you to also write an article on our simulator for Arduino, which we have developed and is being updated all the time. there are a few noticeable advantages compared to TinkerCAD. One published referecence is here: https://www.electronics-lab.com/wokwi-com-arduino-simulator-introduction/

    In any case, let us know. Many thanks 🙂

  19. Ludovic Torres João on January 8, 2021 at 11:58 am

    This is awesome!!! Now can I can create anywhere without having to carry the prototypes with me 😀

  20. Iggy Lamb on January 24, 2021 at 12:00 pm

    Tinkercad is great for simple stuff like blinking LEDs, basic UART, and is a blessing for beginners, but for more complex sims, it’s way too slow.
    Does anyone know of a sim that you can write more complex stuff on, and depends on accurate timing?

  21. Bilal Ahmad Malik on August 15, 2021 at 3:05 am

    Greate Tutorial. Followed along and was able to perform every step.

  22. Henk on November 18, 2021 at 2:08 am

    To bad these tools are not allowed if you have a European school and follow GDPR rules. You simply cannot ask kids to make random accounts.

  23. Erik on December 5, 2021 at 6:24 am

    Thanks to Programming Electronics, when it first started, I could learn in a fun way the basics of the amazing Arduino platform! That was a great time I will never forget. I am so glad Programming Electronics still is very alive and I will look if advanced topics like pointers and structs etc are available as tutorials?.
    But in any case, many thanks for your amazing fun and thorough tutorials!

    • Michael James on December 5, 2021 at 9:11 am

      Erik – great to hear from you! Yes, PEA if still going strong 🙂

      Looks like you’re still up to some amazing builds!

      P.s. Working on a pointers course for 2022…

  24. Gilbert on December 10, 2022 at 8:27 pm

    looks good will try

  25. Charles on March 12, 2023 at 4:48 am

    An arduino simulator is really great. how to i download it

    • Michael James on March 13, 2023 at 11:34 am

      TinkerCad is an online simulator only, so can only be used when you have an internet connection.

  26. george blais on April 30, 2023 at 5:26 pm

    THis looks like fun !!!! lets try it.

Leave a Comment