Прошиваем MicroPython на ESP32 через esptool
Превращаем «голую» плату в устройство, понимающее Python.
Прошивка (firmware) — это файл с самим интерпретатором MicroPython, который записывается во флеш-память ESP32 и заменяет заводское ПО.
Зачем это нужно
Когда вы покупаете ESP32, в нём обычно стоит заводская прошивка (часто это AT-команды или прошивка под Arduino). Чтобы плата понимала Python, нужно записать в неё интерпретатор MicroPython. Делается это один раз с помощью утилиты esptool.
Шаг 1. Ставим esptool
Это обычная Python-программа для компьютера, ставится через pip:
pip install esptoolШаг 2. Скачиваем прошивку
На сайте micropython.org в разделе Downloads выбираем плату ESP32 и качаем последний стабильный файл .bin, например ESP32_GENERIC-20240602-v1.23.0.bin.
Шаг 3. Находим порт
Подключите плату по USB. Порт выглядит так:
Linux/Mac: /dev/ttyUSB0 или /dev/cu.usbserial-XXXX
Windows: COM3, COM4, ...Шаг 4. Стираем старую прошивку
esptool.py --port /dev/ttyUSB0 erase_flashШаг 5. Заливаем MicroPython
esptool.py --port /dev/ttyUSB0 --baud 460800 \
write_flash -z 0x1000 ESP32_GENERIC-20240602-v1.23.0.binАдрес 0x1000 — стандартное смещение для ESP32. После успешной заливки плата уже понимает Python.
Как работает под капотом
На плате есть микросхема-преобразователь USB↔UART (CP2102 или CH340). Через неё компьютер общается с ESP32 по последовательному порту. Чтобы войти в режим прошивки, чип нужно перевести в bootloader — на большинстве плат это происходит автоматически благодаря кнопкам EN и BOOT, которыми esptool управляет через сигналы DTR/RTS. Если автоматика не срабатывает, придётся в нужный момент зажать кнопку BOOT вручную. Сама прошивка пишется блоками во флеш-память; параметр -z включает сжатие для ускорения.
Частые ошибки
- «Failed to connect». Не установлен драйвер USB-UART, либо нужно зажать BOOT при подключении. Проверьте кабель — некоторые кабели только для зарядки, без данных.
- Неверный адрес. Для ESP32 это
0x1000; для ESP8266 —0x0. Перепутали — плата не загрузится. - Не тот файл. Прошивка для ESP8266 на ESP32 не встанет.
- Занятый порт. Закройте Thonny или монитор порта перед прошивкой — порт может быть занят.
Итог
- Прошивка ставится один раз утилитой
esptool. - Порядок: установить esptool → скачать
.bin→ найти порт → стереть флеш → залить прошивку по адресу0x1000. - Общение идёт через USB-UART; для входа в bootloader иногда нужна кнопка BOOT.
- Нужен кабель с поддержкой передачи данных, а не только зарядки.