When you start out with Arduino, the IDE from the creators themselves is a great choice. However, if you are used to any other development environment, you should consider alternatives. The fact is that working with Arduino, you will be programming quite a lot. If you already have a favourite editor or IDE you can, in most cases, continue as usual. All it requires is a plugin.

Top list of Arduino IDEs

Here is a list of the top IDEs that support Arduino and some help getting it to work. In the bottom, you also have some hints how to get a few editors configured for the job.

Platform.io

A great idea is to check out platform.io. They have so many boards, even if you filter on Arduino, you still have a gigantic list. Platform.io is a library and service for anyone wanting to start doing embedded development. Once you have registered, for free, on platform.io, you can start projects with any board in their database. The database contains much more than Arduino, so check it out. The most common work flow when using platform is to create a project from the command line.

$ platform project init –ide <Your IDE> –board <ID>

The board ID is listed in their documentation, you can also list them with :

$ platform boards <platform>

Run it without the platform parameter and you get a list of several thousand boards. Decide which platform you want to use and filter with the parameter. In this case “arduino” is suitable. You also have “atmel” and a few others, when you know what project you are starting, you will know how to filter.

Arduino IDE

Do not turn away from this, the original, before you get started. This package is very capable, there are only a few reasons you might want to use something else; You are accustomed to something else and refuse to try something new. You have an especially challenging project. One of the few, really important, features you do not have in the original IDE is revision control. If you want to put your project under git control, you need to do that separately. One of the good things about Arduino IDE is that it has many examples that you can study, change and play around with. You also have a long list of boards. Some are installed with the IDE, some are listed and downloadable from Arduino or using the Boards manager.

It has no integration for platform.io though.

Netbeans

NetBeans is the big system for development and can handle many different languages, with the correct plugin you can also use it for Arduino projects. You can pick it up from the plugin portal. The plugin is written in JAVA, it is 4 Years old. Any problems, you are probably on your own. It is also available on GitHub – Arduino . Find the nbm file in GitHub, or download the source code. To install, find the file, choose it and click the install button. Now you have support for Arduino and git, or any of the other features that NetBeans supports. As mentioned earlier, plartform.io has support for boards, to start a project, run the below command.

$ pio project init –ide netbeans –board unowifirev2

The command will create projects files and directories that you can use in NetBeans directly. You now have the entire tool suit available for your project.

Eclipse – Plugin

As usual Eclipse have all their plug-ins on their “Marketplace”. You need to choose that from a running instance of Eclipse. You should start with the IDE and then continue with the “Arduino Download Manager” from inside the new “IDE”. You can download the Eclipse package and then use the Arduino download manager to handle what boards you are interested in. You also have code snippets available in the market place.

Using the Platform.io to create a project is a great idea here to. The command is the same, with the entire name for the IDE.

$ pio project init –ide eclipse –board uno

This creates the hidden Eclipse project files; .cproject, which points out the libraries you need and other things. It also creates necessary directories.

Atom.io

Yes, this is an editor but with enough plug-ins, it behaves like an entire IDE. Once you have installed atom, you can go to preferences and install the ‘platform-ide’ package. Once you have done this, you have a choice to initialise an Arduino project from inside the editor.

The Platform.io integration makes it a breeze to start and initialise a project. You do not need to install platform.io, while there are also examples installed. Examples that you can add to your project, or start your project with the examples.

Visual Studio

Visual Studio, yes, the one from Microsoft is fairly popular. It has many different plugins, both from Microsoft and other people. The choice is great and you can install just snippets or entire packages for all jobs on Arduino. You do need to have the main Arduino development kit installed to use it fully.

emacs

In emacs, you have a package from ELPA; platformio-Mode, available. For code completion, use the irony-mode package. You create a project the same way, with the platformio command.

$ platformio project init –ide emacs –board uno

The mode has functions, tied with key-chords, that builds, compiles and uploads. You can also choose an external programmer and send files to the external file system.

nvim

For nvim, you have to load many parts. One is the neomake-platformio, the others are an Arduino syntax file, the Bare Arduino project and the files they recommend. This is a complex method which is suitable for you vim enthusiasts that love compiling your own stuff.

Conclusion

When you start out with Arduino, you get a lot of goodies directly from their own website. However, when you get into more advanced territory, you can move to other editors and IDEs. The main advantage is that you can use what you are used to using. The second advantage is that you can do the more advanced stuff that the Arduino IDE hides from beginners.

About the author

Best Arduino IDEs Arduino

Mats Tage Axelsson

I am a freelance writer for Linux magazines. I enjoy finding out what is possible under Linux and how we can all chip in to improve it. I also cover renewable energy and the new way the grid operates. You can find more of my writing on my blog.