Я пытаюсь загрузить пример кода Blink в свои модули ESP8266, 1 из которых — ESP8266-07, а другой — WeMos D1 mini PRO. Я установил библиотеку для ESP в соответствии с онлайн-инструкциями. Я загружаю из Ubuntu 16.04, Arduino 1.8.9. Я также убедился, что использую sudo chmod 666 /dev/ttyUSB0
.
Я пробовал загружать как через обычный USB-кабель, так и через плату USB-TTL, оба варианта не имели никакого значения. Мои инструменты> Настройки платы: «Универсальный модуль ESP8266» для ESP8266-07 и «LOLIN (WEMOS) D1 mini Pro» для моего mini Pro. Во всех 4 случаях (2 разные платы, 2 загрузочных кабеля/шлюза) у меня одно и то же сообщение об ошибке.
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for package header
Я также попытался загрузить код в свой Node MCU, и в этом случае я получил другую ошибку:
esptools.FatalError: Invalid head of package (0x46)
Есть несколько разных вещей, которые нужно проверить для устранения неполадок:
Проверьте, как перечисляются ваши последовательные устройства. Они могут отображаться как /dev/ttyACM*
, а не /dev/ttyUSB0
Добавьте своего пользователя в группу дозвона
sudo usermod -a -G tty yourUserName
sudo usermod -a -G dialout yourUserName
Вы пытаетесь программировать через USB-концентратор? Иногда они вызывают странные проблемы с питанием, которые мешают программированию устройств. Если это так, попробуйте подключиться напрямую к основному USB-порту.
Я решил проблемы с ESP8266-07 и D1 mini Pro, изменив скорость загрузки на 115200.
Еще одна важная вещь, на которую стоит обратить внимание, это установка правильных плат: «Generic ESP8266 module» для ESP8266-07 и «LOLIN(WEMOS) D1 mini Pro» для mini Pro. Я иногда забываю сделать это при переключении между двумя досками.
Однако я еще не решил проблему, из-за которой мой NodeMCU продолжает возвращаться esptool.FatalError: Invalid head of packet (0x46)
Я убедился, что это ttyUSB0. Кроме того, я подключаю его непосредственно к USB-портам моего ноутбука.