错误将NodeMCU闪烁到ESP8266

时间:2016-06-01 04:36:22

标签: esp8266 nodemcu

我在尝试刷新最新开发固件时遇到了一些困难。我用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 个答案:

答案 0 :(得分:0)

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

您不需要刷新固件 plus 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È或try ESPlorer

<强>更新

请允许我说,我相信你制造的一团糟。此外,我有理由相信你的问题中的报告和输出是全部真相。

  • 同样,没有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分支加载固件。
  • 然后你闪现像&#34; 1.4.0 dev&#34; (不存在)本地建立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

答案 1 :(得分:0)

事实证明,$("#searchByCriteria").submit(function (event) { $("#gridArea").html(""); $("#gridArea").load( '@(Url.Action("searchResult", "Maintenance", new { unitCode = Model.UNIT_CD, programCode = Model.PROGRAM_CD}))' ) }); 存在一个错误,使其无法在固件版本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

P.S。我只在armhf编译的二进制文件中确认了这个bug。有可能x86二进制文件工作得很好,因为我还没有测试过,虽然我链接的SuperUser上的Q&amp; A似乎暗示x86上的屏幕也会有问题。