Сможет ли плата разработки ESP32-C3 Super Mini заменить платы на ESP8266

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Уже год на Aliexpress продаются дешёвые (около 165 рублей с бесплатной доставкой) и очень маленькие платы разработки ESP32-C3 Super Mini, оснащённые Wi-Fi, Bluetooth, разъёмом Type C, достаточно мощным процессором, кнопкой и светодиодом.


Я купил такую плату и изучил, стоит ли использовать её вместо Wemos D1 mini, NodeMCU, а также плат без Wi-Fi (например, Arduino Nano) в самоделках на Arduino.

Прежде всего, для тех, кто «не в теме», несколько слов о том, что это и зачем оно нужно. Платы разработки позволяют самостоятельно создавать электронные устройства и компоненты умного дома, используя достаточно простую среду программирования (например, Arduino IDE). Кроме того для таких плат существуют конструкторы прошивок, позволяющие создавать различные устройства без программирования (например, Wi-Fi-термометры, умные розетки и выключатели, измерительные приборы, контроллеры ёлочных гирлянд).

Плата действительно очень маленькая. Вот она рядом с Arduino Uno, Arduino Nano, NodeMCU и D1 Mini.

Несмотря на малюсенький размер, эта плата мощнее всех остальных плат на предыдущем фото и у неё большие возможности:

  • Процессор: 160 МГц, 32-битный RISC-V, 1 ядро;
  • Память: 400 КБ SRAM, 4 МБ Flash;
  • Беспроводные коммуникации: Wi-Fi 2.4 ГГц 802.11b/g/n/mc (до 150 Мбит/c), Bluetooth 5;
  • До 13 цифровых Входов/выходов и до 6 аналоговых входов (цифровые и аналоговые сигналы могут подключаться к одним и тем же выводам платы);
  • Аппаратные протоколы: UART, SPI, I2C, I2S, BLE, Wi-Fi;
  • Питание: 3.3V (встроенный стабилизатор с питанием от Type C);
  • Размер: 24x18 мм.

Синий светодиод подключен к GPIO8, кнопка BOOT к GPIO9, соответственно и светодиод и кнопку можно использовать в своих проектах.

В отличие от большинства известных плат, для связи с компьютером в ESP32-C3 используется не преобразователь USB-UART, эмулирующий COM-порт, а контроллер, определяющийся, как два устройства «USB JTAG/serial debug unit». Говорят, в Windows 10 драйвер для него ставится автоматически, но в Windows 7 попытки установить драйвер обернулись часовыми «плясками с бубном». На официальном сайте Espressif (разработчик контроллера) даются ссылки на два драйвера, но оба они не подходят. Полноценный драйвер я так и не нашёл, удалось установить драйвер отсюда, появился COM-порт, через который можно заливать прошивку, но второй USB JTAG/serial debug unit так и остался неопознанным устройством, при попытке включить монитор порта он не работает, а при включении USB CDC OnBoard порт вообще исчезает.


Ещё одна проблема связана с загрузчиком. В большинстве китайских плат прошито что-то перегружающее их раз в секунду (соответственно, USB-устройства раз в секунду появляются и отваливаются). В лотах продавцов можно найти множество отзывов, что платы неисправны — то появляются, то отваливаются. Для того, чтобы прошить плату, нужно держа кнопку BOOT, нажать кнопку RESET. После отпускания двух кнопок плата перестаёт непрерывно перезагружаться и с ней можно работать.

У некоторых лотах встречаются отзывы, что в плате вообще нет загрузчика и её невозможно прошить (опять же, возможно, что комбинация нажатий кнопок поможет).

Впрочем, и брака этих плат встречается много. У некоторых плат перепутана полярность светодиодов и они просто не светятся. У некоторых плохо пропаян сам микроконтроллер. У некоторых из-за ошибки разводки Wi-Fi почти не видит сети (встречал рекомендацию для таких плат снижать мощность до 10 dBm после wifi_start).

В Arduino IDE ESP32-C3 добавляется аналогично ESP8266:

Файл — Параметры — Дополнительные ссылки для Менеджера плат — https://espressif.github.io/arduino-esp32/package_esp32_index.json

Инструменты — Плата — Менеджер плат… — ESP32


Инструменты — Плата — ESP32C3 Dev Module

Простейший скетч, мигающий светодиодом на плате:

void setup() {pinMode(8, OUTPUT);}void loop() {digitalWrite(8, HIGH);delay(1000);digitalWrite(8, LOW);delay(1000);}

Компиляция этого скетча на моём компьютере (Pentium G3258 3.2Ghz) происходит довольно долго: 78 секунд, повторная 16 секунд (компиляция для Wemos D1 mini на ES8266 занимает 99 и 12 секунд, для Arduino Nano 24 и 17 секунд).

У меня сложилось впечатление, что пока ESP32-C3 Super Mini в качестве замены той же D1 mini рассматривать не стоит — при той же цене много проблем и высокая вероятность нарваться на брак.

Я покупал плату тут (светодиоды работают, Wi-Fi не проверял).

Проверенные D1 mini в последний раз покупал тут.