Although the default Arduino IDE and Arduino Web Editor that so many of us use for our Arduino projects are functional, they can be a bit uninspiring to look at. Or perhaps there are aspects of programming you prefer that aren’t as developed (or available at all) on Arduino IDE.
There are IDE alternatives that provide advanced functionality such as intellisence, spell checking, syntax highlighting, file system explorers, and debugging capabilities. Most of these alternatives are highly configurable, so if you’re not happy with something, you can always change it.
Let’s take a look at some free IDE alternatives that can expand the Arduino programming experience.
Visual Studio Code
Since its release in 2015, Visual Studio Code has become very popular with developers for a variety of reasons.
Note that Visual Studio Code on its own is a code editor not an IDE like Visual Studio. It can be used as an IDE by installing plugins available in the marketplace. With the plugins, it supports many programming languages such as Java, C/C++, Python, and Node.js and includes code completion, debugging, and syntax highlighting.
To allow you to add to its functionality, Visual Studio Code has released an array of extensions, including an Arduino-dedicated extension announced in July 2019. This extension provides all the features of the Arduino IDE such as board manager and serial monitor. It also includes an extension for PlatformIO (which we cover a bit more below). Before this extension was announced, an Arduino programming plugin was available that allowed users to access Visual Studio.
Visual Studio Code doesn’t work for Arduino out of the box. However, after a little setup, it provides many enhancements to help make programming much easier.
Visual Studio Code at a Glance
- Raspberry Pi
- Lots of available extensions
- Works on a variety of platforms
- Extensive documentation
- Requires some set up before you can use it with Arduino.
Atom with PlatformIO
Atom is a source code editor developed by GitHub, and is similar in style to Visual Studio Code. It features auto-completion and code highlighting and can be extended using packages.
PlatformIO is available as a package for Atom and offers many enhancements to the Arduino development workflow, such as a linter, and automatic detection of USB connections. PlatformIO doesn’t just support Arduino, it can build software for over 600 other embedded development boards such as ESP8266, ESP32, Atmel AVR, ST STM32, and Teensy. So if you decide that you want to start developing for platforms other than Arduino, you can stick with the same editor.
PlatformIO/Atom at a Glance
- Support for a huge variety of development boards
- Lots of available packages
- Requires some set up to use with Arduino
- Can be slow to start up
Sloeber is an Arduino IDE developed by Jantje Baeyens based on Eclipse, which is an established Java IDE.
Sloeber is much easier to set up than Atom or Visual Studio Code as there is one file to download and it automatically sets itself up for Arduino upon installation. It can be adapted for ESP8266/ESP32 and Teensy development as well.
What I like most about Sloeber is it displays all the Arduino source code, which is hidden by Arduino IDE. This allows you to investigate what happens behind functions like Serial.begin().
Sloeber at a Glance
- Requires only one download.
- Works out of the box for Arduino.
- Can also work with ESP8266/ESP32 and Teensy
- Doesn’t look as sleek as Visual Studio Code or Atom
Do you think you need a flashy editor to create code for the Arduino? Arduino-cli is proof that you don’t!
Arduino-cli is a version of the Arduino IDE that comes without a graphical user interface (GUI). Instead, it is controlled by typing commands into a command line interface (CLI).
Many developers prefer the CLI approach because they feel it is faster to use the keyboard without the mouse. It also allows users to automate any Arduino build process. This is an excellent way to introduce yourself to the command line, which is used a lot more on Linux-based operating systems such as Raspberry Pi’s Raspian.
Arduino-cli at a Glance
- Raspberry Pi
- Incredibly simple interface
- You can pretend you are Mr. Robot!
- Still in beta development, so could be unstable
Do you get some of your biggest ideas when you’re away from your computer? If you get the urge to do some Arduino programming on the go, check out ArduinoDroid.
ArduinoDroid is an Android app which is available in the Google Play Store. It’s free but contains adverts (which can be removed by an in-app purchase). This app offers several useful features such as syntax highlighting, compilation, and code completion.
To connect your phone to your Arduino board, you will need to purchase a USB On-The-Go cable which range in price from $1 to $5. Overall a nice app if you don’t mind typing on a small screen.
ArduinoDroid at a Glance
- Android smartphones
- Develop Arduino code anywhere!
- Can use if you don't have easy access to a desktop computer
- Only available on Android
- Requires a USB OTG adapter
- Costs extra if you don't want ads
EmbedXcode is a template that adds embedded development board support to Apple's XCode IDE, which supports Arduino as well as Teensy, chipKit, and others. This is available in a free standard edition or you can donate to get access to advanced features and support.
XCode is one of the most advanced programming environments and has a steep learning curve which can be daunting to a beginner who has only tinkered with the Arduino IDE. Apples’ XCode is only available on a Mac OS, so you will need a Mac to use this.
embedXCode at a Glance
- Allows simple integration of embedded systems
- Not beginner-friendly
- Only available on MacOS
A Variety of IDE Options
When it comes to alternatives to Arduino IDE, there are a ton of options that all have their advantages and disadvantages. Here we've introduced some popular, free options that would be worth checking out.
Did we miss a free IDE you love? What experiences have you had with the options we covered? Let us know in the comments!