The short version: install Arduino IDE → add the ESP32 boards URL → install the esp32 package → pick the DOIT ESP32 DEVKIT V1 board and its port → upload a test sketch.
🎯 Objective
By the end of this guide, you will:
Install the Arduino IDE and add ESP32 board support through the Boards Manager URL.
Understand what that URL actually does, so you could add support for any other board the same way.
Select the right board and port, the two settings that cause most first-day problems.
Upload a sketch you did not write and confirm the whole toolchain works, before any wiring can be blamed.
Recover from an upload that will not connect, using the BOOT button.
Do this once. Every project after it just needs Upload.
1Install the Arduino IDE
Download and install the Arduino IDE from arduino.cc/en/software. Either the classic 1.8.x or the newer 2.x works.
2Add the ESP32 "Boards Manager URL"
Open File → Preferences:
File → Preferences
In Additional Boards Manager URLs, paste this and click OK:
Paste the URL into the Additional Boards Manager URLs field.
Already have an ESP8266 URL there? Separate multiple URLs with a comma.
3Install the ESP32 package
Open Tools → Board → Boards Manager…:
Tools → Board → Boards Manager…
Search esp32, find "esp32 by Espressif Systems", click Install:
Install the esp32 package (takes a minute or two).When it shows INSTALLED, you're done.
Take version 3.0.0 or newer (the Boards Manager offers the latest by default). Core 3.x changed the PWM functions, and Projects 3 and 6 use the newer form. If you already have an older 2.x installed, use the version dropdown to update it.
4Select the board and port
Plug the ESP32 in with a data USB cable, then:
Tools → Board → choose "DOIT ESP32 DEVKIT V1":
Select the board.
Tools → Port → choose the port (e.g. COM4 on Windows, /dev/ttyUSB0 on Linux):
Select the port.
No port showing? Install the CP210x USB‑to‑UART driver (this board's chip is a CP2102): the repo folder Install CP2101 drivers Windows has it. Some boards use a CH340 chip instead.
5Test with the WiFiScan example
Open File → Examples → WiFi (ESP32) → WiFiScan:
File → Examples → WiFi (ESP32) → WiFiScanThe example opens in a new window.
Click Upload (→) and wait for "Done uploading.":
Upload succeeded.
Open Serial Monitor at 115200, press EN/RESET, and watch nearby Wi‑Fi networks appear:
If you see networks, your toolchain works. 🎉
6If an upload won't connect
Sometimes uploading stalls with "Failed to connect to ESP32: … Connecting…":
Stuck at "Connecting…": use the BOOT trick.
Press and hold BOOT.
Click Upload.
When "Connecting…" appears, release BOOT.
After "Done uploading", press EN/RESET to run the sketch.
The BOOT button.
Wrapping Up: What You've Learned
Setting up a toolchain is the least glamorous part of embedded work and the one that stops most people. Now that it is done, here is what actually happened:
The Boards Manager URL is a package index. Adding Espressif's URL is what taught the IDE to compile for the ESP32 at all. Any other board family is added the same way.
Board and port are two different settings. The board decides how your code is compiled; the port decides where it is sent. Getting either wrong produces an error that does not obviously name the cause.
A driver may sit underneath the port. If no port appears, the USB-to-UART chip is not recognised, and no amount of correct code will help. A charge-only cable looks exactly the same.
Uploading a known-good example first is a diagnostic, not a formality. WiFiScan proves the IDE, the driver, the cable, and the board all work, so anything that breaks later is your circuit or your code.
The BOOT button is your manual override. Auto-reset into the bootloader usually works, and when it does not, holding BOOT at Connecting... does the same job by hand.
115200 baud, every time. Set it once in the Serial Monitor and stop wondering about garbage characters.
Reminders for every project
Baud rate is always 115200: set the Serial Monitor to match.
Some projects need libraries (DHT, Adafruit GFX/SSD1306, ESPAsyncWebServer, AsyncTCP). Each such project lists exactly what to install.
Wi‑Fi projects need your network name & password typed into the sketch before uploading.