FOUNDATION 3 · TOOLCHAIN

Setting up the Arduino IDE for ESP32

A picture‑by‑picture install guide. Do it once, then every project just needs Upload.

Brand new? See Foundation 2: Introduction & Setup first.

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:

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:

Arduino IDE File menu with Preferences highlighted
File → Preferences

In Additional Boards Manager URLs, paste this and click OK:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Preferences dialog with the ESP32 URL pasted
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 menu, Board, Boards Manager highlighted
Tools → Board → Boards Manager…

Search esp32, find "esp32 by Espressif Systems", click Install:

Boards Manager searching esp32 with install button
Install the esp32 package (takes a minute or two).
Boards Manager showing esp32 installed
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":

Selecting DOIT ESP32 DEVKIT V1
Select the board.

Tools → Port → choose the port (e.g. COM4 on Windows, /dev/ttyUSB0 on Linux):

Selecting the serial port
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:

Opening the WiFiScan example
File → Examples → WiFi (ESP32) → WiFiScan
The WiFiScan example sketch
The example opens in a new window.

Click Upload (→) and wait for "Done uploading.":

Done uploading message
Upload succeeded.

Open Serial Monitor at 115200, press EN/RESET, and watch nearby Wi‑Fi networks appear:

Serial Monitor showing scanned Wi-Fi networks
If you see networks, your toolchain works. 🎉

6If an upload won't connect

Sometimes uploading stalls with "Failed to connect to ESP32: … Connecting…":

Connecting message during a failed upload
Stuck at "Connecting…": use the BOOT trick.
  1. Press and hold BOOT.
  2. Click Upload.
  3. When "Connecting…" appears, release BOOT.
  4. After "Done uploading", press EN/RESET to run the sketch.
Location of the BOOT button
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:

Reminders for every project

← Foundation 2 · Introduction & Setup Project 1 · Inputs & Outputs →