Не удалось загрузить скетчи на ESP8266 только в Ubunto 20.04.3
Я установил свежую копию Ubuntu 20.04 и Arduino IDE1.8.16. Вначале добавление пользователя в группу удаленного доступа
включало загрузку скетча в семейство Aruino AVR и ESP32, но все равно ESP8266 выдает эту ошибку:
Sketch uses 260889 bytes (24%) of program storage space. Maximum is 1044464 bytes.
Global variables use 27980 bytes (34%) of dynamic memory, leaving 53940 bytes for local variables. Maximum is 81920 bytes.
esptool.py v3.0
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
Traceback (most recent call last):
File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module>
esptool.main(cmdline)
File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 3552, in main
esp.connect(args.before, args.connect_attempts)
File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 529, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Поэтому я попытался стереть флэш с помощью esptool.py
:
guy@desktop:~$ esptool --chip auto --port /dev/ttyUSB0 erase_flash
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
Поскольку AVR и ESP32 работают правильно с использованием USB и ACM, я могу предположить, что это не проблема с возможностью доступа к последовательной связи.
Что бы это могло быть ?
@Guy . D, 👍2
1 ответ
Лучший ответ:
Что-то не так с некоторыми новыми ядрами Ubuntu 20.04 LTS, мешающими процессу загрузки ядра ESP8266
5.4.0-88-generic #99-Ubuntu SMP Чт 23 сентября 17:29:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
У меня была та же проблема, и я понизил рейтинг ядра до
5.4.0-86-generic #97-Ubuntu SMP Пт 17 сентября 19:19:40 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
решена проблема
Проблема возникает в процессе загрузки ядра ESP8266 со следующими протестированными ядрами Ubuntu
linux-5.11.0-37-общий
linux-5.4.0-89-общий
linux-5.4.0-88-общий
и протестировано нормально с
linux-5.11.0-38-общий
linux-5.11.0-36-общий
linux-5.8.0-48-общий
linux-5.4.0-90-общий
linux-5.4.0-86-общий
Временно исправить
Чтобы временно устранить проблему, используя рабочее ядро, например linux-5.4.0-86-общий
A. Выберите в меню загрузки GNU GRUB
Дополнительные параметры для Ubuntu
- Ubuntu, с Linux 5.4.0-86-универсальный
Если у вас нет этого ядра, установите с помощью
sudo apt install linux-image-5.4.0-86-generic
- Перезагрузитесь и выберите
5.4.0-86-generic
в меню загрузки GNU GRUB
Чтобы сохранить выбранные настройки GRUB
Дополнительная информация Простая настройка GRUB
- Отредактируйте
/etc/по умолчанию/grub
с помощью
$ sudo gedit /etc/default/grub
- Добавить в файл
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
- Активируйте изменение, чтобы последнее выбранное значение использовалось для следующей загрузки.
$ sudo update-grub
Обновить
Просто тестирую нормально с последним ядром
linux-5.11.0-38-общий
linux-5.4.0-90-общий
Похоже, недавний выпуск ядра устранил проблему
- Максимальная последовательная скорость CH340
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Внешнее питание 5 В и последовательный порт USB
- Можно ли использовать Serial.print(сообщение), когда USB-кабель не подключен к хост-компьютеру?
- SerialUSB на Arduino Due
- Mac не обнаруживает последовательный порт для Леонардо
- Отправлять числа в arduino через последовательный порт с помощью python