将 NodeMCU 闪存到 ESP8266 时出错

Errors flashing NodeMCU to ESP8266

我在尝试刷新最新的开发固件时遇到了一些困难。我用我的 cli 中的一堆 copy/paste 示例编辑了这个问题,并阐明了我到目前为止所采取的步骤。这是我尝试做的事情:

固件的主版本运行良好,但正如我所说,它缺少一些我想使用的 wifi 和 ws2812 模块。固件的开发版本确实闪烁,但是当我尝试使用屏幕连接到 devkit 时,我得到的只是乱码,并且 Lua 提示从未出现。我现在要放弃了,我不知道下一步该尝试什么,所以有人可以指导我吗?

感谢您的帮助。

您关于分支和版本的措辞有点令人困惑(至少对我而言)。 dev 基于 SDK v1.5.1 而 master 是 1.4.0.

您不需要刷入固件 加上 SDK。固件本身就足够了。由于您参考了我们的闪烁文档,我假设您正确地使用了 esptool.py 命令。

有两点值得注意:

  • 我想你提到 esp_init_data_default.bin 是因为 byte-107-dance?由于 adc.force_init_mode(), we just ,如果您在 dev 分支,则不再需要。或者这是因为您之前在设备上安装了旧的 0.9.x 固件?如果是这样,您是否正确获得了 esp_init_data_default.bin 的地址,即与您设备的闪存大小对齐?
  • 我们在 dev 中进行了自动波特率检测。我不确定这与 screen 一起玩得有多好。尝试明确设置 115'200 或 try ESPlorer.

更新

请允许我说,我相信你把事情搞得一团糟。另外,我有理由相信您 Q 中的报告和输出并非全部事实。

  • 同样,没有 v1.4 dev 这样的东西。 dev 基于 SDK 1.5.1,master 使用 1.4。
  • 你声称使用我的 custom build service. Yet, in your first cmd line excerpt the filename and path is ~/git/nodemcu-firmware/bin/nodemcu_integer_1.4.0_master_20160531.bin. This hints that you're building the firmware yourself (using my Docker image?)。构建服务生成的文件名使用 nodemcu-<branch>-<number>-modules-<timestamp>-integer|float 模式,而我的 Docker 图像默认生成类似 nodemcu_integer|float_<branch>_<timestamp>.
  • 的内容
  • 但是你的第二个片段无疑表明你成功地从我的自定义构建服务构建的 NodeMCU master 分支加载固件。
  • 然后你闪现像“1.4.0 dev”(不存在)这样的本地构建加上 esp_init_data_default.bin?我不明白。 NodeMCU flashing docs 表示直接从 0.9.x 升级时只需要 esp_init_data_default.bin - 如果有的话。因此,如果您已经拥有 master (1.4),则完全没有必要。

抱歉,实在帮不上忙了。我相信你的成功之路真的很简单:

  • 达到了http://nodemcu-build.com/
  • select dev 分支加上所有需要的模块
  • 下载二进制文件
  • esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 nodemcu-dev-N-modules-2016-06-03-<time>-integer.bin

事实证明,screen 存在一个错误,导致它无法与固件版本 1.5 及更高版本的 devkit 通信。要解决此问题,您可以为 linux 使用 putty(如果您使用的是 ubuntu,可以从 apt-get 获得)或将固件降级到 1.4

有关详细信息,请参阅 SuperUser 上的此答案: https://superuser.com/questions/810937/how-can-i-set-the-parity-bits-when-using-screen-to-access-a-serial-port

P.s。我只在 armhf 编译的二进制文件上确认了这个错误。 x86 二进制文件可能工作得很好,因为我没有测试过它,尽管我链接的 SuperUser 上的问答似乎暗示 x86 上的屏幕也会有问题。