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!
Deprecation notice: Upcoming cessation of support for Linux distros using glibc 2.28 
Recent changes in the framework used to produce automated release of Arduino IDE resulted in the loss of compatibility of the Linux builds with older Linux distro versions that use version 2.28 of the GNU C Library (glibc) shared library. This includes Ubuntu 18.04. Arduino IDE 2.3.4 will be the last version that can be used with these distro versions.
Future releases (including nightly and tester builds) will fail to start on machines using these distro versions with an error like:
Error: node-loader:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/foo/arduino-ide/resources/app/lib/backend/native/pty.node)
at 85467 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:2766)
at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
at 23571 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:3374073)
at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
at 55444 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:3369761)
at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
at 24290 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:1780542)
at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
at 43416 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:1770138)
at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
If you don't know which version of glibc your machine is using, run this from the terminal:
/lib/x86_64-linux-gnu/libc.so.6
Further technical details are available here.
The recommended path forward is to update to a modern version of Linux. If you can't or won't do that, you can update to the last compatible version of Arduino IDE, 2.3.4, and then avoid updating when future releases (e.g., 2.3.5) come out. There are two methods for dealing with these update offers. I'll provide instructions for both of them. You can pick whichever one of the two is most convenient for you.
"SKIP VERSION"
The "Update Available" dialog contains a "SKIP VERSION" button. If you click that button, Arduino IDE will no longer show the dialog for the specific newer version being offered at the time you click the button.
The dialog will appear once again each time Arduino releases a new version of Arduino IDE, so you will need to click the button again after each release. That is slightly inconvenient, but the release cycle is fairly long so I don't think it will be very burdensome.
Disable All Update Offers
It is possible to completely disable the offers of updates in the Arduino IDE advanced settings. The downside is this setting also disables offers of updates for your installed boards platforms and libraries.
- 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
arduino.checkForUpdates
in the "Search Settings" field of the "Preferences" tab. - Uncheck the box under the "Arduino: Check For Updates" setting.
- Close the Preferences tab by clicking its X icon.
Keeping Your Arduino Dependencies Updated
If you chose this "Disable All Update Offers" method, make sure to periodically check to see if newer versions of your installed boards platforms and libraries are available. You can do this by opening Boards Manager and then setting the "Type" menu to "Updatable", then repeating the process with Library Manager.
There is no possibility of a problem using newer versions of Arduino libraries on a computer with an older version of Linux, so don't worry about an incompatibility when updating your libraries.
It is theoretically possible that some future version of a boards platform could have an increased minimum Linux version requirement in its tool dependencies. Even if you did encounter that a boards platform stopped working after an update, you can always easily downgrade the platform back to the last working version via the Arduino IDE Boards Manager.
Fix operations hanging while Serial Monitor/Plotter is open
arduino/arduino-ide#2571
, arduino/arduino-ide#2562
, arduino/arduino-cli#2728
, arduino/arduino-cli#2719
A bug was introduced in Arduino IDE 2.3.3 that caused operations such as downloading Boards Manager package index files to hang if performed while Serial Monitor or Serial Plotter is open. The bug has now been fixed.
(Thanks @k5map and @starthemorning)
Fix bug causing failed uploads to be indicated as successful
arduino/arduino-ide#2518
, arduino/arduino-ide#2516
At the termination of an upload operation, Arduino IDE displays a notification to communicate the result to the user.
A bug was introduced in Arduino IDE 2.3.3 that caused the IDE to display the upload success notification even when the upload failed. This bug has now been fixed.
Fix compilation caching when library installation or cache path contains non-ASCII characters
arduino/arduino-ide#2571
, arduino/arduino-cli#2733
, arduino/arduino-cli#2671
In order to reduce the sketch compilation duration, Arduino IDE caches the compiled files and reuses those on subsequent compilations when appropriate.
Previously, the caching did not work when libraries were installed under a path containing non-ASCII characters, or when the path where the cached files are stored contained such characters. This resulted in unnecessarily long compilation durations for the affected users.
(Thanks @g91_y and @vvb333007)
Fix hang on startup when Raspberry Pi Pico/RP2040 platform installed
arduino/arduino-ide#2571
, arduino/arduino-cli#2707
, arduino/arduino-cli#2665
, arduino/pluggable-discovery-protocol-handler#50
Previously, Arduino IDE would sometimes hang on startup if the user had previously installed @earlephilhower's excellent "Raspberry Pi Pico/RP2040" boards platform. Compatibility with that platform has now been restored.
Kill tool process when upload is canceled
arduino/arduino-ide#2571
, arduino/arduino-ide#2517
, arduino/arduino-cli#2726
A "CANCEL" button was added to the progress notification Arduino IDE shows during sketch compilation and upload. The user can click this button if for some reason they wish to cancel the operation (e.g., it is clear from the output that the upload is going to fail eventually).
Previously, the button affected the Arduino IDE GUI, but didn't actually cancel the underlying process. This could result in spurious failures of subsequent operations if the collided with the still running process from the "canceled" operation.
The upload tool process is now killed when the button is clicked.
Display a more helpful message when cryptographic signature validation fails due to incorrect system time
arduino/arduino-ide#2571
, arduino/arduino-cli#2750
Index files used by Arduino IDE are cryptographically signed. Arduino IDE validates the signature of these files. Signatures are time stamped, so if the system time on a users's computer is set to a time in the past, the validation will fail due the signature being considered invalid at any time prior to the timestamp. This causes Arduino IDE to hang on startup, with an "Error verifying signature: openpgp: signature expired
" error message in the logs.
The error message displayed under these conditions has been updated to include the hint "is your system clock set correctly?
".
Don't fail platform installation on mismatch with size fields of package index
arduino/arduino-ide#2571
, arduino/arduino-cli#2739
, arduino/arduino-cli#2332
The Arduino IDE Boards Manager is populated by data from index files. In addition to the primary index file maintained by Arduino, the user can specify additional 3rd party Arduino boards platforms to be included by adding URLs to the "Additional Boards Manager URLs" preference. The package index data includes the checksum and file size for each of the files that will be downloaded by Arduino IDE.
The purpose of the checksum is to ensure the downloaded file has not been corrupted in any way. The purpose of the file size data is to allow Arduino IDE to display a progress indicator while downloading the file. Arduino IDE 1.x only validated the checksum after download, as this is fully sufficient. If the maintainer of a package index made an error in the file size value, the only impact on the user would be an inaccurate progress indicator, so package index maintainers who used Arduino IDE 1.x would not have any sign of their error.
Previously, Arduino IDE 2.x validated the file size against the package index. This resulted in unnecessary boards platform installation failures. It is now changed to only validate against the checksum.
Improve resiliency to errors in package indexes
arduino/arduino-ide#2571
, arduino/arduino-cli#2713
The Arduino IDE Boards Manager is populated by data from index files. In addition to the primary index file maintained by Arduino, the user can specify additional 3rd party Arduino boards platforms to be included by adding URLs to the "Additional Boards Manager URLs" preference. The maintainers of the package index files occasionally introduce errors in the data format, which might impact the functionality of Arduino IDE.
Arduino IDE is now able to more gracefully handle such errors.
Display donation links on Arduino IDE update
Arduino IDE is a cornerstone of the Arduino initiative. The IDE, as well as all its helper tools and components, are free open source software. This software benefits the entire Arduino community, even those who do not use the boards sold by Arduino. The ongoing work to develop and maintain this software can be supported by donating to Arduino.
The IDE now displays a link to the donation page during updates via the auto-updater, and on the first start after an update.
Fix memory leak when scanning sketchbooks with large folders
arduino/arduino-ide#2555
, arduino/arduino-ide#2537
Previously, the IDE could become unresponsive if the sketchbook contained a folder with many/large files.
Support compilation of very large sketch files
arduino/arduino-ide#2571
, arduino/arduino-cli#2729
, arduino/arduino-cli#2718
Previously, compilation would fail spuriously if any sketch code file was larger than 4 MB. The maximum sketch file size has now been increased to 16 MB.
(Thanks @jacek_kander)
Store all temporary files in path indicated by build_cache.path
arduino/arduino-ide#2571
, arduino/arduino-cli#2673
, arduino/arduino-cli#2668
When a sketch is compiled, Arduino IDE stores the generated files in a temporary folder. It is possible to configure the path under which the files are stored via Arduino CLI's build_cache.path
configuration key. This capability might be required for some rare advanced use cases.
Previously, the configuration only controlled where the generated Arduino core library files were cached, while sketch and library files were still stored in the default location. All generated files are now stored under the path specified by the build_cache.path
configuration key when the user has added that key to the configuration file.
Align viewsWelcome behavior to VS Code
This change allows Arduino IDE extension developers to accomplish certain UI designs.
(Thanks @dankeboy36 and @pjrc)
Expand and improve translations
arduino/arduino-ide#2523
, arduino/arduino-ide#2571
, arduino/arduino-cli#2692
, arduino/arduino-cli#2757
The community work to make Arduino IDE accessible to everyone in the world through localization of the text of the IDE's UI continues, reaching high coverage levels for 18 languages/locales.
If you would like to contribute to the Arduino IDE translations, please see the information here:
Update Arduino CLI dependency to 1.1.1
Much of the non-GUI functionality of Arduino IDE comes from the Arduino CLI tool.
In order to benefit from the ongoing development work in the Arduino CLI project, Arduino IDE has been updated to using Arduino CLI version 1.1.1.
Full changelog here:
https://github.com/arduino/arduino-ide/releases/tag/2.3.4
If you have any questions or feedback please post here in the dedicated forum category for Arduino IDE 2.x:
https://forum.arduino.cc/c/software/ide-2-x/93
If you want to see the list of known issues, work in progress, submit a formal report, or contribute to development, the Arduino IDE 2.x source code is hosted in this public repository: