Arduino IDE 2.1.0 is now available

If you are using a recent version of the IDE, you will get an auto-update offer simply by starting the IDE.

Otherwise, the release is available for download here:

https://www.arduino.cc/en/software


This release provides some nice advancements and fixes.

Thanks so much to the forum community for all the valuable testing and feedback that has helped us greatly in identifying and investigating these bugs and enhancements!

Highlights

  • Major reworking of Boards Manager and Library Manager user interface
  • Serial Monitor autoscroll bug fixes
  • Expanded Cloud sketch capabilities and integration

Fix incomplete scroll in Serial Monitor after autoscroll enabled

arduino/arduino-ide@fa9777e, arduino/arduino-ide#1736

Serial Monitor has an autoscroll mode where the panel automatically scrolls to keep the latest received data visible.

Previously, after the user enabled autoscroll the panel was not fully scrolled, causing the latest line(s) to not be fully visible.

Fix Serial Monitor autoscroll for content received when view not selected

arduino/arduino-ide@24dc0bb, arduino/arduino-ide#1724

Serial Monitor has an autoscroll mode where the panel automatically scrolls to keep the latest received data visible.

The UI container for the Serial Monitor view is the bottom panel of the Arduino IDE window. This panel also serves as the container for other views such as the "Output" view. The views can be selected by clicking their tab in the bottom panel.

Previously, the Serial Monitor view was not autoscrolled for data received while a different view was selected.

(Thanks @KurtE)

Refocus Serial Monitor after Compile/Upload

arduino/arduino-ide#1979

The UI container for the Serial Monitor view is the bottom panel of the Arduino IDE window. This panel also serves as the container for the "Output" view.

When a "Compile" or "Upload" operation is triggered, the "Output" view takes focus in the bottom panel.

The Serial Monitor view will now regain focus following the completion of a "Compile" or "Upload" operation under the following conditions:

  • Serial Monitor view was focused at the time the operation was triggered
  • The operation completed successfully

Show error when monitor process creation fails

arduino/arduino-ide#1965, arduino/arduino-ide#1508

When Serial Monitor is opened, a command line "pluggable monitor" tool for the selected port type is started.

Previously, if the startup of this tool failed for some reason (e.g., not able to connect to the port), Arduino IDE did not communicate the problem to the user in any way.

The error produced by the monitor tool is now shown in Serial Monitor, clearly communicating to the user that it is in a non-functional state and giving them some information about the cause of the problem (e.g., "serial port busy").

Fix unexpected version menu selection change in Library Manager

arduino/arduino-ide#1927, arduino/arduino-ide#1707

The Arduino IDE Library Manager allows the selection of any release of a library for installation from a menu in the entry.

Libraries may define dependencies on other libraries. When a dependent library is installed via Library Manager, Arduino IDE shows a dialog that offers the installation of the dependencies.

Previously, if the user closed that dialog, the selection in the library's version menu was changed to a version different from the one previously selected by the user.

Base Boards/Library Manager button text on library installation state

arduino/arduino-ide#1927, arduino/arduino-ide#1607

Previously, the buttons in Boards Manager and Library Manager were always labeled "INSTALL". Now, in cases where the item is already installed and clicking the button would result in an update, the button text is the more appropriate "UPDATE".

Fix Boards/Library Manager entry clipping

arduino/arduino-ide#1927, arduino/arduino-ide#1591

Previously, the bottom of the content of some of the entries in Boards Manager and Library Manager was clipped when the side panel was sized to the minimum width.

Don't offer redundant installation offers in Boards/Library Manager

arduino/arduino-ide#1927, arduino/arduino-ide#781

Previously, when a boards platform or library was installed and there was only a single release of the installed item, the Boards Manager and Library Manager UI offered installation of the already installed item.

Make Boards/Library Manager uninstall interface easier to find

arduino/arduino-ide#1927, arduino/arduino-ide#19

In addition to installation and updates of boards platforms and libraries, Boards Manager and Library Manager allow uninstalling items. Previously, the user interface for uninstalls was difficult to find because it was accessed via the unintuitive technique of hovering the mouse pointer over the "INSTALLED" label on the entry.

There are now two methods for uninstalling an item:

Button

  1. Select the currently installed version of the item from its version menu.
    The button text changes to "REMOVE".
  2. Click the "REMOVE" button.

Context Menu

  1. Click the ●●● icon at the top right corner of the item's entry.
    A menu will open.
  2. Select "Remove" from the menu.

Default Boards/Library Manager version menu selection to latest

arduino/arduino-ide#1927, arduino/arduino-ide#1924

Boards Manager and Library Manager allow the selection of any release for installation from a menu in the entry.

Previously an outdated version was selected in the menu by default under certain conditions. This might cause the user to install or update to an outdated version.

The latest version is now always selected by default in the menu.

Focus the search field when Boards/Library Manager is opened

arduino/arduino-ide#1927, arduino/arduino-ide#1941

A "Filter your search.." field is located at the top of the Boards Manager and Library Manager views.

This field is now given focus when the view is opened in the side panel. The user can immediately start typing their search query. This will be especially helpful to those who navigate the Arduino IDE UI via keyboard.

Open library examples from Library Manager

arduino/arduino-ide#1927

The traditional user interface for opening the example sketches of the installed libraries is through the File > Examples menu.

An additional interface for accessing these example sketches is now available:

  1. Find the library entry in Library Manager.
  2. Click the ●●● icon at the top right corner of the item's entry.
    A menu will open.
  3. Select "Examples" from the menu.

Improve performance of Library Manager search

arduino/arduino-cli#2102, arduino/arduino-cli#2064, arduino/arduino-ide#1949

Library Manager contains over 5000 libraries, with more being added all the time. The index of these libraries contains a significant quantity of data. This includes the data for each release of each of the 5000 libraries.

The performance of searching in the Library Manager panel was improved by omitting the large amount of release information (which is not relevant to the search operation) from the data used by the search feature.

Fix Library Manager falsely showing libraries as updatable

arduino/arduino-cli#2110, arduino/arduino-cli#1727, arduino/arduino-ide#1996

Library Manager indicates when a newer version of a library is available than the currently installed one.

Previously, certain libraries would be shown as updatable even though the newest version was already installed.

Use appropriate location for manual extension installation folder

arduino/arduino-ide@3676960, arduino/arduino-ide#1851

The free open source Eclipse Theia IDE framework Arduino IDE is built on supports adding additional functionality via VS Code extensions.

Although a GUI-based extension manager feature is not available, the user may manually install the extension.

Previously, Arduino IDE looked for these manually installed extensions in a location with an inappropriate path like ~/.arduinoProIDE/plugins (OS-dependent). The extensions will now be loaded from the appropriate path ~/.arduinoIDE/plugins.

:exclamation: If you have manually installed extensions at ~/.arduinoProIDE/plugins, please move them to ~/.arduinoIDE/plugins

Don't offer deprecated themes in Preferences dialog

arduino/arduino-ide#1994, arduino/arduino-ide#1283

Arduino IDE comes with several themes. The theme can be set via the "Theme" menu in the "Preferences" dialog (File > Preferences / Arduino IDE > Settings).

Arduino created a bespoke "light" and a "dark" theme for the IDE. The free open source Eclipse Theia IDE framework Arduino IDE is built on also includes a "light", "dark", and "high contrast". Because the "light" and "dark" themes are redundant to Arduino's own themes and the development resources are better dedicated to more significant work than maintaining those themes, the decision was made to deprecate the "Dark (Theia)" and "Light (Theia)".

These themes are no longer listed in the "Theme" menu. They will continue to be active for users who are already using one of the themes.

Indicate theme type in Preferences menu

arduino/arduino-ide#1994

Arduino IDE supports theming of the UI. The theme can be set via the "Theme" menu in the "Preferences" dialog (File > Preferences / Arduino IDE > Settings).

Themes can be categorized into three general types:

  • Official built-in
  • Deprecated built-in
  • User-installed

The type of each theme is now indicated by adding a "(deprecated)" or "(user)" suffix to the theme name in the "Theme" menu.

Fix editor cursor jumping to beginning of line

arduino/arduino-ide#1972, arduino/arduino-ide#437

Some users experienced the cursor intermittently jumping to the beginning of the line after pressing Enter.

The cursor will now always maintain the expected indentation level.

Revert Workaround

Affected users may have disabled the editor.trimAutoWhitespace advanced setting as a workaround for the bug. Since this setting is beneficial, it is recommended for those users to now revert the workaround, following these instructions:

  1. Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
    A menu will appear on the editor toolbar:
    image
  2. Select the "Preferences: Open Settings (UI)" command from the menu.
    β“˜ You can scroll down through the list of commands to find it or type the name in the field.
    A "Preferences" tab will open in the Arduino IDE main panel.
  3. Type editor.trimAutoWhitespace in the "Search Settings" field of the "Preferences" tab.
  4. Uncheck the checkbox next to the "β˜‘ Remove trailing auto inserted whitespace." setting.
  5. Close the Preferences tab by clicking its X icon.

(Thanks @Willem43)

Fix duplicated editor tabs

arduino/arduino-ide#1969, arduino/arduino-ide#1791

Previously, some users experienced duplicated tabs for the files of the sketch opened in the editor.

Allow leading underscore in sketch filenames

arduino/arduino-ide#1955

The Arduino Sketch Specification defines the allowed format of sketch folder names and sketch code filenames. Compliance with the specification ensures a sketch can be used with all Arduino development tools.

Arduino IDE 1.x validates sketch names against this specification. The validation system was added to Arduino IDE 2.x at the 2.0.4 release. It was later discovered that a bug in Arduino IDE 1.x caused non-compliant sketch names starting with _ to pass the validation. This resulted in the use of this name format being established in significant sketches. The correctly implemented validation in Arduino IDE 2.0.4 made it incompatible with those sketches.

Due to the significant historical usage of this non-compliant sketch name format, it was decided that the Arduino Sketch Specification should be aligned with the behavior of the Arduino IDE 1.x sketch name validation (even though that behavior was the result of a benign bug). So a leading underscore in sketch names is now permitted by the Arduino IDE 2.x sketch name validation.

(Thanks @naveeshgupta)

Fix Sketchbook view scroll position reversion bug

arduino/arduino-ide#1922, arduino/arduino-ide#1766

The "Sketchbook" view lists the sketches of the sketchbook in the Arduino IDE side panel.

Previously, the "Sketchbook" view's scroll position jumped back to the original position when the view was scrolled to the point where the selected sketchbook item scrolled off screen.

Support using debugger with non-default data directory location

arduino/vscode-arduino-tools#40, arduino/arduino-ide#1975, arduino/arduino-ide#1911

It is possible to configure a custom "data directory" location, under which platforms are installed by Boards Manager. Previously, the integrated sketch debugger failed to start when the user had set a custom data directory location, with an error message of the form:

Error getting Debug info: Unknown FQBN: platform arduino:samd is not installed

Recover from interrupted builtin tool installation

arduino/arduino-cli#2107, arduino/arduino-cli#1669, arduino/arduino-ide#1996

Arduino IDE depends on several external tools. These "builtin" tools are automatically installed or updated on IDE startup.

It is possible that the installation of a tool could be interrupted while in progress. This can leave the IDE in a non-functional state.

The IDE can now identify some forms of incomplete builtin tool installation and reinstall the tool to recover from this state.

(Thanks @dfeng)

List examples of active library in File > Examples menu

arduino/arduino-cli#2113, arduino/arduino-cli#1656, arduino/arduino-ide#1996

Arduino IDE recognizes libraries from multiple locations on the user's computer. Multiple versions of a given library may be installed at the same time. In this case, Arduino IDE selects the most appropriate library for the board being compiled for.

Previously, the examples sketches listed under the File > Examples menu were not always the examples of the library that would be used when compiling for the selected board.

(Thanks @Juraj)

Print FQBN in verbose compilation output

arduino/arduino-cli#2134, arduino/arduino-cli#2117, arduino/arduino-ide#1996

The "fully qualified board name" (FQBN) is the machine identifier for an Arduino board definition. This identifier is used in Arduino CLI commands.

In order to facilitate the use of Arduino CLI to run operations equivalent to those done in Arduino IDE, the FQBN is now printed in the verbose compilation output.

Fix corruption of certain characters in pulled Cloud sketch

arduino/arduino-ide#1910, arduino/arduino-ide#449

Sketches from the user's Arduino Cloud account can be opened in Arduino IDE.

Previously, any multibyte characters in the Cloud sketch were corrupted when it was pulled for use in Arduino IDE.

Add Cloud sketch Pull and Push icons to editor toolbar

arduino/arduino-ide#1901, arduino/arduino-ide#1899

Arduino IDE can be used to sync sketches to and from your Arduino Cloud sketchbook. These operations are referred to as "pull" and "push".

Previously, "pull" and "push" operations could only be triggered via the Sketchbook panel. Since these operations will be performed frequently by the user, "Pull Sketch" and "Push Sketch" icons have now been added to the editor toolbar when a Cloud sketch is opened in the IDE window.

Use icons to indicate pulled state of Cloud sketches in sketchbook list

arduino/arduino-ide#1901, arduino/arduino-ide#1879

All the sketches of the user's Arduino Cloud sketchbook are listed in the Arduino IDE Cloud Sketchbook view. Before opening one of these sketches in Arduino IDE, the sketch must first be "pulled".

Previously this state was communicated to the user by the color of the sketch name in the Cloud Sketchbook view. A "disabled" coloration was applied to the sketches that had never been pulled.

The state is now indicated by an icon to the left of each of the sketches in the Cloud Sketchbook view.

Add indicator to title of windows with Cloud sketch open

arduino/arduino-ide#1901, arduino/arduino-ide#1878

Sketches from the user's Arduino Cloud sketchbook can be opened in Arduino IDE. The development workflow for these sketches is different from a local sketch in that the user can sync the sketch to and from the Arduino Cloud sketchbook. For this reason, it is important for the Arduino IDE UI to clearly communicate the type of the currently open sketch.

A "[Cloud]" indicator is now shown in the title of windows with a Cloud sketch open.

Support pushing local sketches to Arduino Cloud

arduino/arduino-ide#1901, arduino/arduino-ide#1876

Arduino IDE 2.x has two types of sketchbooks:

  • Local: sketches are only stored on the user's local drive
  • Cloud: sketches can be synced to and from Arduino Cloud

It is now possible to introduce sketches that were created in the local sketchbook into the Arduino Cloud sketchbook.

This is done by clicking the "Push Sketch to Cloud" icon that appears to the right of the local sketch when it is selected or hovered in the "Local Sketchbook" view.

Always add #include directive for arduino_secrets.h when pulling Cloud sketches with secrets

arduino/arduino-ide#2010, arduino/arduino-ide#1999

In order to facilitate sharing sketches without leaking private information (e.g., credentials, tokens, keys), Arduino Cloud has a "secret tab" feature.

When a Cloud sketch that uses this feature is pulled in Arduino IDE, the secrets are added to a dedicated arduino_secrets.h file in the sketch. The IDE must also add an #include directive to the primary .ino file of the sketch to allow the sketch code to reference the secrets.

Previously, this #include directive was not added sometimes. This fault would cause the sketch to fail to compile.


Full changelog here:

https://github.com/arduino/arduino-ide/releases/tag/2.1.0


If you have any questions or feedback please post here in the Arduino IDE 2.x's dedicated forum category:

https://forum.arduino.cc/c/software/arduino-ide-2-0-beta/93

If you want to see the list of known issues, work in progress, submit a formal report, or contribute to development, the IDE 2.x source code is hosted in this public repository:

https://github.com/arduino/arduino-ide

2 Likes

Awesome.
Finally the IDE library manager can actually manage libraries.
i.e. can install and remove libraries.
Wow, that only took, what 10 years?
I have no clue why there was such resistance at Arduino.cc to being able to remove libraries but glad the IDE was finally updated to do this.

--- bill

1 Like

Arduino IDE 2.x had it from day one, so more like 6 years. Or if you want to count "Arduino Pro IDE", four years.

It is only that the previous Arduino IDE 2.x Library Manager UI made it difficult for the user to discover the uninstall button:

Wow. I never new about that hidden uninstall button & capability.
Not a wise choice for UI design. Very non intuitive.
Quite the Easter egg.
I'm guessing that a hover can be tricky to do for touch screen users.
i.e. trying to position pointer without actually clicking on the button

MUCH better and intuitive now.

--- bill

2 Likes

2 posts were split to a new topic: Add sketch name search capability

I rather see the ability to search for libraries by name.
I don't see a way to do that right now since it appears that the library search looks in all the text of the library.properties file.

--- bill

1 Like

The Arduino developers are tracking this request here:

A post was merged into an existing topic: Add sketch name search capability

2 posts were split to a new topic: Arduino IDE 2.1.0 is very slow on my MacBook Pro

IDE 2 still bugged ? ... still no "portable" ?

Bottom of the original post:

1 Like

Nevermind ... will stay on 1.8 til the "no portable" bug is solved.

1 Like

Hello Guys, I'm using Arduino from a long time but lately I have updated my Arduino ide to IDE 2.x and for some reason this IDE is having problem uploading the sketch to my Arduino, It gives an error message when uploading a sketch saying can't set state for com port "COM X". but when I start the Serial Monitor it too doesn't load and says connecting to Arduino, but at least when I open the serial Monitor I am able to upload the sketch once and then again when uploading new sketch or for second time it pops the error message again saying can't set COM port. when I had the old IDE 1.8.x I never faced any problems in those old version. but now as I downloaded the new 2.X IDE seems like the old IDE also started facing the same problem of can't set com port. And YES none of my hardware is broken all my Arduino's works and also my drivers are updated too, seems like there's some bug. Probably some one can help me fix this.

Helli @duronto

Have a look in this section of the forum: Avrdude, stk500, Bootloader issues - Arduino Forum. The problem had been raised a couple of times and a possible solution is provided.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.