Choosing an IDE looks like a small decision and it is not: it is where you will spend hundreds of hours. The good news is that the choice depends almost entirely on the framework you picked.
The table
| IDE | Ideal framework | Pros | Cons |
|---|---|---|---|
| Arduino IDE 2.x | Arduino | Simple, all included | Limited, no real debugging |
| VS Code + PlatformIO | Arduino, ESP-IDF, Rust, MicroPython | Powerful, multi-board, debugging | More setup |
| VS Code + ESP-IDF | ESP-IDF | Official, JTAG, menuconfig | ESP-IDF only |
| Thonny | MicroPython | Great to start | MicroPython only |
| CLion / RustRover | Rust | Top refactor and debugging | Commercial / heavy |
Arduino IDE 2.x
It is the “open and it works” option. Add the board URL, pick the board, hit upload. Done.
- Pros: zero friction, built-in library manager.
- Cons: weak editor, no serious IntelliSense, no JTAG debugging, and it struggles with large projects.
- Ideal for: learning, small sketches, workshops.
VS Code + PlatformIO
My general recommendation. PlatformIO turns VS Code into a real IDE:
- One environment for Arduino, ESP-IDF, Rust or MicroPython, with the same flow (build / upload / monitor).
platformio.ini: the project config is text, versionable.- Cross-platform and multi-board: switch from ESP32 to ESP8266, STM32 or RP2040.
- Debugging with
debug_tooland the right hardware. - Per-project dependency management (not global).
Ideal for: almost everything, especially if you will have several projects.
VS Code + the ESP-IDF extension
If you pick ESP-IDF, this is the official option: it integrates idf.py,
menuconfig, the serial monitor and JTAG debugging inside VS Code.
- Pros: official, real JTAG, Kconfig one click away.
- Cons: it is meant only for ESP-IDF; the flow differs a bit from PlatformIO.
- Ideal for: serious ESP-IDF projects.
Thonny (MicroPython)
For MicroPython, Thonny is the friendliest thing around: one button to flash the firmware, a built-in REPL and a file browser for the board.
Ideal for: teaching, learning, quick prototypes.
CLion / RustRover / VS Code (Rust)
If you program in Rust, the flow is cargo + espflash, so almost any editor
works. VS Code with rust-analyzer is enough; CLion adds better refactoring and
debugging.
How to choose (without getting it wrong)
| If you use… | Use… |
|---|---|
| Arduino core | VS Code + PlatformIO (or Arduino IDE to start) |
| ESP-IDF | VS Code + ESP-IDF |
| MicroPython | Thonny |
| Rust | VS Code + rust-analyzer |
| Several frameworks | VS Code + PlatformIO |
You do not have to decide forever: VS Code + PlatformIO covers almost every framework, so you can start there and add the ESP-IDF extension when you need it.
Extras that make a difference
- Serial monitor with colors and timestamps: that is 30 % of your working time.
- JTAG debugging (ESP32-S3/C3): real breakpoints, not
printf. - Automatic formatting (
clang-format) and linting. - Integrated Git: firmware deserves version control too.
Summary
- Arduino IDE 2.x: start fast. PlatformIO: the most complete and versatile. VS Code + ESP-IDF: the official one for ESP-IDF. Thonny: MicroPython.
- Choose based on your framework, not habit.
- PlatformIO is the safest bet if you will touch several frameworks.
- JTAG debugging is the quality jump once the project grows.
Next step: Arduino IDE 2.x step by step or VS Code + PlatformIO. Or go back to the series hub.