Ошибка при загрузке «Произошла фатальная ошибка esptool.py: тайм-аут записи»

Я постоянно получаю эту ошибку при попытке загрузить скетч на Wemos D1 Mini R1 & Плата типа R2.

Произошла неустранимая ошибка esptool.py: время ожидания записи

Недавно я обновил свою среду разработки Arduino, поэтому предположил, что это может быть связано с неправильной установкой. Но после переустановки всего, включая библиотеку Board Manager для ESP, самой Arduino IDE ничего не заработало. Когда я нажимаю на информацию о плате, отображается ошибка «Собственный последовательный порт, не удается получить информацию».

Я также пробовал разные типы плат ESP (например, NodeMCU), но для всех плат одна и та же проблема. Когда я подключаю Arduino к тому же USB-порту, он автоматически обнаруживает плату, но когда я подключаю платы ESP, он не распознает платы автоматически. Так что я предполагаю, что это как-то связано с драйвером CH34X. Однако я попытался переустановить несколько версий драйвера из подлинных источников, но ничего не помогло.

Любая помощь приветствуется.

Ниже приведена полная трассировка печати журнала:

. Variables and constants in RAM (global, static), used 28104 / 80192 bytes (35%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1496     initialized variables
╠══ RODATA   920      constants       
╚══ BSS      25688    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59667 / 65536 bytes (91%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     26899    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 232148 / 1048576 bytes (22%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     232148   code in flash   
esptool.py v3.0
Serial port COM8
Connecting...

A fatal esptool.py error occurred: Write timeout

Ниже приведены настройки IDE при загрузке:

Arduino-IDE-upload-settings-for-D1-Mini-(ESP8266)

, 👍2


3 ответа


Лучший ответ:

1

"Самая распространенная причина" упомянутый в этом ответе на самом деле был моей проблемой. К сожалению, я использовал кабель только для зарядки, хотя на упаковке четко указано, что это кабель для передачи данных. Иногда эта дешевая электроника нас сильно сбивает с толку, и мы часто упускаем возможность критически рассмотреть наиболее очевидные проблемы. Как описано в этом руководстве по Adafruit, эта проблема кажется очень распространенной. один.

,

1

В последнее время я часто сталкивался с этим, и обычно, но не всегда, причина в том, что я использовал зарезервированный контакт GPIO, который нельзя было использовать во время загрузки. Удивительно, сколько булавок нельзя использовать.

Посмотрите на эту диаграмму, которую я нашел и сохранил. К сожалению, я не знаю источника, но считаю ее очень точной и часто на нее ссылаюсь:

взгляните на этот график, который я нашел

,

В моем случае простая программа Blink не загружается. я не знаю как сбой загрузки программы на плату может быть вызван перепутанным выводом GPIO. Вы имеете в виду, что плата повреждена и ее нельзя использовать? Я не вижу решения или вывода проблемы, в вашем ответе. Все еще нужна помощь., @sribasu


1

У меня была такая же проблема.

Мое решение:

Программа для мигания светодиодом ESP8266MOD (дешевый китайский модуль esp8266mod)

Я использовал Arduino IDE 2.1.0

информация из https://vimalb.github.io/IoT-ESP8266-Starter/Lesson_01 /lesson.html

Подключите последовательно резистор 220 Ом и светодиод. Подключите резистор к D8 и светодиоду

на G (земля). Я использовал макет и подключил контакт 5 В к плате esp и

Пыл G на плате esp к линии Red en Bleu на макетной плате mij.

Написать программу.

// Базовый ESP8266

#include <ESP8266WiFi.h>

WiFiClient WIFI_CLIENT;

#define LIGHT_SENSOR A0

#define LED 15    // это контакт D8 на плате

#define BUTTON 4



void setup() {

  // Инициализируем последовательный порт

  Serial.begin(115200);

  // Настраиваем вывод датчика освещенности как вход

  pinMode(LIGHT_SENSOR, INPUT);

  // Настраиваем вывод светодиода как выход

  pinMode(LED, OUTPUT);

  // Настраиваем вывод BUTTON как вход с помощью подтягивания

  pinMode(BUTTON, INPUT_PULLUP);

}

void loop() {

  // Включаем светодиод (HIGH — уровень напряжения)

  digitalWrite(LED, HIGH);

  // Подождите 1000 миллисекунд

  delay(1000);

  // Выключаем светодиод, понижая напряжение

  digitalWrite(LED, LOW);

  // Подождем еще 1000 миллисекунд

  delay(1000);

  // Отправляем сообщение через последовательный порт

  Serial.println("Finished loop");

}

Скомпилируйте программу.

В случае неисправности проверьте программу.

Перейдите в Инструменты -> Порт (я использовал com6)

Нажмите кнопку сброса на панели управления и удерживайте ее.

Подключите USB-кабель к espboard.

Отпустите кнопку сброса.

Убедитесь, что все подключено.

Загрузите программу, используя кнопку загрузки arduino IDE.

Запустите последовательный монитор и проверьте текст «Завершенный цикл». каждые 2 секунды.

Возможно, это поможет

,