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
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
- Select the currently installed version of the item from its version menu.
The button text changes to "REMOVE". - Click the "REMOVE" button.
Context Menu
- Click the βββ icon at the top right corner of the item's entry.
A menu will open. - 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
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:
- Find the library entry in Library Manager.
- Click the βββ icon at the top right corner of the item's entry.
A menu will open. - 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
.
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 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:
- 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:
- 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. - Type
editor.trimAutoWhitespace
in the "Search Settings" field of the "Preferences" tab. - Uncheck the checkbox next to the "
β
Remove trailing auto inserted whitespace." setting. - 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
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: