ESP32-S3 в Arduino IDE: как настроить плату и загрузить скетч
Для первого запуска ESP32-S3 в Arduino IDE установите пакет Espressif, выберите плату и настройте память и USB-подключение. Ниже – пошаговая инструкция, пример настроек для модуля N8R8 и тестовый скетч, который каждую секунду выводит сообщение в Serial Monitor.

Установка поддержки ESP32 в Arduino IDE
Инструкция рассчитана на Arduino IDE 2.x и официальный пакет esp32 by Espressif Systems.
Откройте настройки Arduino IDE: в Windows и Linux – File → Preferences, в macOS – настройки приложения Arduino IDE. Найдите поле Additional Boards Manager URLs и добавьте адрес:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Если в поле уже есть адреса других пакетов, сохраните их и добавьте новый через окно редактирования списка.
Далее:
- Откройте Tools → Board → Boards Manager или менеджер плат на левой панели.
- Введите в поиске esp32.
- Найдите пакет esp32 by Espressif Systems.
- Установите стабильную версию и дождитесь завершения установки.
После установки откройте Tools → Board → esp32. В списке должен появиться профиль ESP32S3 Dev Module.
Определите USB-разъём платы
ESP32-S3 можно подключать к компьютеру через отдельный USB-UART преобразователь или непосредственно через встроенный USB микроконтроллера. От способа подключения зависит настройка вывода сообщений.
| Способ подключения | Как определить | Куда поступают сообщения при настройках из инструкции |
|---|---|---|
| USB-UART | Разъём подключён к CP210x, CH340 или другому преобразователю; часто обозначен UART | В последовательный порт USB-UART преобразователя |
| Встроенный USB ESP32-S3 | Разъём подключён непосредственно к микроконтроллеру; часто обозначен USB или OTG | В USB Serial/JTAG порт ESP32-S3 |
Обозначения разъёмов у разных производителей отличаются. Если на плате два разъёма, проверьте их назначение в документации. По форме USB Type-C определить способ подключения нельзя.
Для первого запуска подключите один выбранный разъём кабелем с передачей данных. Кабель только для зарядки может питать плату, но последовательный порт через него не появится.
Выберите плату
Откройте Tools → Board → esp32 → ESP32S3 Dev Module.
Этот профиль подходит для базовой проверки многих плат на ESP32-S3. Если производитель вашей платы рекомендует другой профиль, используйте его настройки.
ESP32 Dev Module и ESP32S3 Dev Module – разные профили. Для ESP32-S3 выбирайте вариант с S3 в названии.
Для платы с дисплеем или камерой универсальный профиль позволяет проверить запуск микроконтроллера, но для работы встроенной периферии дополнительно понадобятся её распиновка и библиотеки.
Настройте Flash и PSRAM
Посмотрите полную маркировку модуля на металлическом экране или характеристики платы у производителя.
Например, ESP32-S3-WROOM-1-N8R8 имеет:
- 8 МБ Flash;
- 8 МБ PSRAM с интерфейсом Octal SPI.
Для этого модуля в меню Tools установите:
| Параметр | Значение для ESP32-S3-WROOM-1-N8R8 |
|---|---|
| Board | ESP32S3 Dev Module |
| Flash Size | 8MB (64Mb) |
| Flash Mode | QIO 80MHz |
| PSRAM | OPI PSRAM |
| Partition Scheme | 8M with spiffs (3MB APP/1.5MB SPIFFS) |
| Upload Speed | 115200 для первой проверки через USB-UART |
Upload Speed относится к скорости прошивки через UART. Для встроенного USB этот параметр не задаёт скорость USB-соединения.
У модулей ESP32-S3-WROOM-1 встречаются и другие варианты памяти:
| Маркировка | Flash Size | PSRAM |
|---|---|---|
| N4 | 4MB (32Mb) | Disabled |
| N8 | 8MB (64Mb) | Disabled |
| N16 | 16MB (128Mb) | Disabled |
| N8R2 | 8MB (64Mb) | QSPI PSRAM |
| N8R8 | 8MB (64Mb) | OPI PSRAM |
| N16R8 | 16MB (128Mb) | OPI PSRAM |
Для другой ёмкости Flash выберите схему разделов, которая помещается в установленную память. Для небольшого тестового скетча схема Default 4MB with spiffs подходит и для модуля с 8 или 16 МБ Flash, но использует только часть доступной памяти.
Если тип PSRAM пока неизвестен, для приведённого ниже теста можно временно выбрать Disabled: скетч не использует внешнюю оперативную память. Объём и режим Flash всё равно должны соответствовать плате.
Подробнее о маркировке – в материале ESP32-S3: разновидности, память, интерфейсы и применение.
Настройте USB и Serial Monitor
Для первой проверки используйте один из двух вариантов:
| Параметр в Tools | Через USB-UART | Через встроенный USB ESP32-S3 |
|---|---|---|
| USB Mode | Hardware CDC and JTAG | Hardware CDC and JTAG |
| USB CDC On Boot | Disabled | Enabled |
| Upload Mode | UART0 / Hardware CDC | UART0 / Hardware CDC |
| USB DFU On Boot | Disabled | Disabled |
| USB Firmware MSC On Boot | Disabled | Disabled |
В выбранной конфигурации USB CDC On Boot → Disabled направляет обычный Serial в UART0. Это удобно при подключении через USB-UART преобразователь.
При USB CDC On Boot → Enabled и USB Mode → Hardware CDC and JTAG обычный Serial использует встроенный USB Serial/JTAG ESP32-S3.
Поэтому возможна ситуация, когда прошивка загрузилась через USB-UART, а сообщений в его порту нет: при включённом USB CDC скетч выводит их через другой интерфейс.
Названия и доступность пунктов могут отличаться в зависимости от версии пакета и выбранного профиля. Для этой проверки режим USB-OTG (TinyUSB) не требуется.
Выберите порт
Подключите плату и откройте Tools → Port.
Чтобы определить её порт:
- Посмотрите список портов без подключённой платы.
- Подключите плату.
- Снова откройте список и выберите появившийся порт.
В Windows это обычно COM с номером, в macOS – имя вида /dev/cu…, в Linux – /dev/ttyACM… или /dev/ttyUSB….
Если новый порт не появился, попробуйте другой кабель с передачей данных и прямое подключение к компьютеру. При использовании USB-UART проверьте, определяется ли преобразователь в системе и нужен ли ему драйвер.
Для встроенного USB также попробуйте ручной вход в загрузчик, описанный ниже.
Создайте проверочный скетч
Откройте File → New Sketch, удалите исходное содержимое и вставьте:
#include <Arduino.h>
unsigned long lastMessageMs = 0;
unsigned long counter = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
const unsigned long now = millis();
if (now - lastMessageMs >= 1000UL) {
lastMessageMs = now;
Serial.print("ESP32-S3 OK, counter = ");
Serial.println(counter++);
}
}
Скетч каждую секунду отправляет сообщение в Serial Monitor. Он не требует Wi-Fi, внешних компонентов или дополнительных библиотек.
Интервал задаётся через millis(), без задержек delay(). Между сообщениями цикл loop() продолжает выполняться, поэтому в него можно добавить опрос кнопок, датчиков и другие задачи. Вычисление разницы времени корректно работает и при переполнении счётчика millis().
Повторяющийся вывод позволяет проверить работу платы, даже если Serial Monitor открыли спустя несколько секунд после её запуска.
Загрузите скетч
Сохраните скетч и нажмите Verify – кнопку с галочкой. Дождитесь успешной компиляции.
Затем нажмите Upload – кнопку со стрелкой вправо. Arduino IDE скомпилирует скетч и начнёт прошивку выбранного устройства.
Успешная компиляция ещё не означает, что программа записана в плату. Дождитесь завершения этапа загрузки без ошибок.
Если прошивка останавливается на Connecting... или появляется сообщение Failed to connect, переведите плату в загрузчик вручную:
- Нажмите и удерживайте BOOT.
- Не отпуская BOOT, коротко нажмите RESET или EN.
- Отпустите RESET, затем BOOT.
- Снова проверьте Tools → Port: при встроенном USB порт может измениться.
- Выберите порт платы и повторите Upload.
Если кнопки RESET нет, обычно можно отключить USB, удерживать BOOT и подключить USB снова. После подключения отпустите BOOT.
После первой прошивки через встроенный USB нажмите RESET, чтобы запустить программу. Если плата осталась в загрузчике после ручного входа, также выполните сброс с отпущенной кнопкой BOOT.
Проверьте результат в Serial Monitor
Откройте Tools → Serial Monitor и установите скорость 115200.
При подключении через встроенный USB после сброса повторно проверьте выбранный порт.
Пример ожидаемого вывода:
ESP32-S3 OK, counter = 0
ESP32-S3 OK, counter = 1
ESP32-S3 OK, counter = 2
ESP32-S3 OK, counter = 3
Первое видимое число может быть больше нуля, если монитор открыт после запуска программы.
Если счётчик увеличивается примерно раз в секунду, скетч успешно загружен, выполняется и передаёт сообщения через выбранный интерфейс.
Эта проверка подтверждает базовый запуск платы. Работу Wi-Fi, PSRAM и встроенной периферии нужно проверять отдельными примерами.
Если загрузка или проверка не проходит
| Симптом | Что проверить и сделать |
|---|---|
| ESP32S3 Dev Module отсутствует в списке | Проверьте установку пакета esp32 by Espressif Systems и дождитесь её завершения |
| Порт не появляется | Замените кабель, проверьте назначение разъёма; для встроенного USB попробуйте BOOT и RESET |
| Failed to connect или зависание на Connecting | Войдите в загрузчик через BOOT и RESET, повторно выберите порт и запустите Upload |
| Wrong chip argument или указание другого семейства ESP32 | Выберите ESP32S3 Dev Module вместо профиля обычного ESP32 |
| Передача обрывается во время прошивки | Проверьте кабель и питание; при USB-UART снизьте Upload Speed до 115200 |
| Загрузка завершилась, но сообщений нет | Нажмите RESET с отпущенным BOOT, проверьте порт и соответствие USB CDC On Boot способу подключения |
| В мониторе нечитаемые символы через USB-UART | Установите 115200, как в Serial.begin() |
| Ошибка инициализации PSRAM | Проверьте её наличие и тип; для тестового скетча временно установите PSRAM → Disabled |
| Счётчик постоянно начинается заново | Плата перезапускается: проверьте питание, настройки Flash и сообщения об ошибках перед перезапуском |
Если компиляция завершается ошибкой до начала Upload, кнопка BOOT не поможет. Сначала разберите сообщение компилятора: возможны неверный профиль платы, отсутствующая библиотека или ошибка в коде.
Если приведённый тест работает, переходите к основному проекту и подключайте библиотеки и периферию поэтапно.
Обновлено:





Комментарии (2)
нет решения чепуху пустую написали вы
Дополнили инструкцию: добавили конкретные настройки USB и памяти, тестовый скетч и проверку результата. Если проблема осталась, укажите модель платы и текст ошибки – разберём ваш случай.