Arduino IDE 2.0 beta released with live debugger, revamped user interface

Arduino programming language and the Arduino IDE are the most popular software development tools for the makers market, but it lacks some of the features found in professional tools like autocompletion and the ability to add breakpoints via a debugger, and that’s why the company announced its work on the Arduino Pro IDE in 2019. Work is now nearing completion with the release of the beta version of the Arduino IDE 2.0 based on the Eclipse Theia framework.

Arduino IDE 2.0

The user interface has been revamped with easy access to the newly added debugger, as well as the boards manager and libraries manager on the left side of the interface, the possibility to type the name of the board, and autocompletion of variables and functions from your code and installed libraries.

Pressing F12 while on a function name will bring you directly to the corresponding code in another tab, or alternatively, you can right-click to select Peek definition or press Ctrl+Shift+F10 to open a new section with the function code.

Arduino Peek FunctionThe interface is also said to be more responsive, and offers faster compilation.

As noted previously, another important change is the addition of a live debugger that allows you to insert breakpoints, check the call stack, watch the value of local and global variables, and more.

Arduino IDE 2.0 Debugger

It should be noted that the debugger only supports Arduino boards based on the SAMD and Mbed platforms, meaning the MKR family, Nano 33 IoT, Nano 33 BLE, Portenta, and Zero). Support for third-party boards will be possible by adding configuration parameters and a debugging probe such as the Segger J-link to the JTAG pins on the board.

You can download and try out Arduino IDE 2.0 beta for the x86 64-bit version of Windows, Linux, or Mac OS operating system. For more information about other new features such as the ability to run multiple serial consoles in parallel, check out the getting started guide.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

13 Replies to “Arduino IDE 2.0 beta released with live debugger, revamped user interface”

  1. I wonder why they bothered with eclipse.. a meta-plugin for vscode, like platform.io, would have been enough. Hell, Arduino-plugins already exists for eclipse.. i really don’t see a point for yet another oem eclipse version that gets outdated when a new eclipse version is released

    1. The interface of Theia (on their site) looks much like Atom/VSCode. Browsing the GitHub repo, it is in fact js/ts sources – I think it is not based on Eclipse Java codebase /OSGI, but maybe it is Electron? It also claims to support VSCode extensions protocol.

      1. It’s explained on Arduino’s announcement blog:

        The new IDE is based on the Eclipse Theia framework, which is an open source project based on the same architecture as VS Code (language server protocol, extensions, debugger). The front-end is written in TypeScript, while most of the backend is written in Golang.

  2. Platformio is very nice to handle big projects but it’s not perfect : there is sometimes strange behavior, bugs and little things to know.
    I hope that this arduino ide will reduce the lack of features of the arduino IDE with more reliability !

    1. It’s also not as integrated as Arduino. Makes it harder for beginner to include libraries. But I really like platformIO in general. They have a great set of tools.

    1. Eclipse is the worst of Java IDEs. Java promised that all code needs to be compiled once and runs everywhere. Well, it only applies to pure Java code. Eclipse depends on platform specific binaries at its core.

      1. Eclipse Theia is a completely different framwork and it’s the same technology used in Visual Studio Code. This IDE has got nothing to do with the old Java based Eclipse IDE

  3. Let’s hope it’s not as unusable as the 1.x one. Basically extremely unresponsive, and with an auto-indenting editor that is always wrong and that you cannot disable, the only editor that I’ve seen that constantly forces you to use the left arrow to go back to where you were before it started doing crap to help you.

    It’s nice if they include an easier access to the debugger, but I’m a bit worried about the space left available for the code on the screen with that huge left bars taking 1/3 of the screen to display a few useless lines and icons :-/ With 60% of the screen surface being pure grey or white, I’m sure there are more efficient arrangements possible to limit the need to continuously scroll in every direction. Such environments have always made me feel like I have to write on a stamp using a paint roller.

    1. I’m not sure which IDE you’re talking about. the Arduino IDE 1.x is not auto-indenting (unless you issue the “auto Format” command) can you tell me which one you’re describing?

      1. The “standard” one, I don’t know how you’d call it, the one you see everywhere. 1.8.x here for example. Just try to enter “if (a) {” then press enter and you’ll see that it *does* auto-indent *and* inserts a closing brace after the point where you’re typing. I never figured how to disable this and it is extremely irritating when modifying some existing code, especially since it always indents that part, making things further wrong. For example, let’s say you have the following:

        Now you want to add a second instruction before or after the “do_something()” so you need to add a brace after the “if” line, and here’s what it instantly does for you:

        This is already extremely painful, but in more complex code it can even completely ruin the sequencing in ways that are not always easy to detect. For example, let’s say you’re having this code:

        Now you want to add a “do { … } while(…)” block before the while loop, you suddenly get this while typing:

        This closing brace that you never typed, followed by a while() suddenly becomes the looping condition of the “do” block you were entering and you basically have no easy way to figure that you didn’t finish to do it if you get disturbed in the middle of the operation.

        And you just have to read examples of small programs found anywhere on the net like instructables or blogs and see how horribly indented they are to figure there is definitely something totally wrong there. I gave up and switched to command line. But recently I tried to instruct a kid to use that and noticed that he was having great trouble as well with this interface, and that it was hard for me to explain a form of logic.

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC