ARDUINO community has recently released the Arduino IDE 2.3, an integrated development environment that provides a platform for writing code, compiling, loading firmware, and debugging interactions with boards. The firmware development is done using a modified version of C++ with the wiring framework. The code for the development interface is written in Typescript, and the backend is implemented in GO. The initial texts are distributed under the AGPLV3 license. Arduino has prepared pre-packaged versions of the IDE for Linux, Windows, and MacOS operating systems.
The ARDUINO IDE 2.X branch is built on the Eclipse Theia code editor and utilizes the Electron platform for its user interface. In contrast, the previous ARDUINO IDE 1.X branch was a standalone product written in Java. The compilation, debugging, and firmware loading logic is now carried out in a separate background process called Arduino-cli. The IDE boasts various capabilities, including support for the Language Server Protocol (LSP), adaptive auto-filling of functions and variables, code navigation tools, GIT integration, storage in the Arduino Cloud, and a Serial Monitor for port monitoring.
In the latest version, the built-in debugger has been categorized as a stable feature, allowing debugging in Live mode and the use of breakpoints. The debugger is based on a standard framework, which enables easy addition of debugging support for any boards and utilizes the standard Arduino IDE interface during debugging. Currently, debugging support is available for all Arduino boards based on the MBED nucleus, such as GIGA R1 WiFi, Portenta H7, Opta, Nano Ble, and Nano RP2040 Connect. Support for debugging on boards based on the Renesas nucleus, like UNO R4 and Portenta C33, is planned to be added in the near future. This will eventually extend debugging capabilities to Arduino-ESP32 as well.