What are the best Arduino UI

The way to Rome; or: Alternatives for the Arduino IDE

So far, we have only spoken of the Arduino IDE when it comes to programming an Arduino board. Due to its "one-size-fits-all" approach, however, it has the disadvantage that it is mainly geared towards the needs of beginners. In addition to the IDE from the Arduino creators, there are also a few alternatives. This episode highlights environments that work on macOS, Windows or Linux.

The online search for programming environments for microcontrollers like Arduino comes up with a few hits. There are operating system-specific programming environments such as:

This list serves only as an excerpt and does not claim to be complete.

Of course there are also command line tools such as avr-gcc, ..., avrdude (see article on microcontroller.net), which support the above-mentioned operating systems, but do not have a graphical programming environment. The blog will report on these command line tools in a future episode.

IDEs for Windows, macOS and Linux

As mentioned at the beginning, the subject of this blog is IDEs for advanced developers. Prerequisite: the environments presented should support the Linux, macOS and Windows operating systems. You can choose from among others

  • PlatformIO
  • Sloeber
  • UECIDE
  • codebender
  • Arduino Create

This list is certainly not complete either. But it contains at least very promising candidates.

PlatformIO

PlatformIO is based on the adaptable Atom text editor, which is also used, for example, by the ParticleDev programming environment for the Photon board. The IDE describes itself as an open source ecosystem for IoT development and includes a cross-platform code builder, library manager, and continuous and IDE integration. Among other things, Arduino and ARM boards are supported there.

For professional developers this has a great advantage over the Arduino IDE that several projects can be processed at the same time. It is also nice to be able to adapt the user interface to your own needs.

Overall, PlatformIO includes support for more than 250 boards, 15 development platforms and 10 frameworks. It supports C ++ code completion, checks syntax with the Linter tool. The integrated library manager can access hundreds of libraries. In addition to a serial port monitor, the IDE has a built-in terminal.

Here is a short journey through pictures on how to use the programming environment. After the application has been installed on the target platform (Windows, macOS, Linux, ARM), the installation is completed when the application is started for the first time:

Developers then create a new project to which they add source code files, or they simply import an existing Arduino project:

The code can now be easily created and edited in the editor:

While the program is running, developers can observe the serial communication via the serial port monitor:

display

If you want, you can let off steam with the many setting options in the area:

PlatformIO is available free of charge in a free version, which is the subject of this article. There are also more extensive subscriptions, from US $ 9.99 per month (Basic) to US $ 99.99 per month (Professional) and customizable enterprise subscriptions.

Sloeber + Eclipse = Arduino IDE

Eclipse is a constant in the world of programming, which is why the question should immediately arise, why there are no plug-ins for Arduino programming under Eclipse. In fact, there is such a plug-in. It's called Sloeber - like a strong Belgian ale - and has its home on the website eclipse.baeyens.it.

There are two options for installing this programming environment:

  • Option A: Install the Eclipse installer from the Eclipse download page. When the installation program is running, the user should select the Eclipse C ++ environment CDT. You can then use Help | Install New Software Install the Sloeber plug-in in Eclipse. The following URL must be entered as the site in Eclipse. Stable version: http://www.baeyens.it/eclipse/V3. Nightly Build Version: http://eclipse.baeyens.it/nightly.
  • Option B.: If you don't want to "mess around" with Eclipse installations, you can also download an "all-inclusive" package with Eclipse and an integrated Sloeber plug-in:

After successful installation, an Arduino project can be created in Eclipse:

Internally, the Sloeber plug-in uses the command line tool avrdude to upload sketches to Arduino boards:

If the environment was able to successfully load the program onto the Arduino board, its serial communication can be visualized in real time via the serial monitor:

Sloeber is particularly interesting because, as an Eclipse plug-in, it can make use of the power of the Eclipse environment.

  • The syntax editor allows sophisticated syntax coloring and code folding.
  • The compiler can be given additional switches via the Compile Options menu instead of a global file platform.txtneed to change like in the Arduino IDE.
  • Eclipse allows you to edit multiple Arduino projects and project files at the same time.
  • Sloeber offers viewing and editing of Arduino system files and library files that an Arduino IDE hides in order not to confuse casual programmers.
  • Sloeber uses the sophisticated search / replace functions of Eclipse. For example, when hovering the mouse pointer over method signatures, it shows their implementation.

Anyone who as a programmer already regards Eclipse as a bread and butter tool should take a good and familiar path with Sloeber.

UECIDE

The IDE UECIDE is also available for Linux, macOS and Windows. The programming environment under development can be downloaded from the associated website.

The UECIDE syntax editor provides line numbers and syntax coloring as well as sophisticated search & replace and code folding. The IDE not only shows the editor window, but also provides an insight into all project files. In addition, several files can be edited in different tabs, which allows much more overview compared to the Arduino IDE.

Developers can use the Sketch menu to compile sketches and load them onto the board.

The most important architectural component of the Java-based UECIDE is the plug-in manager. Plugins are downloadable artifacts that add functionality to a system.

  • IDE plug-ins allow the IDE to be enriched with features. One example of this is the serial terminal from UECIDE, which, in contrast to its counterpart in the Arduino IDE, provides an ANSI-VT-100 terminal.
  • The boards with their definition and programming aspects are also integrated as plug-ins. For a better overview, the IDE arranges the boards according to manufacturers, such as Arduino, chipKIT. Another advantage of this approach: Developers decide which boards to use and install.
  • The third type of plug-ins are the so-called cores. Strictly speaking, they represent libraries for programming boards including the implementation of instructions such as pinMode (), digitalWrite (). By the way, there can also be several cores for the same boards.
  • Compilers and tools for programming the boards are available as plug-ins.

By the way: As befits a consistent and integrated plug-in concept, the plug-in manager itself is also implemented as a plug-in.

To optimize the translation speed, UECIDE treats the components of a sketch as separate modules. This includes, for example, the sketch or the libraries. The system translates these parts separately, and it can cache the generated binary files.

codebender.cc

Codebender offers a slightly different option for Arduino programming. Everything there revolves around the browser. In the following window you can see codebender in operation. The developer can create and save sketches (blue control panel at the top left), verify the code (green control panel with the inscription "Verify"), or load the Sktech onto the Arduino (green control panel with the inscription "Run on Arduino").

Codebender even allows flashing with a programmer.

Furthermore, developers can establish a connection with the serial monitor in order to observe and analyze the output from the Arduino board:

To use codebender, developers need to register, download a plug-in from the Getting Started website and use one of the supported browsers such as Firefox or Chrome / Chromium.

The problem for codebender.cc operators is that they are left with the costs and therefore have to discontinue their service shortly. Therefore, this chapter serves more as a memorial that even with makers, the trees do not grow into the sky.

Arduino Create

There's a little consolation for codebender enthusiasts. With Arduino Create, developers also have a browser-based environment at their disposal that requires prior registration and the installation of a plug-in.

The Arduino Create environment has already been tested in this post, which is why I refer to the corresponding link at this point.

Summary

So there are quite useful alternatives to the Arduino IDE. Sloeber, PlatformIO and UECIDE in particular are also suitable for professional developers thanks to their features.

Of the operating system-independent IDEs presented, the browser-based codebender.cc is certainly the most exotic environment. Unfortunately, due to the lack of financial support for the operators, this option will soon be a thing of the past. Arduino Create may be able to fill the vacant gap.

For Eclipse users, Sloeber should be a desirable option, as it allows them to work in the familiar environment. Interesting is the maturing UECIDE, which integrates some features that go beyond the Arduino IDE and should be exciting for Arduino developers.

The most extensive is PlatformIO, which makes the most sophisticated and professional impression of the IDEs described.

Conclusion: It doesn't always have to be the Arduino IDE.