You will also find MCU emulators, as we will discus later in the article, that execute program instructions in the exact same way real hardware would. Some even accurately render your project in 3D and allow data export for professional fabrication of electronic circuits or elements. Some offer vast libraries of hardware to select from, while others allow you to develop in visual environments and show results in graphical form, while others plot graphs and display data sets. In the selection of software presented below you will notice that very different sets of features are offered by each application. These products generally create a virtual environment in which not only can you write code but you can also create electronic circuits to test the behavior of your code. But what if you want to learn programming and do not own an Arduino board, or are overwhelmed by the selection of hardware out there? This is where simulation software comes in. Backed by a massive online community, and with most development boards and hardware accessories available at very low prices, this platform is perhaps the best place to start in working with embedded devices. Launched in 2005, the Arduino open hardware and software platform has grown to be very popular among hobbyists, educators, and professionals alike, gaining momentum especially in the robotics field.