无法将 Lua 脚本加载到 NodeMCU:无效 node.chipid()
Unable to load Lua Scripts to NodeMCU: Invalid node.chipid()
对于所有这些场景,我都可以通过串行 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 行
- 我不知道 "Response: 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 脚本并成功测试它们。即使是现在,我也可以恢复到这个固件并毫无问题地使用它。我什至从原来的 link 重新下载了这个固件,它工作正常。
9/7/2019 - 创建了一个新固件以使用 adc 和其他好东西
- 使用 https://nodemcu-build.com/ 和这些模块(adc、cron、file、gpio、i2c、mdns、mqtt、net、node、rtctime、sjson、tmr、uart、wifi)构建固件
- 使用 NodeMCU-PyFlasher-4.0
上传固件
- 出现上述问题
9/8/2019 - 使用最少的模块构建固件
- 使用 https://nodemcu-build.com/ 和这些模块(文件、gpio、网络、节点、tmr、uart、wifi)构建固件
- 使用 NodeMCU-PyFlasher-4.0
上传固件
- 出现上述问题
平台与工具
- Windows 10
- 开发板:HiLetgo ESP8266 NodeMCU LUA CP2102 ESP-12E Internet WiFi Development Board Open Source Serial Wireless Module
- 固件生成器:https://nodemcu-build.com/
- 串行监视器:PuTTy 0.72
- 固件加载器:NodeMCUPyFlasher 4.0
- Lua 脚本加载器:nodemcu-tool 3.0.2
fetchDeviceInfo()
首先在 https://github.com/AndiDittrich/NodeMCU-Tool/blob/master/lib/connector/device-info.js#L9 调用 node.info()
。然后它执行 if-else
以确定它在 ESP8266 还是 ESP32 上是 运行。
最近升级到 SDK 3.0 node.info()
已在 PR #2830. See documentation at https://nodemcu.readthedocs.io/en/latest/modules/node/#nodeinfo 中更改。它现在 returns 值脚本不认为来自 ESP8266。然后脚本在 else
分支中调用 node.chipId()
。因此,它从 ESP8266 获取芯片 ID,但它是 expecting 来自 ESP32 的芯片 ID。因此,例外。
I have no idea what "Response: 6935962" means. Is that my chip id or an error code?
这是你的芯片id。
长话短说:NodeMCU-Tool 需要按照上面的布局进行调整,才能与当前的 NodeMCU 版本一起使用。
我在最近的云构建 (https://nodemcu-build.com/) 中缓存了同样的问题。当我切换回旧版本时它会起作用。看起来像是构建系统或最新源代码的问题。您可以切换到其他构建方法并尝试使用旧代码。
对于所有这些场景,我都可以通过串行 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 行
- 我不知道 "Response: 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 脚本并成功测试它们。即使是现在,我也可以恢复到这个固件并毫无问题地使用它。我什至从原来的 link 重新下载了这个固件,它工作正常。
9/7/2019 - 创建了一个新固件以使用 adc 和其他好东西
- 使用 https://nodemcu-build.com/ 和这些模块(adc、cron、file、gpio、i2c、mdns、mqtt、net、node、rtctime、sjson、tmr、uart、wifi)构建固件
- 使用 NodeMCU-PyFlasher-4.0 上传固件
- 出现上述问题
9/8/2019 - 使用最少的模块构建固件
- 使用 https://nodemcu-build.com/ 和这些模块(文件、gpio、网络、节点、tmr、uart、wifi)构建固件
- 使用 NodeMCU-PyFlasher-4.0 上传固件
- 出现上述问题
平台与工具
- Windows 10
- 开发板:HiLetgo ESP8266 NodeMCU LUA CP2102 ESP-12E Internet WiFi Development Board Open Source Serial Wireless Module
- 固件生成器:https://nodemcu-build.com/
- 串行监视器:PuTTy 0.72
- 固件加载器:NodeMCUPyFlasher 4.0
- Lua 脚本加载器:nodemcu-tool 3.0.2
fetchDeviceInfo()
首先在 https://github.com/AndiDittrich/NodeMCU-Tool/blob/master/lib/connector/device-info.js#L9 调用 node.info()
。然后它执行 if-else
以确定它在 ESP8266 还是 ESP32 上是 运行。
最近升级到 SDK 3.0 node.info()
已在 PR #2830. See documentation at https://nodemcu.readthedocs.io/en/latest/modules/node/#nodeinfo 中更改。它现在 returns 值脚本不认为来自 ESP8266。然后脚本在 else
分支中调用 node.chipId()
。因此,它从 ESP8266 获取芯片 ID,但它是 expecting 来自 ESP32 的芯片 ID。因此,例外。
I have no idea what "Response: 6935962" means. Is that my chip id or an error code?
这是你的芯片id。
长话短说:NodeMCU-Tool 需要按照上面的布局进行调整,才能与当前的 NodeMCU 版本一起使用。
我在最近的云构建 (https://nodemcu-build.com/) 中缓存了同样的问题。当我切换回旧版本时它会起作用。看起来像是构建系统或最新源代码的问题。您可以切换到其他构建方法并尝试使用旧代码。