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!
Fix corruption of multi-byte UTF-8 symbols in Serial Monitor
arduino/arduino-ide#1758
, arduino/arduino-ide#589
Multi-byte characters (e.g., °
) received by Serial Monitor were sometimes corrupted (appearing as �
).
(Thanks @RudolfAtRTC)
Fix IDE startup hang if sketchbook folder location not accessible
arduino/arduino-ide#1774
, arduino/arduino-ide#1764
Arduino IDE requires access to a "sketchbook" folder in order to be fully functional. If the folder does not exist, Arduino IDE will create it. However, in cases where the configured location is not accessible this is not possible.
Arduino IDE hung on startup under these conditions. It will now start up fully and communicate the problem to the user via a notification:
(Thanks @rpgfabi)
Show custom board option settings in Tools menu
arduino/arduino-ide#1746
, arduino/arduino-ide#343
It was necessary to open the custom board option menus in order to see which option was selected:
The current settings are now visible simply by opening the Tools menu:
Make Sketchbook menu reflect sketchbook folder structure
arduino/arduino-ide#1814
, arduino/arduino-ide#1185
Sketches may be organized into subfolders of the sketchbook folder. The structure of the File > Sketchbook menu now reflects the folder structure instead of a flat listing:
Fix Preferences menu item disabled if dialog used soon after IDE startup
If the "Preferences" dialog was opened soon after Arduino IDE was started, after closing the menu the File > Preferences menu item was disabled.
Fix "Upload"/"Upload Using Programmer" menu items remaining disabled after completion of upload
arduino/arduino-ide#1750
, arduino/arduino-ide#1722
While an "Upload" or "Upload Using Programmer" operation is in progress, Arduino IDE disables the buttons and Sketch > Upload/Upload Using Programmer menu items to prevent the user from accidentally triggering multiple concurrent uploads.
Under certain conditions the menu items were not re-enabled after the completion of the upload process.
(Thanks @weshowe)
Always show Sketchbook and Port menu items
arduino/arduino-ide#1774
, arduino/arduino-ide#569
, arduino/arduino-ide#655
Arduino IDE did not add a "Sketchbook" menu item to the "File" if the sketchbook folder didn't contain any sketches. Likewise, it did not create a Tools > Port menu item if no ports were found.
Feedback indicated this behavior resulted in a poor user experience, so it was changed to more clearly communicate the situation to the user by always adding these menu items even when there is nothing to populate them, consistent with the behavior of Arduino IDE 1.x.
(Thanks @pupa571)
Update affected UI elements after "Sketchbook location" preference change
arduino/arduino-ide#1774
, arduino/arduino-ide#796
The user can configure the location of the sketchbook folder via the Arduino IDE preferences. Various UI elements in the IDE are populated according to the contents of the sketchbook folder (sketches, libraries, manually installed boards platforms).
Some of these UI elements were not updated following a change to the "Sketchbook location" preference, resulting in incorrect data being shown in the UI.
Update affected UI elements after "Add .ZIP Library..." operation
arduino/arduino-ide#1807
, arduino/arduino-ide#659
Various UI elements in the IDE are populated according to the installed libraries.
Some of these UI elements were not updated following a library installation via Sketch > Include Library > Add .ZIP Library..., resulting in incomplete data being shown in the UI.
Don't allow duplicate library installations
arduino/arduino-ide#1909
, arduino/arduino-cli#1983
, arduino/arduino-cli#1871
Installation of multiple libraries with the same name created a situation where the library was in a perpetually updatable state.
Installations of libraries when another library of that name is already installed now fail with a notification that explains the problem:
Use established sort order in Boards Manager and Library Manager listings
arduino/arduino-ide#1866
, arduino/arduino-ide#1106
Boards platform and library listings now have sorting consistent with the Arduino IDE 1.x Boards Manager and Library Manager:
- Official
- Contributed
- Retired/deprecated
Always set "Updatable" filter when Boards Manager/Library Manager opened from update offer dialog
arduino/arduino-ide#1748
, arduino/arduino-ide#1740
Arduino IDE automatically checks for available updates to boards platforms and libraries. The update dialog includes an "INSTALL MANUALLY" button that opens Boards Manager or Library Manager with a listing of the available updates.
Under specific conditions, the "Updatable" filter was not set when that button was clicked by the user.
(Thanks @KurtE)
Store temporary files under a dedicated folder
arduino/arduino-ide#1909
, arduino/arduino-cli#2031
, arduino/arduino-cli#2028
, arduino/arduino-cli#2033
, arduino/arduino-ide#1811
, arduino/arduino-language-server#146
, arduino/arduino-language-server#145
, arduino/arduino-ide#1779
In order to make it easier to find and clean up the temporary files created by Arduino IDE, they are now stored under a dedicated folder named arduino
in the system temporary folder.
(Thanks @sterretje)
Delete unused compilation caches
arduino/arduino-ide#1909
, arduino/arduino-cli#2033
, arduino/arduino-cli#2029
Arduino CLI caches the objects produced by compiling a sketch program under the temporary folder. These folders are intentionally left behind in the temporary folder after an Arduino CLI process exits so that they can be reused for subsequent compilations as applicable.
This resulted in a significant accumulation of files in the temporary folder of active users with operating systems that don't automatically clean the temporary folder. The caches are now automatically deleted if they haven't been used for 30 days (configurable).
(Thanks @Dougl)
Remove encoding from status bar
arduino/arduino-ide#1804
, arduino/arduino-ide#1393
The file encoding (e.g., UTF-8) was shown in the Arduino IDE status bar. This information might be useful occasionally in a general purpose text editor, but is not needed in the application-specific Arduino IDE.
It was removed to reduce unnecessary clutter and complexity from the Arduino IDE UI.
The file encoding modification capability is still available by running the "Editor: Change File Encoding" command from the Command Palette.
Allow addition of existing code files to sketch
arduino/arduino-ide#1805
, arduino/arduino-ide#284
Arduino IDE's Sketch > Add File... feature is used to add existing files to the sketch.
This feature only supported the addition of supplemental non-code files to the data
subfolder of the sketch. However, the user might also find it convenient to add existing code files (e.g., a reusable header) to the sketch.
Arduino IDE now automatically places files with supported code file extensions in the root of the sketch folder when added via the "Add File.." feature, consistent with the behavior of Arduino IDE 1.x.
(Thanks @lorandil)
Restart language server after change to platform or library
arduino/arduino-ide#1808
, arduino/arduino-ide#670
Arduino IDE uses a language server to provide features such as autocomplete and "go to definition". The language server must have an understanding of the complete sketch program, including its dependencies.
The language server data was not refreshed immediately after the installed platforms or libraries were updated, which could lead to incorrect results from the language server-based features until a refresh was triggered by a change to the sketch code.
Pass custom board option settings to language server
arduino/arduino-ide#1812
, arduino/arduino-ide#1029
The Arduino boards platform framework allows platform authors to provide additional configurability to their board definitions by adding arbitrary "custom board options". These custom board options may affect the compilation of the sketch program.
The IDE's language server always used the default custom board option values even when the user had selected other settings. This could cause inaccurate language server results.
(Thanks @pjrc)
Support IDE installation paths that contain #
arduino/arduino-ide#1811
, arduino/arduino-ide#1124
, bugst/go-lsp#1
Arduino IDE was non-functional when a #
character was present in any part of the installation path.
(Thanks @wezz19)
Communicate cause of debugger not starting with uncompiled sketch
arduino/arduino-ide#1809
, arduino/arduino-ide#808
The sketch must be compiled before starting the IDE's integrated sketch debugger.
If this was not done, the debugger initialization failed silently, giving the user no indication of the cause. It is now clearly communicated by a notification which also offers to compile the sketch for the user:
Add leading+trailing line break to "Copy for Forum" content
The Edit > Copy for Forum feature copies the selection with the appropriate code block markup for posting to Arduino Forum (and any other communication channel that supports Markdown). In order for the markup to be correctly recognized by the forum software, it must be on its own line.
The copied text did not include the line breaks to ensure that, which placed the burden of correct formatting to the user.
(Thanks @J-M-L)
Populate "Board Info" dialog from port data (#1489)
arduino/arduino-ide#1803
, arduino/arduino-ide#1489
The dialog accessed via the Tools > Get Board Info menu showed information from the definition of the currently selected board. This information was not very useful. The information shown in the dialog is now read from the hardware attached to the currently selected port, consistent with the behavior of Arduino IDE 1.x:
Fix support for user-installed theme extensions
arduino/arduino-ide#1743
, arduino/arduino-ide#1742
Additional theme extensions were no longer listed in the "Theme" menu of the Arduino IDE preferences.
(Thanks @Willem43)
Improve contrast of cursor color in "Dark (Arduino)" theme
arduino/arduino-ide#1836
, arduino/arduino-ide#1251
User feedback indicated that the previous cursor color when using the "Dark (Arduino)" theme had too low a contrast against the background color.
Improve contrast of "Output" view stderr text in "Light (Arduino)" theme
arduino/arduino-ide#1836
, arduino/arduino-ide#1087
Output received from the standard error stream ("stderr") of the compilation and upload tools is colored red when printed in the Arduino IDE "Output" panel.
The dark shade of red used by the "Light (Arduino)" theme had poor contrast against the panel's black background.
Prevent creation of sketches with non-compliant names
arduino/arduino-ide#1833
, arduino/arduino-ide#1599
The Arduino Sketch Specification defines the valid name format for Arduino sketches and code files.
Arduino IDE 2.x now prevents the creation of sketches with invalid names, consistent with the behavior of Arduino IDE 1.x:
(Thanks @UKHeliBob)
Fix missing toolbar context menu items when editor doesn't have focus
arduino/arduino-ide#1833
, arduino/arduino-ide#1847
The "Rename" and "Delete" menu items were missing from the editor toolbar context menu when the editor panel didn't have focus.
Fix handling of primary sketch tab deletion
arduino/arduino-ide#1833
, arduino/arduino-ide#649
When the user deleted the primary sketch tab via Arduino IDE, they were presented with a "Do you want to delete the current sketch?" dialog, but then the sketch was not deleted if the user confirmed.
Fix unexpected sketch deletion when location inside sketch folder selected as rename target
arduino/arduino-ide#1833
, arduino/arduino-ide#1882
The sketch can be renamed by selecting "Rename" from the editor toolbar context menu for the primary sketch tab.
If the rename was made inside the sketch's original folder, the sketch was unexpectedly deleted.
(Thanks @digibytes)
Use hardware ID for board auto-selection
arduino/arduino-ide#1913
, arduino/arduino-cli#2065
, arduino/arduino-cli#2024
, arduino/serial-discovery#60
Port data may now include a "hardware ID" (e.g., a serial number), which identifies a specific hardware instance.
This ID is now used to automatically select the board previously associated with that ID after the port address changes.
Enable rename and delete of Cloud sketches
arduino/arduino-ide#1833
, arduino/arduino-ide#1825
Cloud sketches and individual Cloud sketch files can now be renamed and deleted via the Arduino IDE interface.
Add activity bar icon for Arduino Cloud login
arduino/arduino-ide#1881
, arduino/arduino-ide#1877
An icon for convenient login to your Arduino Cloud account has been added to the "Activity Bar" on the left side of the Arduino IDE. This is used for the integration of the Cloud sketchbook into Arduino IDE:
Transition "Remote Sketchbook" terminology to "Cloud Sketchbook"
The previous use of the term "remote" to refer to the Arduino Cloud integration features is being transitioned to the more intuitive "Cloud".
Fix proxy protocol incorrectly shown as "SOCKS" in "Preferences" dialog
arduino/arduino-ide#1778
, arduino/arduino-ide#1775
Arduino IDE can be configured to access the Internet via a proxy server. Two protocols are supported: "HTTP" and "SOCKS5".
After the user configured a proxy with HTTP protocol, the "Preferences" dialog incorrectly showed the "SOCKS" protocol option was selected.
Fix support for SOCK5 proxy server protocol
arduino/arduino-ide#1776
, arduino/arduino-ide#1769
A bug caused Arduino IDE to not be able to access the Internet via proxy servers using the SOCKS5 protocol.
Update translations
The community work to make Arduino IDE accessible to everyone in the world continues, reaching high coverage levels for 17 languages.
If you would like to contribute to the Arduino IDE translations, please see the information here:
Use a local npm registry for app packaging
The system used to build the Arduino IDE application from the source code was changed to use a local npm registry. This reduces the duration of the Arduino IDE application build process.
Full changelog here:
https://github.com/arduino/arduino-ide/releases/tag/2.0.4
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: