ПинЛог
Справочник симптомов ESP32
На DevKit с AMS1117 светодиод мигает, а после WiFi.begin плата падает. В мониторе одна строка: Brownout detector was triggered. USB ноутбука по спецификации около 500 мА, передача на 2.4 ГГц коротко жрёт 300-500 мА, стабилизатор не успевает. Ставят блок 5 В на 2 А в VIN и электролит 1000 мкФ между 3.3 В и GND у самой платы - ребутов нет. Отключать brownout в sdkconfig, «чтобы жило», не стоит: при настоящей просадке портится флеш.
Другой случай: esptool.py пишет Failed to connect to ESP32 и Timed out waiting for packet header. В диспетчере COM3 есть, но его держит Serial Monitor из окна PlatformIO. Закрыли монитор - тишина. Кабель оказался зарядный, без D+ и D-. На коротком data-кабеле вручную: зажать BOOT на GPIO0, щёлкнуть EN, отпустить EN, отпустить BOOT. upload_speed 115200, не 921600. Потом esptool.py --baud 115200 chip_id - чип вернул MAC, write_flash пошёл.
Кнопка дребезжит без пальца. GPIO15 висел в воздухе: ни INPUT_PULLUP, ни резистор к 3.3 В. При включении классический ESP32 читает GPIO0, GPIO2, GPIO12 и GPIO15 и решает, идти в прошивку или в обычный код. У нас на GPIO12 сидел светодиод к питанию, плата так и оставалась в download. В Serial одно и то же rst:0x, секунда, снова rst. Светодиод отпаяли - пошла пользовательская прошивка. Датчик сидел на ADC2: пока Wi-Fi молчал, цифры были ровные, как только radio up - плюс-минус десять процентов. Перекинули на GPIO34 из ADC1, врать перестало.
C3 засунули в металлический корпус датчика. RSSI сидел около -85 дБм, каждые две минуты disconnect. Выключили modem sleep через WiFi.setSleep(false), роутер с канала 11 ушёл на 1, под антенну в коробке вырезали щель. На S3 отдельная путаница: native USB, CH340 на плате нет, а в Arduino стоит профиль «ESP32», как у классики. Порт появляется и пропадает, пока не выберут ESP32S3. Модули не продаём, это записи со стола.