The new major release of the Arduino IDE is faster and even more powerful. In addition to a more modern editor and a more responsive interface it features autocompletion, code navigation, and even a live debugger. The Arduino IDE 2 features a new sidebar, making the most commonly used tools more accessible.

Tutorials and guides for the Arduino IDE 2.x can be found here.

Features

The Arduino IDE 2 is a versatile editor with many features. You can install libraries directly, sync your sketches with Arduino Cloud, debug your sketches and much more. In this section, some of the core features are listed, along with a link to a more detailed article.

Sketchbook

  • Your sketchbook is where your code files are stored. Arduino sketches are saved as .ino files, and must be stored in a folder of the exact name. For example, a sketch named my_sketch.ino must be stored in a folder named my_sketch. Typically, your sketches are saved in a folder named Arduino in your Documents folder. To access your sketchbook, click on the folder icon located in the sidebar.

Boards Manager

  • With the Boards Manager, you can browse and install packages, or "cores" for your boards. A board package is always required when compiling and uploading code for your board. There are several Arduino board packages available, such as avr, samd, megaavr and more.

Library Manager

  • With the library manager you can browse and install thousands of libraries. Libraries are extensions of the Arduino API, and makes it easier to for example control a servo motor, read specific sensors, or use a Wi-Fi module.

Serial Monitor

  • The Serial Monitor is a tool that allows you to view data streaming from your board, via for example the Serial.print() command. Historically, this tool has been located in a separate window, but is now integrated with the editor. This makes it easy to have multiple instances running at the same time on your computer.

Serial Plotter

  • The Serial Plotter tool is great for visualizing data using graphs, and to monitor for example peaks in voltage. You can monitor several variables simultaneously, with options to enable only certain types.

Debugging

  • The debugger tool is used to test and debug programs, hence the name. It can be used to navigate through a program's execution in a controlled manner.

Autocompletion

  • Autocompletion is a must-have for code editors, and the 2.0 version comes well equipped. When writing code, this is useful to understand more about the elements of the Arduino API. Note that you always need to select your board for autocompletion to work.

Remote Sketchbook

  • The Remote Sketchbook feature lets you sync sketches from your Arduino Cloud sketchbook with your local computer. To enable this feature, you will need to login to your Arduino Cloud account.

Firmware & Certificate Uploader

  • You can upgrade and downgrade the firmware version for your Wi-Fi boards (with a NINA module), and upload SSL Root Certificates directly in the IDE.

What's New

Added

  • Identify boards from manually installed platforms in "Select Other Board and Port" dialog tooltip (#2270)
  • Support .cc and .cxx extensions for sketch files (#2265)
  • Intellisense and validation for custom_debug.json (#2281)
  • Support direct modification of debugger's launch.json configuration file (#2281)
  • Show progress information in the status bar when Arduino CLI is running debug --info --programmer command (#2281)
  • Support selecting debug probe via "Tools > Programmer" menu (#2281)
  • Disable debug widget if unsupported by board (#14)
  • Advanced preference to limit thread count of Arduino Language Server (#2350)

Changed

  • Use new debug -I -P CLI output (#2281)
  • New debug_custom.json schema (#2281)
  • Update built-in example sketches to 1.10.1 (#2322)
  • Update translation files (#2216)
  • Update Node.js dependency to 18 (#2199)
  • Update electron dependency to 27.0.3 (#2199, #2252, 0f83a48)
  • Update Theia dependency to 1.41.0 (#2211)
  • Update Arduino Language Server dependency to 0.7.6 (a0bd5d0, #2350)
  • Update Arduino CLI dependency to 0.35.2 (73b6dc4, b8dd39c, #2350)
  • Update vscode-arduino-tools dependency to 0.1.1 (73b6dc4)

Fixed

  • Forward backend logging to electron (#2236)
  • Arduino state data not available to extensions after IDE startup (#2233)
  • "Configure and Upload" dialog not presented for uploads dependent on "user provided fields" after IDE startup (#2230)
  • Custom board option selection made in one window affects other windows as well (#2240)
  • "Start Debugging" button incorrectly disabled if board was pre-selected on IDE startup (#2237)
  • Board-dependent menus not populated if board was pre-selected on IDE startup (#2239)
  • Saving sketch fails silently when files are read-only (#1501)
  • IDE window doesn't open when started via sketch file association (#2209)
  • Subfolder structure of sketch lost after "Save As" operation (#2077)
  • Naming collision during "Save As" causes overwrite of secondary sketch file (#827)
  • Previous selection remains in "Firmware Updater" and "Certificate Uploader" menu after no longer available (#2222)
  • Bundle native Arduino Firmware Uploader with Apple Silicon build (#2338)

Security

  • Update electron to resolve CVE-2023-4863 and CVE-2023-39956 (#2252)
  • Replace usage of shelljs package with fs and console (#2252)
  • Replace usage of uuid package with @phosphor/coreutils (#2252)
  • Update @babel/traverse to resolve CVE-2023-45133 (#2273)
  • Update auth0-js to resolve CVE-2023-46233 (#2273)