【问题标题】:Unable to load Lua Scripts to NodeMCU: Invalid node.chipid()无法将 Lua 脚本加载到 NodeMCU:无效的 node.chipid()
【发布时间】:2020-01-10 14:54:08
【问题描述】:

对于所有这些情况,我都可以通过串行 USB 上传固件和监控。但是在创建我的第一个固件之后,对于所有新固件,我无法使用 nodemcu-tool 上传 Lua 脚本,而不会得到以下信息:

错误信息

F:\Development\NodeMCU\helloworld>nodemcu-tool -p COM3 upload init.lua 
[NodeMCU-Tool]~ Unable to establish connection 
[NodeMCU-Tool]~ Invalid node.chipid() Response: 6935962

观察

  • 可以使用 nodemcu-tool 重置板。让我认为波特率很好。
  • 在加载任何固件后可以看到正在从 PuTTy 创建的文件系统。让我认为固件没问题。
  • 尝试了多个开发板,结果相同
  • 找到错误消息device-info.js的来源。第 45 行或第 49 行
  • 我不知道“响应:6935962”是什么意思。这是我的芯片 ID 还是错误代码?
  • 在过去的几天里,新的commit 被添加到固件源中。不知道这是否相关。
  • 希望在我进入 Docker 兔子洞之前解决这个问题。懒惰的。我知道。

9/6/2019 - 创建第一个固件以开始开发

  • 使用https://nodemcu-build.com/ 和这些模块(cron、file、gpio、i2c、mdns、mqtt、net、node、sjson、tmr、uart、wifi)构建固件
  • 使用NodeMCU-PyFlasher-4.0上传固件
  • 此固件没有问题。我已经能够上传 lua 脚本并成功测试它们。即使是现在,我也可以恢复到这个固件并毫无问题地使用它。我什至从原始链接重新下载了这个固件,它工作正常。

9/7/2019 - 创建了一个新固件来使用 adc 和其他好东西

9/8/2019 - 用最少的模块构建固件

平台和工具

【问题讨论】:

标签: lua esp8266 nodemcu


【解决方案1】:

fetchDeviceInfo() 第一次调用node.info() https://github.com/AndiDittrich/NodeMCU-Tool/blob/master/lib/connector/device-info.js#L9。然后它会执行if-else 来确定它是在 ESP8266 还是 ESP32 上运行。

随着最近升级到 SDK 3.0,node.info()PR #2830 中发生了更改。请参阅https://nodemcu.readthedocs.io/en/latest/modules/node/#nodeinfo 上的文档。它现在返回脚本不认为来自 ESP8266 的值。然后脚本在else 分支中调用node.chipId()。因此,它从 ESP8266 获取芯片 ID,但 期望 来自 ESP32。因此,例外。

我不知道“响应:6935962”是什么意思。这是我的芯片 ID 还是错误代码?

这是你的芯片 ID。

长话短说:NodeMCU-Tool 需要按照上面的说明进行调整,以适用于当前的 NodeMCU 版本。

【讨论】:

    【解决方案2】:

    我从最近的云构建中缓存了相同的问题 (https://nodemcu-build.com/)。当我切换回旧的时它可以工作。它看起来像是构建系统或最近源代码的问题。您可以切换到其他构建方法并尝试使用旧代码。

    【讨论】:

    • 请阅读 OP 的 cmets。我能够通过从 repo 下载 nodemcu-tool 的最新源来解决这个问题。
    猜你喜欢
    • 2019-05-06
    • 2016-03-19
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2017-01-20
    • 2023-03-15
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多