Arduino IDE 2.x is the fastest way to get an LED blinking. It has known friction (boards, drivers, port), so here is the guide with the usual stumbles already solved.
1. Install the IDE
Download it from arduino.cc (2.x). It includes the editor, library manager, serial monitor and board manager.
2. Add ESP32 support
In File → Preferences → Additional boards manager URLs, paste:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Then go to Boards Manager, search esp32 and install esp32 by Espressif Systems. It takes a while: hundreds of MB.
3. Pick the right board
In Tools → Board, choose yours:
- ESP32 Dev Module → the classic.
- ESP32S3 Dev Module, ESP32C3 Dev Module, etc. → the variant.
- ESP32-WROVER only if the module has PSRAM.
Pick the wrong board and it usually compiles and uploads, but does not run or boot-loops. It is the number one mistake.
4. The serial port and the drivers
Here is where 90 % of the problems live. Check which USB-serial chip your board uses:
| Chip | Driver |
|---|---|
| CP2102 (Silicon Labs) | CP210x VCP |
| CH340 / CH341 (WCH) | CH341SER |
| Native USB (S3/C3/C6) | no driver needed |
If the port does not show in Tools → Port, it is the driver. On Linux you may
also need to be in the dialout group.
5. Upload the first program
void setup() {
Serial.begin(115200);
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, !digitalRead(2));
delay(500);
Serial.println("blink");
}
Hit Upload. If it hangs at Connecting..., hold BOOT for a couple of
seconds; that is the classic trick.
6. The serial monitor
Open it with the magnifier icon and set 115200 baud. If you see garbage (“����”), the speed does not match.
Typical errors and their cause
| Symptom | Usual cause |
|---|---|
| “No such file” or missing port | USB-serial driver |
Endless Connecting........ | BOOT button, bad cable or wrong board |
| Uploads but does nothing | Wrong board (variant) |
| Boot loop | Not enough power or GPIO12 held high |
| Garbage in the monitor | Baud rate not 115200 |
Settings that save time
- Enable “Show verbose output during: upload” when something fails: it tells the truth.
- Use a fixed port name if you have several boards.
- Save your favourite boards so you do not pick each time.
- For big projects, move to VS Code + PlatformIO: the Arduino IDE falls short.
Summary
- Install the IDE and add Espressif’s board URL.
- Install “esp32 by Espressif” from the Boards Manager.
- Pick the right board (this breaks more projects than code).
- Solve the USB-serial chip driver.
- Upload, open the monitor at 115200 and enjoy.
Next step: VS Code + PlatformIO when the project grows. Or go back to the series hub.