Прошивка ESP32 через NodeMCU

Чуть больше полутора лет назад я купил ESP8266 на отладочной плате NodeMCU V3 с SoC ESP-12F. Штука мне показалась интересной, захотелось посмотреть аналогичные платы. Выбирал плату с ESP 32. Заказал NodeMCU с ESP32-WROOM32 за копейки.

Когда она ко мне приехала, я сразу понял: что-то не так. USB порт не Micro-USB, а Type-C. Распиновка по именам пинов не сходилась. Подключил к ПК и ничего не увидел. Какая-то часть платы, работающая с USB, оказалось мертвой.

Может быть дело в дорожках, чипе CH340 или самом порте. Незначительный ток по цепи бегает, но плата не заводится. Светодиод PWR загорелся при подключении внешних 3V и GND. Плата стоила копейки, поэтому просто кинул в коробку и забыл.

Вчера потратил день на изучение вопроса прошивки без программатора.

Для начала решил понять, какая именно плата у меня на руках. Выяснил, что у меня никакой не NodeMCU ESP32, а клон DOIT ESP32 DevKit.

С подключением оказалось всё достаточно прозаично. По-сути, мне не хватало как раз всей обвязки до SoC ESP32-WROOM32. 1-в-1 обвязка есть на NodeMCU с ESP-12F. То есть, нужно их просто соединить. 3V3 и GND точно нужны для питания.

Схема подключения DevKit через NodeMCU

Пара TX и RX – ключевая частью при прошивке, их тоже нужно соединить. Причём никаких кроссов делать не нужно, TX отправляется к TX, а RX к RX.

В такой конфигурации ESP-12F не будет допускать ESP32-WROOM-32 к прошивке. ESP-12F нужно отключить. Предыдущий опыт подсказывал, что нужно соединить EN пин с GND, после этого ESP-12F не будет мешать ESP32-WROOM-32.

И, вроде всё уже должно работать, но нет. Прошивка никак не хотела загружаться. Получал одну и ту же ошибку:

esptool.py v4.8.1
Serial port /dev/ttyUSB0
Connecting......................................

A fatal error occurred: Failed to connect to ESP32: No serial data received.

Никакие нажатия BOOT или EN на ESP 32 DevKit не помогали. Долго вертя в руках плату, посмотрел спеки, почитал несколько сайтов и только на Амперке нашёл корректную последовательность для перевода DevKit в Upload режим, а именно:

Если выполнить эту последовательность и загружать скетч из Arduino IDE, то программа успешно запустится. Блинк у меня заработал и душа спокойна, в запасе есть DevKit для ESP 32, можно поиграть и с Bluetooth, а не только WiFi.

Если Вы хотите обсудить содержание заметки, задать вопросы или предложить изменения, то со мной можно связаться в Telegram