Blog Home

Announcing the Arduino IDE 2.0 (beta)

Arduino TeamMarch 1st, 2021

The Arduino IDE is the well-known software we all use to program our boards. Its development started in 2005 based on the graphical interface of the Processing project and has never stopped since. During these years, countless hours of development by the Arduino team with the help of a vibrant community made the Arduino IDE the de facto standard for electronics prototyping. Thanks to an extensible framework based on modular board support packages, the IDE supports more than 1,000 official and non-official boards; it’s translated in 66 languages, mentioned by more than 3,000 books, and is still growing: during the last year, it was downloaded more than 39 millions of times. More than ever.

First off, a big thank you to the Arduino community that makes development possible with donations and — even more important — by buying original Arduino boards: we use your money to pay the developers that work daily on the Arduino open source software for the benefit of everyone. Keep supporting our work!

The path from a simple IDE to an advanced IDE

While the Arduino IDE provides a simple and clear interface that is ideal for the novice users, the more advanced users often report that the editing capabilities are a bit limited compared to modern editors. This includes features like code indentation, block folding, auto-closing brackets, regular expression search and replace, comment toggling. In addition to this, many users have been asking for live debugging, i.e. the ability to run code on an attached board and stop it at a given line to check the contents of variables, memory and registers.

The IDE 1.x is developed in Java, and its monolithic codebase makes it difficult to implement such features. Java is also becoming an obsolete technology for desktop applications and is being phased out by newer operating systems and app stores, which forces us to spend time on working around compatibility issues.

In 2018, we started to refactor the toolchain by announcing a big game changer: arduino-cli, the Arduino command line tool written in Golang that exposes all the core functionalities of the IDE, providing advanced users with a flexible tool they can integrate into their professional IDE of choice. Since then, we maintain and improve arduino-cli on a daily basis (try it now if you haven’t!).

In 2019, we announced the alpha release of a new IDE built on top of arduino-cli and based on a modern software stack (Theia and Electron) under the code name of “Arduino Pro IDE” and we got a lot of positive feedback about it. 2020 has been a busy development year, and a dedicated team of developers has been working behind the scenes to bring the new IDE from a proof-of-concept to a fully functional tool.

The time has come: please welcome the Arduino IDE 2.0 (beta)

We’re pleased to announce that as of today the Arduino IDE 2.0 beta is available for download and its code repositories become open source. It carries a modern editor and provides a better overall user experience thanks to a responsive interface and faster compilation time. Don’t be afraid of trying it today: the upgrade will be frictionless as the interface will look very familiar. But let’s see some of the goodies you’ll find.

While typing, the editor suggests the autocompletion of variables and functions according to the libraries you included:

When right-clicking on a variable or a function, a contextual menu will provide navigation shortcuts to jump to the line (and file) where they are declared:

See this page to learn more about the new editing tools.

But there’s another big feature in the new IDE: a live debugger that allows you to run your code interactively on a board and inspect its execution without writing tens of “Serial.println()” statements. Just fire the debug panel, set breakpoints where you want to pause the execution and inspect the content of variables. Oh, you can even change the content of variables on the fly and resume execution!

As of today, the debugger supports all the Arduino boards in the SAMD platform (MKR family, Nano 33 IoT, Zero). Support for the mbed platform (Nano 33 BLE, Portenta, Nano RP2040 Connect) is being implemented but might take a while. Maintainers of Arduino cores for third-party boards can add support for debugging by adding the relevant configuration parameters; a technical guide for this is coming. You’ll need to connect a debugging probe such as the Segger J-link to the SWD pins on the board and you’ll be ready to go. 

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 back end is written in Golang.

Try it now!

We need your help to test the new IDE. We want to make it perfect and bug-free, so do not hesitate to download it now and join the discussion in the forum! Ready to get started? Follow along with our tutorials here.

17 Responses to “Announcing the Arduino IDE 2.0 (beta)”

  1. bephoangcuong2021 Says:

    Very useful information, thanks

  2. marmil Says:

    Very cool, great to see this announcement!

  3. riban Says:

    Good to see the IDE get a much needed makeover. Initial (OOBE) observations:

    Complains about not being able to monitor files in file system (like VSCode does). This is an annoying nag which a novice doesn’t expect nor know how best to manager.

    Boards are not imported from previous version so expect to spend some time installing your old favourites. It isn’t particularly fast so put aside some time to set up IDE to meet your requirements.

    Pop-up information about functions, etc. obscures the text you want to edit which can be irksome. If you want to click on a function parameter to change it but you happen to move your pointer over the function name (which is very likely) then the parameters are obscured by the info pop-up and you have to click away then approach from a different angle. These pop-ups do tend to get in the way occasionally but showing them over the element of interest is particularly irksome. Better to show above so that the text you are interested in is still visible and more importantly, clickable.

    Compile time seems pretty fast and recompile after small change is quick which is such a massive improvement. Previously one may have to wait for a recompile of many elements just because a change of a comment!

    Opening a new instance, e.g. to start a new project takes longer than one might expect. Experience from other desktop applications is that opening a new document should be quite quick once the main application is open but IDE seems to create a whole new instance and takes some time to startup.

    No board is selected for a new project and attempt to compile (verify) gives cryptic message: no FQBN provided.

    Board selection feels a bit esoteric. You don’t select from a list but open another dialog the search (or scroll) through the list. Maybe just a UI change that we will get used to.

    Serial Plotter seems to be missing. Hopefully it will make an appearance soon.

    This is very quick play with the new IDE which looks and feels so much better than the old. Maybe there is a better place to report this kind of user experience and feedback. Keep up the good work and I look forward to seeing more improvements.

  4. Electrotechie Says:

    Well, it sounds good, but by ” You’ll need to connect a debugging probe such as the Segger J-link” do you mean like “8.08.00 J-LINK BASE” available from Farnell in the UK at only £410.592 albeit with free delivery? Gulp.

  5. alranel Says:

    @Electrotechie, not necessarily! Look for Atmel ICE or J-Link Edu Mini and you’ll see way lower prices 🙂
    Also, the Arduino Zero board does not even need a hardware probe because it has an on-board EDBG chip that will provide debugging support through the USB port.

  6. Electrotechie Says:

    Thanks alranel, I had a quick look there at the Zero board – I didn’t know it existed. I guess however that lots of arduino plugins won’t work because of the 3.5v logic input limit. I can manage 40 euros though. I guess the Atmel ICE at £143 gains over the J-link costs. I wish the announcements were a bit more cautious about costs to the little people though – I find debugging by print statements more than tedious as I guess will lots of other people, but low development costs are the big thing about Arduino.

  7. omikron88 Says:

    When will be available the support of RP2040? Is there a beta version of it already?

  8. dlanders911 Says:

    My question is, can it co-exist with my current 1.X installation? I don’t want to lose the ability to work on my current projects because of some issue with the 2.0 beta. Always, my concern with updating is, how much time will I waste because of the new version? Thanks

  9. omikron88 Says:

    dlanders911:
    Yes, the classic and 2.0 IDE can coexist. Just download the 2.0 beta, not the installer, but .zip Unzip it to the empty directory somewhere and run the main exe file. Nothing in your existing installation will be changed. It works with both Ubuntu and Win version.

  10. benicio_dominguez Says:

    Wonderful work! I tryed it and it is better than the older ide in every way! Congratulations and thanks for developing it, I was paying a lot for using the Visual Studio arduino addon!

  11. hirschle Says:

    Wonderful – A much more comfortable editor!
    As far as I understand the new IDE works more like Visual Studio Code; which led me to the question, if the new Arduino IDE is capable of loading an extension like platform.io?

  12. Radsolution Says:

    Can an Arduino MEGA be debugged in real-time? How?

    “paying a lot for using the Visual Studio arduino addon” – I use VMicro which is free.
    Which add-on are/were you using?

  13. mbratch Says:

    This is awesome. With the old IDE I avoided the built-in editor altogether and I was bouncing back and forth between VS Code and the Arduino IDE. The beta 2.0 IDE version is a huge improvement in many ways. I still like my VS Code for source control interface and advanced editing. But the Arduino 2.0 IDE is a much more productive environment and I can spend most of my time there without the bouncing. Sure there are niggles one can complain about (I saw one about pop-up information obscuring areas you want to type – VS Code does the same thing!), but I applaud the leap forward and look forward to more improvements in the future.

  14. Benik3 Says:

    Finally! Even that I think, that this should be here already for some time. Mainly because lot of people moved to Platform.io, which caused splitting of the community (I saw devs which make libraries primary for PIO without official install to Arduino IDE, and on the other hand only for Arduino IDE not working on Platform.io).

  15. DennisZ Says:

    1) In using the ‘Find’ function of the 2.0 IDE, I found that the option to ‘Search All Sketch Tabs’ is no longer available. Can I re-enable this functionality?

    2) In my sketch I have the following:

    #define MaximumRcvFrequency 147990000 /*Frequency ranges for receive and transmit in Hz*/

    When I try to select the text ‘MaximumRcvFrequency’ to use as a search term for the ‘Find’ function, a pop-up window appears and does not let me select the text. Can I turn this feature off?

  16. Frits1956 Says:

    How do I post a compilation error in the forum?

  17. zcorptecnologia Says:

    Muito bom ver o projeto Arduino evoluindo cada vez mais e mais. Desejo todo o sucesso do mundo a todos os envolvidos nesse projeto maravilhoso. Obrigado por TUDO!!!

Leave a Reply

You must be logged in with your Arduino account to post a comment.