我在尝试刷新最新的开发固件时遇到了一些困难 . 我已经用我的cli中的一堆复制/粘贴示例编辑了这个问题,并澄清了我到目前为止所采取的步骤 . 这是我尝试过的事情:
-
我从自定义构建服务下载了1.4.0 master和dev版本的固件 .
-
我尝试使用此命令刷新1.4.0主版本:
python esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 ~/git/nodemcu-
firmware/bin/nodemcu_integer_1.4.0_master_20160531.bin
esptool.py v1.0.2-dev
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0240
Writing 405504 @ 0x0... 405504 (100 %)
Wrote 405504 bytes at 0x0 in 35.2 seconds (92.2 kbit/s)...
Leaving...
- 这似乎成功,因为我可以连接到devkit
n?$B�
��4"*���4"*��B%,��� C�
NodeMCU custom build by frightanic.com
branch: master
commit: c8037568571edb5c568c2f8231e4f8ce0683b883
SSL: false
modules: file,gpio,i2c,net,node,rtcfifo,rtcmem,rtctime,tmr,uart,wifi,ws2812
build built on: 2016-06-01 02:58
powered by Lua 5.1.4 on SDK 1.4.0
lua: cannot open init.lua
>
-
我下载了espressif sdk的v1.5.1 nonos来获取esp_init_data_default.bin我必须这样做因为devkit运行的是0.9.6
-
我尝试使用此命令刷新固件的1.4.0 dev版本:
python esptool.py --port /dev/ttyUSB0 write_flash -fm=dio -fs=32m 0x00000 ~/git/nodemcu-firmware/bin/nodemcu_integer_1.4.0_dev_20160531.bin 0x3fc000 ~/git/nodemcu-firmware/bin/esp_init_data_default.bin
esptool.py v1.0.2-dev
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0240
Writing 401408 @ 0x0... 401408 (100 %)
Wrote 401408 bytes at 0x0 in 34.8 seconds (92.3 kbit/s)...
Writing 4096 @ 0x3fc000... 4096 (100 %)
Wrote 4096 bytes at 0x3fc000 in 0.4 seconds (90.0 kbit/s)...
Leaving...
- 这似乎失败了,因为当我尝试连接到devkit时,我得到的只是胡言乱语 . 我试图连接每个波特设置,它似乎根本没有改善胡言乱语 .
rll|l�|l�b|�rbb�nnlnn��bplrlrlp�n�lbn�|l�b�nn�ll`nn
lnr�n
b��`p�n�
r���bn�|llb�nn�l`nnl�l`nr�n
��l``�n
��b�nl�
��nn�
lp�n�
r���lbn�|b�nn�ll`
固件的主版本运行良好,但正如我所说,它缺少了一些我想要使用的wifi和ws2812模块的东西 . 固件的开发版本会闪存,但是当我尝试使用屏幕连接到devkit时,我得到的只是乱码并且Lua提示永远不会出现 . 我现在放弃了,我不知道下一步该尝试,有人可以指导我吗?
谢谢你的帮助 .
2 回答
关于分支和版本的措辞有点令人困惑(至少对我而言) .
dev
基于SDK v1.5.1,而master
则基于1.4.0 .您无需刷新固件和SDK . 固件本身就足够了 . 由于您引用了我们的闪存文档,我假设您拥有
esptool.py
命令 .值得注意的两件事:
我认为你提到了
esp_init_data_default.bin
因为字节107舞蹈?如果因adc.force_init_mode()而在dev
分支上,则不再需要,我们只需had this yesterday . 或者这是因为您以前在设备上有旧的0.9.x固件?如果是这样,您是否获得了esp_init_data_default.bin
的地址,即与您设备的闪存大小对齐?我们在
dev
中进行了自动波特率检测 . 我不确定这与screen
有多好 . 尝试明确设置115'200或try ESPlorer .Update
请允许我说,我相信你制造了一团糟 . 此外,我有理由相信你的Q中的报告和输出并非全部真相 .
再次,没有v1.4
dev
这样的东西 .dev
基于SDK 1.5.1,master
使用1.4 .您声称使用我的custom build service . 然而,在你的第一个cmd行摘录中,文件名和路径是
~/git/nodemcu-firmware/bin/nodemcu_integer_1.4.0_master_20160531.bin
. 这暗示您自己构建固件(使用我的Docker image?) . 构建服务生成的文件名使用模式nodemcu-<branch>-<number>-modules-<timestamp>-integer|float
,而我的Docker镜像默认生成类似nodemcu_integer|float_<branch>_<timestamp>
的内容 .但是你的第二个片段无疑表明你已经成功加载了我的自定义构建服务构建的NodeMCU
master
分支的固件 .然后你闪现像本地建造的"1.4.0 dev"(不存在)PLUS
esp_init_data_default.bin
?我不明白 . NodeMCU flashing docs说你直接从0.9.x升级时只需要esp_init_data_default.bin
- 如果有的话 . 所以,如果你已经有了master
(1.4),那绝对没有必要 .对不起,真的无法再帮忙了 . 我相信通向成功的道路非常简单:
来了http://nodemcu-build.com/
选择
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进行通信 . 要解决此问题,您可以使用putty for linux(如果您使用的是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
附:我只在armhf编译的二进制文件中确认了这个bug . 有可能x86二进制文件工作得很好,因为我没有测试它,虽然我链接的SuperUser上的Q&A似乎暗示x86上的屏幕也会有问题 .