Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Short answer: Install Arduino IDE 2, add Espressif’s official stable board-package URL, install esp32 by Espressif Systems through Boards Manager, select the correct ESP32 board and USB port, then upload a small Serial Monitor test sketch.

What you need

  • An ESP32 development board
  • A USB cable that supports data, not only charging
  • A Windows, macOS or Linux computer
  • Internet access to download Arduino IDE and the ESP32 toolchain
  • The board’s exact model or chip family, if available

You may also need a USB-to-serial driver. Whether one is required depends on the board’s USB interface and your operating system. Do not assume every board labelled “ESP32” uses the same hardware: classic ESP32-WROOM boards, ESP32-C3, ESP32-S2 and ESP32-S3 boards can require different board profiles and settings.

1. Install Arduino IDE 2

Download Arduino IDE from the official Arduino software page. Choose the installer for Windows, macOS or Linux, install it, and launch it once.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Arduino IDE 2 is the recommended choice for a new installation. Arduino still lists the legacy Arduino IDE 1.8.19, which can be useful for an old project or a classroom workflow, but the steps below use IDE 2 terminology. The version shown on Arduino’s download page can change, so use the current release listed there rather than relying on a fixed version number.

#1 Best Overall
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (3PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • ESP32 is a safe, reliable, and scalable to a variety of applications

You do not need a separate “ESP32 Arduino IDE.” ESP32 support is installed as a board platform inside Arduino IDE.

2. Add official ESP32 support

The Arduino IDE does not normally include ESP32 support by default. Add Espressif’s official stable package index:

https://espressif.github.io/arduino-esp32/package_esp32_index.json
  1. On Windows or Linux, open File > Preferences.
  2. On macOS, open Arduino IDE’s settings or preferences from the application menu.
  3. Find Additional Boards Manager URLs.
  4. Add the URL above as a separate entry. Preserve any URLs already there.
  5. Click OK.

These labels can move slightly between IDE releases. If your build offers separate rows, put the ESP32 URL on its own row; otherwise follow the separator format shown in the dialog.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Install the ESP32 board package

  1. Open the Boards Manager icon in the left sidebar, or choose Tools > Board > Boards Manager.
  2. Search for esp32.
  3. Select esp32 by Espressif Systems.
  4. Choose the current stable version offered by Boards Manager.
  5. Click Install and wait for the compiler, upload tools and dependencies to finish.

Use the Espressif-maintained package, not an unrelated third-party result. Restart Arduino IDE if the board list does not refresh immediately.

Stable versus development releases

The stable package is the right choice for beginners, tutorials and most projects. Espressif also publishes a separate development-channel index:

Rank #2
ELEGOO 3PCS ESP-32 Dev Boards, ESP-WROOM-32, USB-C, WiFi Bluetooth 4.2
  • Dual-Core Performance Up to 240 MHz: Run sensor processing, wireless communication, automation logic and connected-device tasks on a 32-bit dual-core ESP32 platform designed for responsive embedded and IoT projects
  • Built-in Wi-Fi and Bluetooth 4.2: Connect to 2.4 GHz Wi-Fi networks or use Bluetooth Classic and BLE for wireless sensors, smart devices, remote controls, home automation and other connected projects
  • Flexible Power-Saving Modes: ESP32 power-management features support dynamic clock scaling and low-power operating modes, helping developers reduce energy use in compatible sensing, monitoring and connected-device applications, suitable for battery-powered Internet of Things (IoT) devices.
  • USB-C Programming with CP2102: Connect through USB-C for power, sketch uploads and serial monitoring, while GPIO, UART, SPI and I2C interfaces support sensors, displays, motor drivers and other modules (USB-C cable not included)
  • Over-the-Air Update Support: Configure OTA functionality through a compatible ESP-32 software framework to update deployed firmware over Wi-Fi without reconnecting the board by USB for every revision
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

Do not use the development URL simply because it appears newer. It is intended for testing unreleased features or working with newer APIs, and it can reduce compatibility with examples and libraries.

See Espressif’s official installation documentation for the current package-installation guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Identify and select the correct board

Before choosing a profile, inspect the writing on the module or development board and check the manufacturer’s documentation. Note:

  • The chip family: classic ESP32, ESP32-S2, ESP32-S3, ESP32-C3 or another variant
  • The flash size, if specified
  • Whether the board has PSRAM
  • Whether it uses native USB
  • The exact board or DevKit name

Choose the board from Tools > Board > esp32.

  • For a supported Espressif DevKit, choose the corresponding DevKit profile.
  • For some generic classic ESP32-WROOM boards, ESP32 Dev Module is a practical fallback.
  • For an ESP32-C3, select a C3-specific profile.
  • For an ESP32-S2 or ESP32-S3, select the matching S2 or S3 profile and check the native-USB settings.
  • For boards with displays, unusual flash sizes or PSRAM, follow the board maker’s configuration instructions.

ESP32 Dev Module is not a universal profile. A wrong selection can produce an error such as A fatal error occurred: This chip is ESP32 not ESP32-S2. That means the selected board definition does not match the physical chip. Espressif documents the available board and Tools-menu configuration in its Tools-menu guide.

Settings to leave alone initially

For a first upload, leave these at their defaults unless the board documentation says otherwise:

Rank #3
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE
  • Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
  • Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
  • Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
  • Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
  • Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.
  • Upload Speed
  • CPU Frequency
  • Flash Frequency and Flash Mode
  • Partition Scheme
  • Core Debug Level
  • Erase Flash Before Sketch Upload
  • PSRAM settings

Settings that may require deliberate choices include Board, Port, Flash Size, PSRAM, USB CDC On Boot, USB mode or firmware options, upload mode and partition scheme. These depend on the actual hardware.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Connect the board and select its port

  1. Connect the ESP32 with a known data-capable USB cable.
  2. Open Tools > Port.
  3. Select the port that appeared when you connected the board.

Typical names are:

  • Windows: COM followed by a number
  • macOS: a device under /dev/cu.* or /dev/tty.*
  • Linux: commonly /dev/ttyUSB* or /dev/ttyACM*

If several ports are listed, note the list, disconnect the board, reopen the port menu, reconnect it and select the new entry.

A missing port is usually a USB or operating-system problem before it is an Arduino board-package problem. Try a known data cable, another USB port and—if possible—avoid an unpowered hub. Check the operating system’s device manager or hardware list. The required driver depends on the board’s USB interface, such as a CP210x, CH34x or another chip, so obtain drivers from the board vendor or chip manufacturer rather than a generic driver-download site.

6. Upload a first test sketch

Use Serial Monitor rather than an LED blink as the first test. LED wiring varies by board, and some boards have no user LED.

void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("ESP32 setup successful");
}

void loop() {
  delay(1000);
}
  1. Paste the sketch into Arduino IDE.
  2. Click Verify to compile it.
  3. Click Upload.
  4. Wait for compilation and flashing to finish.
  5. Open Serial Monitor.
  6. Set the baud rate to 115200.
  7. Press the board’s EN, RESET or equivalent button if no message appears.

You should see ESP32 setup successful. A successful upload proves that the selected core, board profile, port and basic upload path are working.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (1 PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos;ESP32 is a safe, reliable, and scalable to a variety of applications
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • 1PCS 30Pin ESP32 Development Board 2.4GHz WiFi Dual Cores Microcontroller Integrated with Antenna RF Low Noise Amplifiers Filters

7. If uploading gets stuck

Some boards automatically enter download mode; others need manual help. If Arduino IDE repeatedly shows a connection attempt or reports a timeout:

  1. Close Serial Monitor and every other application using the port.
  2. Confirm the board profile and port.
  3. Start the upload.
  4. When the IDE begins connecting, press and hold BOOT.
  5. Release BOOT when flashing begins.

If that does not work, press EN/RESET and retry. Then try another data cable and USB port, disconnect attached peripherals and, only if the connection remains unreliable, lower the upload speed. Espressif documents the BOOT-button procedure in its installation notes.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common ESP32 setup errors

Symptom Likely cause First fix
ESP32 is absent from Boards Manager Incorrect package URL, network failure or malformed additional URL Re-add the official stable URL, restart the IDE and search for esp32
No port appears Charge-only cable, missing driver, USB hub, native-USB behavior or permissions Try a known data cable and inspect the operating system’s device list
“This chip is ESP32 not ESP32-S2/S3/C3” Wrong board profile Select the profile matching the physical chip family
“Failed to connect” or “Timed out waiting for packet header” Wrong port, wrong board, bootloader not active or another USB problem Confirm the port and hold BOOT while starting the upload
Port is busy Serial Monitor or another serial terminal has it open Close all other serial clients
Compilation breaks after an ESP32 core update Library or sketch uses an older API Read the first compiler error and check library compatibility and migration notes
Upload succeeds but nothing appears Wrong baud rate or the board has not reset Set Serial Monitor to 115200 and press RESET

Boards Manager cannot find ESP32

Open Preferences or Settings and inspect the additional URL carefully. Remove a malformed ESP32 entry, paste the official stable URL again, confirm it, restart the IDE and reopen Boards Manager. A blocked network, proxy or firewall can also prevent the index from loading. Espressif’s troubleshooting documentation covers package-index failures.

The board package download times out

Retry after restarting Arduino IDE and use a stable network. Check firewall, proxy and antivirus restrictions according to your local policy, and confirm that there is enough disk space. If the installation is visibly incomplete, remove and reinstall the board package. Do not switch to the development channel merely because a download failed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compilation fails after an update

First determine whether the problem is the installation or the sketch. Compile a built-in ESP32 example. If it works, the original project or one of its libraries may not support the installed core version. Check the first error rather than the final summary, record the Arduino-ESP32 core version and consult the project’s migration information. Avoid randomly downgrading unless the project explicitly requires an older release. The Arduino-ESP32 repository contains core and migration information.

Best Value
HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA for Arduino IDE
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Ultra-Low power consumption, works perfectly with the Arduino IDE
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Erasing flash is not a first-line fix. It can remove stored data and will not correct a wrong board, cable, port or driver. Use it only when a project or board-specific recovery procedure calls for it.

Alternatives to Arduino IDE 2

  • Arduino IDE 1.8.19: useful for legacy tutorials, projects or institutional workflows, but not the best default for a new setup.
  • PlatformIO: provides project configuration, dependency management, testing and debugging, but has a steeper learning curve. See Espressif’s PlatformIO integration context.
  • ESP-IDF: Espressif’s native framework for advanced networking, power management, production configuration and lower-level control. It is considerably more complex than the Arduino framework.
  • Arduino CLI: a command-line option for repeatable builds, board management and automated uploads.

None of these alternatives is required to upload a basic Arduino sketch to an ESP32.

Frequently Asked Questions

Do I need a special ESP32 version of Arduino IDE?

No. Install Arduino IDE from Arduino’s official software page, then add Espressif’s Arduino-ESP32 board package through Boards Manager.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which board should I select for a generic ESP32?

For some classic ESP32-WROOM development boards, ESP32 Dev Module is a suitable fallback. It is not correct for every ESP32-family board, so match the profile to the actual chip family first.

Why does my ESP32 not appear under Ports?

Start with the USB layer: try a known data cable, another USB port, the required board-specific driver and the operating system’s device manager. Native-USB boards may appear differently from boards using CP210x or CH34x bridges.

Why do I have to hold the BOOT button?

Some boards do not automatically enter the ROM bootloader when an upload starts. Hold BOOT during the connection attempt and release it when flashing begins.

Should I erase the ESP32 flash to fix upload problems?

Not usually. Erasing can delete stored data and will not fix a wrong board profile, port, cable or driver. Treat it as a later, project-specific recovery step.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.