Problem uploading code to ESP8266: esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for package header

Problem uploading code to ESP8266: esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for package header

我正在尝试将示例 Blink 代码上传到我的 ESP8266 模块,其中一个是 ESP8266-07,另一个是 WeMos D1 mini PRO。我已经根据在线说明为 ESP 安装了库。我正在从 Ubuntu 16.04,Arduino 1.8.9 上传。我还确保使用 sudo chmod 666 /dev/ttyUSB0.

我试过通过普通 USB 数据线和 USB-TTL 板上传,两者都没有区别。我的工具 > 电路板设置对于 ESP8266-07 是 "Generic ESP8266 module",对于我的 mini Pro 是 "LOLIN(WEMOS) D1 mini Pro"。在所有 4 种情况下(2 个不同的板,2 个上传 cables/gateways),我得到了相同的错误消息。

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 端口。

我已经通过将上传速度更改为 115200 解决了 ESP8266-07 和 D1 mini Pro 的问题。
另一个需要注意的重要事项是设置正确的电路板:"Generic ESP8266 module" 用于 ESP8266-07,"LOLIN(WEMOS) D1 mini Pro" 用于 mini Pro。在两块板之间切换时,我有时会忘记这样做。
但是,我还没有解决我的NodeMCU一直返回的问题esptool.FatalError: Invalid head of packet (0x46)