87

The basic Arduino IDE lacks a lot of the sophistication present in other IDEs such as code completion, code collapsing, folder organisation, etc. Are there other IDEs that allow programming in C or C++ and improve on these aspects?

  • Suggestion: Can this question be extended for different languages (not just different IDEs)? – apnorton Feb 12 '14 at 4:33
  • 1
    What do you mean @anorton – DLJ Feb 12 '14 at 4:34
  • 5
    @anorton That would make for a different question entirely. – asheeshr Feb 12 '14 at 4:38
  • 1
    anorton probably meant that one could be interested in knowing also what programming languages, other than C++, can be used to program an Arduino. Right, @anorton? – Ricardo Feb 12 '14 at 10:44
  • 3
    @Ricardo That is correct. But, I agree that this question should be kept strictly different IDEs. :) – apnorton Feb 12 '14 at 12:58

20 Answers 20

62

There is an Arduino Eclipse plugin named sloeber! And Eclipse is an awesome cross-platform open-source IDE!

Stino is good. It requires Sublime Text 2 which has an indefinite free trial.

Visual Micro provides a full build system with debugger for Arduino in Microsoft Visual Studio. For advanced users it also allows the underlying Arduino source code to be viewed or modified, enabled projects and/or libraries to be edited from any location and shared in multiple projects alongside true cross-platform intellisense.

For more go to The Official Arduino Site

For development on Windows, there is a special edition from Arduino official IDE called arduino-erw, This edition much better the last one because it fixed a lot of lagging and stability issues!

  • 4
    And NetBeans too! – Jean-Christophe Duperron Feb 12 '14 at 4:28
  • @Jean-ChristopheDuperron Thanks! I will definitely use the NetBeans plugin. Thanks Hardik Thaker I don't like using Eclipse but if the NetBeans one fails I will use the Eclipse plugin – DLJ Feb 12 '14 at 4:31
  • How is Stino? I love Sublime and was wondering if Stino is any better than the Arduino IDE (especially in terms on connection and serial overflow errors/crashes). – Steven10172 Feb 12 '14 at 4:40
  • 1
    @FakeName I appreciate your enthusiasm, but you will want to tweak your language down just a tad ;-) – Chris O Feb 12 '14 at 14:25
  • 2
    @ChrisO - I think this XKCD adequately sums up my opinion on the topic. – Connor Wolf Feb 14 '14 at 4:33
26

Expanding on Fake Name's answer, there is also Visual Micro's Arduino plugin for Atmel Studio (built off Visual Studio). It shares the tools, sources and libraries with the Arduino IDE but provides all the code completion and other features of Visual Studio.

The Visual Micro plugin also works in all versions of Visual Studio. Provides Arduino usb debugging and an Arduino IDE compatible Board Manager.

  • 2
    AtmelStudio is ponderous and a bit quirky -- as many Microsoft creations -- but powerful and ultimately very useful. I've completed three projects for the Due and find it very facile. Recommend the J-Link emulator by Segger. – Bob Stein Feb 12 '14 at 17:14
20

You can use AVR Studio to write programs for Arduinos.

There is a plugin that lets you link against and use the arduino libraries from within Atmel Studio.

If you've used Microsoft Visual Studio, Atmel Studio is basically a reskin of Visual studio with different compiler backends that target the ATmega series of devices, so you'll feel right at home.

20

vim can be used for Arduino development, but it will take some configuration (as is the way of vim). You'll need the syntax file and this plugin that enables you to compile and deploy from vim.

Grant Lucas produced a great write-up on getting your environment situation squared away:

Using Vim for Arduino development

Here's a quick post on setting up Vim for Arduino development instead of using the Arduino IDE. If you're a heavy Vim user, it can be a bit of a shock to go into a different editor. Thankfully the setup is pretty easy to get this all working with Vim. This post is assuming you are comfortable with how Vim is setup and ideally already have an environment that works for you.

Install the Arduino IDE

Wait. What?!? I hear you say. I know, I know. We're not actually using the Arduino IDE but we need it for some configuration and the files it installs. The Vim plugin we'll be using ties into what the IDE installs and configures so it's needed. You can download the IDE from the Arduino site.

Install vim-arduino plugin

To get the main goodness of compiling, monitoring and deploying to an Arduino, grab the latest version of vim-arduino. Install it in your .vim folder using what ever method you use to manage your Vim plugins. Hint: I'd recommend Pathogen as it makes installing as simple as dropping the plugin folder into a bundle folder.

Vim syntax file

Next up is to get the syntax file so we can have nice colour coding for .pde and .ino files. Download the latest arduino.vim and install it in your Vim syntax folder. To get the syntax to apply to the correct file types add the following to your vimrc file

au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino

Configuring the Arduino IDE

Before trying to compile and deploy with Vim, get it all working with the Arduino IDE first as the Vim plugin just calls from the settings saved by the IDE. If it's working in the IDE, it should work in Vim. Make sure you select the right tty.usbmodem* serial port from Tools > Serial Port in the IDE. Note: This will only show when the Arduino is plugged in.

Working from Vim

Once you can communicate with your Arduino from the IDE you should be fully good to go with Vim. You shouldn't have to open the IDE unless you want some example code. Open up your sketch file in Vim and use <Leader>ac to compile a sketch, <Leader>ad to compile and then deploy to the connected Arduino and <Leader>as to open a new window with screen to monitor the serial output from the Arduino.

  • 3
    I was wondering when a Vim post was going to come up considering Emacs was already present ;-) – asheeshr Feb 12 '14 at 15:03
  • 1
    @Asheesh gotta represent! – JohnB Feb 12 '14 at 15:05
  • 1
    I've just discovered that setting the Arduino IDE preference 'use external editor' puts the IDE into a kind of 'listening' mode that detects changes to the file when editing in Vim (or other editor). You have to have file open in both editors. – mjwatts Oct 19 '15 at 21:55
17

One rather good IDE extension is the Arduino Mode for Emacs. It allows using a highly versatile and extensible IDE such as Emacs for writing, compiling and uploading code to the Arduino.

The documentation and instructions can be found here.

17

There is a half way solution as well since the Arduino IDE has support for external a editor, then the Arduio IDE just compiles and uploads.

enter image description here

Now you can use whatever IDE/editor you like to edit the code, and then you switch back to the Arduino IDE to press the compile and upload button when you are done.

12

UPDATE-> Codebender is being shut down.

There is a brilliant open source, web based IDE called Codebender

It is like Github for Arduino and has a great community working from it with thousands of examples and the dev team are exceptional.

With codebender, you can:

  • program an existing sketch to your device
  • clone an existing sketch
  • modfy it to your needs
  • share your work with the world
  • embed code in your website, blog, or tutorials

Cross-platform Works on Windows, Mac & Linux, Firefox & Chrome

Codebender supports Windows (from Windows XP up to Windows 8.1, yes, even Vista :P), Mac OS X 10.6-10.9, and Linux and works within all major browsers

11

Majenko created and maintains UECIDE. His contributions are pretty epic; I've seen first hand his coding prowess as we worked together to get the Adafruit 1.8" TFT Joystick shield working on the chipKIT platform.

8

In addition to the mentioned IDEs you can use Xcode with embedXcode if you use a mac. The IDE has a great file structure and support for a lot of boards. For big and complex projects it is really good. I like to use vim or the arduino IDE for simpler and less complex sketches/projects.

8

There is one from Brazil called MariaMole: http://dalpix.com/mariamole

According to the author, like the original Arduino environment, the MariaMole facilitates the creation of software for the Arduino. However, while the original Arduino IDE has limitations to make life easier for beginners, MariaMole brings features that more advanced users are accustomed to find in professional IDEs, such as:

  • Runs over Arduino install
  • Workspace support multiple projects at the same time
  • Multiple serial port consoles at the same time
  • Files use open-formats
  • Building process configurable
  • Imports Arduino examples and sketches
  • Easily import Arduino libraries
  • Color-themes
  • Thanks for your answer Daniel. I hope you don't mind though that I removed the image you included of the candy called "Maria Mole". It's not really relevant to the discussion, and it actually made your post look like spam at first glance. – Peter Bloomfield Feb 26 '14 at 14:35
  • It would be best if some description of the IDE could be added here. At the moment, the answer contains only a link, and if the link were to go down, the answer would become useless. – asheeshr Feb 26 '14 at 15:31
  • @AsheeshR, I've put more info as you suggest. Thank you – Daniel Grillo Feb 26 '14 at 16:22
  • I have to ask the same question I already asked for another answer: How does it manage libraries (and libraries versions) that you would get from variuous locations (e.g. on GitHub)? I ask in relation to these questions: arduino.stackexchange.com/questions/362/… and arduino.stackexchange.com/questions/348/… – jfpoilpret Feb 26 '14 at 22:21
4

I have always wanted to use Eclipse, since that is our standard (for Java) at work. But I never managed to get the debugger working with my AVR Dragon board - just too many layers between the source code and the chip. So I am back to using Atmel Studio. You can set the keyboard mapping to emulate various other IDEs (including Eclipse and Netbeans). I can accept the Microsft quirkiness in return for a stable debugging environment, multi-file support and professional source control features.

  • I have done debugging with the Arduino eclipse plugin (recently renamed to sloeber sloeber.io ) and the zero. I do not own a avrdragon but I know other people got it to work. – jantje Jun 14 '16 at 13:08
3

I use Xcode, set up as an external editor. I write everything in libraries, and the sketch simply call the libraries.

3

Atom + Platformio

I use GitHub's Atom text editor with the Platformio package.

I like both of them:

  • Atom has various useful built-in features and over 6,000 packages (which can be easily downloaded and installed from the settings pane) allowing the user to add essentially any feature he needs.
  • Platformio is a powerful IDE for microcontroller programming. It has all the features of the Arduino IDE (like the ability to upload code to an Arduino board with one single click, a serial monitor, ...) plus many others (like all those listed by the OP) and perfectly supports Arduino. Besides "it supports more than 200 development boards along with more than 15 development platforms and 10 frameworks". It can be natively installed either on GitHub's Atom either on Microsoft's VSCode code editors.
1

Fritzing

This is the new “Code View”! It lets you write your code directly inside Fritzing, and even upload it from there to your microcontroller. It even has a serial monitor. :)

Normally known as a schematic builder, Fritzing has a built in IDE.
See here for more.

1

Haven't seen anyone mention it yet, but I use VisualMicro for Microsoft Visual Studio (not Atmel), and I like it just fine. It gives you everything you'd normally have in Visual Studio, like intellisense typing. The trial version is the full program, and the license is pretty cheap- like 30 bucks or something. I got my work to pay for a commercial license key. Do recommend!

1

Notepad++

  • set Notepad++: view->folder as work space
  • and Language->C->C++ sets syntax highlighting
  • set arduino Ide file->preferences "Use external editor"

and everything runs smoothly, without the bulk of eclipse.

1

Clion + PlatformIO

I personally use Clion which is a cross-platform IDE along with PlatformIO which is a cross platform build system for arduino and alike.

Clion because I love the jet brains IDEs. As a student or teacher you can get a free licence. And I have been told by suspicious people on the internet that there are other ways of obtaining a license (not that I would advice on doing anything like that).

PlatformIO is quite powerful and integrates well into almost any IDE. It's easy to declare dependencies to other libraries which are automatically downloaded.

I am also using the Clion serial port monitor plugin to communicate over Serial.print().

With this setup you can completely ditch the old Arduino IDE which I found to be quite satisfying!

0

My go-to choice (pun, that's only a pun, folks!) is Sloeber - Eclipse with Jantje's EclipseArduino plugin. Having decades of emacs muscle-memory-training, I use MulgaSoft's Emacs+ plugin with it, switching to real GNU emacs for the heavy lifting - as developing a project and new libraries for it in parallel, f/ex, and use Sloeber to catch my typos & brain-f*ts.

0

A good alternative to the Arduino IDE is Visual Studio Code in combination with the Microsoft extension for Arduino https://github.com/Microsoft/vscode-arduino

It gives all the features of the Arduino IDE such as

Verify and upload your sketches in Visual Studio Code

  • Built-in board and library manager
  • Built-in example list
  • Built-in serial monitor

but additionally to offers some attractive features:

  • IntelliSense and syntax highlighting for Arduino sketches
  • Snippets for sketches
  • Automatic Arduino project scaffolding
0

after some experience

any editor (atom or vscode) are excellent with platformIO

offering:

  1. syntax highlighting
  2. debugger
  3. easy project (s) manager
  4. (which i like most) collapsible blocks

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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