【问题标题】:Unable to program NodeMCU无法对 NodeMCU 进行编程
【发布时间】:2016-02-04 23:54:19
【问题描述】:

这个问题和这个有关,Cannot program ESP8266,只是设置不同。

我有一个NodeMCU devkit v1,它的商业名称是NodeMCU v2。我尝试了不同的设置来连接 devkit。

  • 首先,devkit 有一个 USB 串行桥 (CP2102) 和从 5v (USB) 到 3.3v 的电压适配器。所以我通过 USB 将 devkit 与机器连接起来。驱动安装正确,可以看到com,是COM3。 打开NodeMCU后,我可以看到一个WifiAI-THINKER-adfe21

    • 然后我尝试使用nodemcu-flasher - WINDOWS。

      1. 没有任何按钮或引脚接地。我按下闪光灯中的 Flash 并保持 Waiting MAC 并且日志显示 Begin Find ESP8266 作为我在开始时提出的问题并且 ESP 的 LED(蓝色 LED)闪烁。
      2. 按住 FLASH,按 RESET,松开 FLASH。还是和1一样。
      3. 将 D3 (GPIO0) 连接到 GND。结果相同
    • 使用ESPtool - LINUX - 尝试这些命令 python2 esptool.py --port /dev/ttyUSB0 read_mac python2 esptool.py --port /dev/ttyUSB0 write_flash 0x00000 firmware.bin

      1. 没有任何按钮或引脚接地。命令的输出是Connecting... A fatal error occurred: Failed to connect to ESP8266
      2. 按住 FLASH,按 RESET,松开 FLASH。一样
      3. 将 D3 (GPIO0) 连接到 GND。结果相同。
    • 通过 Arduino IDE,我安装了 ESP8266 板并选择了NodeMCU 1.0。尝试上传一些代码的结果 -> warning: espcomm_sync failed error: espcomm_open failed

  • 我尝试在没有 USB 的情况下连接 NodeMCU。使用 Arduino UNO,连接如下......我遇到了同样的错误。

UNO | NodeMCU 5v -> Vin GND -> GND Rx -> Tx Tx -> Rx

我做的最后一个测试是使用 Putty 或 Arduino SerialMonitor 连接到 COM3/dev/ttyUSB0 并打开 NodeMCU。如果波特率不同,我应该会看到一些字符或垃圾。但我什么也没有,终端是空白的。我重新启动 NodeMCU,将其置于 Flash 模式。没有回应。

是否有一些解决方案、提示或技巧可以使其可编程?

PS:我知道 NodeMCU 处于 Flash 模式,因为它的 wifi 消失了。

编辑:

我发现了一些东西。

我刚刚将 NodeMcu 与移动充电器连接,并将 D0 连接到串行接地,将 D3 连接到串行 Rx。在波特率为 115200 的腻子上,我可以在重置时获得以下代码。

node : sta(mac address) + softAP(mac address)
add if0
add if1
dhcp server start:(ip:192.168.4.1, mask:255.255.255.0,gw:192.168.4.1)
bcn 100

【问题讨论】:

  • 旁注:您要么拥有 v1 v2 devkit。如果是 v2,那么它的版本是 1.0。如果它是 v1,那么它的版本是 0.9。我知道这一切都令人困惑;-) 有关详细信息,请参阅 frightanic.com/iot/…
  • “驱动程序安装正确” - 你怎么能确定?但是,由于您在 Windows 和 Linux 上都进行了尝试,因此您似乎不太可能在 both 平台上遇到驱动程序问题。您是否尝试过使用不同的 USB 数据线?您是否尝试过使用外部电源?
  • @Marcel Stör 它是 v2 或相同的 1.0 devkit。我尝试使用不同的 microUSB 和不同的计算机。我还使用移动电话充电器和 Arduino 供电
  • @Marcel Stör 当我说“安装正确”时,我的意思是我从 SiliconLab 下载驱动程序并将其连接到电脑时,在 Windows 中显示“Silicon Lab Usb Uart bridge cp212x”,如果我的记忆没有失败,并且在 linux 上内核说“CP212x assosiated to /dev/ttyUSB0”
  • 通过一些发现更新了问题

标签: arduino esp8266 arduino-ide nodemcu


【解决方案1】:

我一直在使用 node-mcu flasher 和 esptool。 首先在 esptool 中,你应该在调用中使用更多参数。使用类似的东西

python esptool.py -p SERIAL_PORT_NAME --baud 9600 write_flash --flash_size=8m 0 firmware-combined.bin

注意波特率,我总是使用 9600。 如果您更喜欢使用 windows 程序,您应该只通过 USB 连接 ESP8266,不要连接任何其他引脚。如果它仍然给您带来问题,您应该检查您是否安装了 com 端口。

祝你好运

【讨论】:

    【解决方案2】:

    如果您使用 esptool(在 Linux 或 Windows 中),您应该在 esptool 命令中包含 -fm 和 -fs。如果您没有包含这 2 个参数,即使它显示成功上传,也不会有任何响应。您可以参考此 youtube 教程中的详细信息或其描述以在 nodemcu V2 或 v1.0 中刷新固件。

    esptool.py --port [serial-port-of-ESP8266] write_flash -fm [mode] -fs [size] 0x00000 [nodemcu-firmware].bin
    

    关于如何使用 esptool(windows) 刷固件的教程:

    https://www.youtube.com/watch?v=MHrm7axsImI

    干杯!

    【讨论】:

      【解决方案3】:

      也许你可以试试这个设置。

      $sudo esptool.py -p /dev/ttyUSB0 --baud 115200 write_flash -fs 16m -fm qio -ff 0x00000 firmware.bin
      

      【讨论】:

        猜你喜欢
        • 2018-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-17
        • 2014-06-27
        • 2017-03-23
        • 1970-01-01
        • 2016-11-11
        相关资源
        最近更新 更多