Sign up ×
Arduino Stack Exchange is a question and answer site for developers of open-source hardware and software that is compatible with Arduino. It's 100% free, no registration required.

I would like to start the development of some basic Arduino projects but I don't own an Arduino board yet. Is there a way I can write my code and emulate/test it using a desktop computer so after my board arrives I just have to upload and run my project on it?

share|improve this question

8 Answers 8

up vote 46 down vote accepted

There are a whole slew of Arduino simulators out there, many free, and some paid products as well.

  • The CodeBlocks Arduino development environment includes a free Arduino simulator, still under development but functional.
  • Simuino simulates the Arduino Uno and Mega pins - not a pretty-looking realistic simulator, but it works.
  • The Python based Arduino Simulator is another option, that plays well with the official IDE
  • Virtronics Simulator for Arduino looks promising, but I don't see why I would pay $14.99 for it, when I could buy one or more actual Arduino clones for that price

Many other Arduino simulators are out there if you search, and new ones are being announced, even crowdfunded, all the time.

share|improve this answer
3  
as a note, those are not emulators but simulators, the most important difference is that it does not run the code on a AVR virtual machine (like what qemu does), but binds the Arduino functions to native code. So basically they won't be able to run native AVR stuff and register/timer behavior will not be the same as on real AVR hardware. See the difference well explained in that answer. It is, though, theoretically possible to emulate Arduino Due code with qemu. –  zmo Mar 13 '14 at 19:33
2  
You "don't see why [one] would pay $14.99 for it, when [one] could buy one or more actual Arduino clones for that price"? I can tell you why: because the hardware doesn't have a built-in debugger with the features that can be provided by a simulator. –  R. Martinho Fernandes Jul 16 '14 at 22:16
2  
The Arduino Simulator piqued my interest, but unfortunately appears to have no files related to it on the sourceforge site. Am I missing something, or has it become deprecated since you wrote your answer? –  Greenonline Feb 21 at 17:46

I like to use 123dcircuits.io for this.

It's cloud based and has some nice features including PCB design and collaboration.

IMO the Arduino simulation and capability is impressive and intuitive.

share|improve this answer
2  
It is very nice and clean and basic functionality is really impressive, easy to use and powerful. However many common parts (including LCD and temperature sensors) are not supported yet. I doubt you can test anything but very basic designs at this stage. I hope this will get better over time. –  Suma Aug 7 '14 at 14:07
    
I gave it a quick try and found it very impressive for a free product. I don't know its limitations in terms of simulation realism, but the editor is very friendly and just placing a led into the proper slot automagically created code with the correct pin and a blinking loop! –  heltonbiker Mar 26 at 20:20

Yes you can, try using Proteus ISIS for simulating your code...
For full emulation of Arduino, there is shareware program called VBB, I tried it too and it was nice. You can find it here

share|improve this answer

You can use Yenka (free for home use) to simulate Arduino, PIX, PIXACE and other boards with digital, analog and serial I/O. It provides a lot of components and sample projects.

Screenshot:

Yenka Arduino simulation

share|improve this answer

Try Simulator for Arduino - it is the best but then we are biased since we are part of the development team. Not everyone wants to pay $14.99 although almost 5k Arduino users have in the last few years. There is a free version of Simulator for Arduino which runs for 30 days or 100 sketch loads and 150 lines max. Try this and then buy if you can afford it and/or if it seems worthwhile. If there is something not right or which could be improved, let us know - everyone else does and has which is why Simulator for Arduino has been 99% built by user ideas and bug reports. Timer interrupt and 7 segment LED display coming in v0.99E

Also, the only other program we have tried which comes close in quality is Proteus but this is a full PCB design studio and looks to be very expensive - ie much more than $15. And we plan to ignore a recent user request to increase the price to $200.

share|improve this answer

Virtualbreadboard has a new VBB4Arduino 'Two Arduino's' edition which includes BOTH a JVM Arduino emulator AND a AVR Instruction set simulator with examples that cover almost all of the Arduino distribution examples and a bunch of peripheral hardware - LCD's, WS2812 Neo LEDS, Motors, Servo's, Logic Analyser and more.

http://www.virtualbreadboard.com

Disclaimer: I am the author of Virtual Breadboard

share|improve this answer

Be aware that no simulator will reproduce real-life situations. There have been plenty of posts on the Arduino forum about problems with code or electronics, which turn out to be something subtle, such as:

  • Timing issues
  • Race conditions (something happens slightly before something else, sometimes)
  • Voltage levels, eg. floating input pins
  • Driving motors which drop the Arduino voltage enough that it resets
  • Not having decoupling capacitors
  • Input pins being in an "undefined" state (eg. 2.5V on a pin where 2 or less V is LOW and 3V or more is HIGH)
  • Problems with interrupt handlers, such as variables not being declared volatile
  • Voltage spikes due to not having flyback diodes on motors
  • The processor resetting once more than 10 LEDs are turned on because the current draw exceeds the amount the hardware can supply
  • Interrupt handlers taking 10 µS to process an interrupt when only 9 µS is available.

By their nature simulators can't reproduce all of this. Even if they could, would you think to toggle the "insert random noise from motors" option?


As for getting ready for the board to arrive, download the IDE and start programming. You can get libraries installed, code written and free of syntax errors, organize it neatly, and be generally ready for the big day when the hardware is in your hands.


Have fun and enjoy experimenting with your Arduino!

share|improve this answer

Yeah you can. There is lots of Arduino simulation software which will help you program on Arduino without actually having a physical board. This software even provide add ons like various sensors and all. I found it useful.

share|improve this answer
    
Hi, welcome to Arduino.SE. Your answer is very broad and doesn't really add anything new to the current answers. Could you give examples and more details to your answer, because at its current form it doesn't meet our guidelines. –  totymedli 6 hours ago

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.