美文网首页NODEMCU
mac开发nodemcu, 通过terminal刷固件

mac开发nodemcu, 通过terminal刷固件

作者: Zszen | 来源:发表于2017-07-10 13:46 被阅读390次

    官方教程: https://nodemcu.readthedocs.io/en/master/

    安装步骤: https://github.com/nodemcu/nodemcu-devkit/wiki/Getting-Started-on-OSX

    测试驱动是否安装好: https://www.14core.com/installing-nodemcu-driver-on-mac/

    在coolterm上点击connect可以成功连接, 建议用esplorer连接

    提示"cannot open init.lua"
    官方解答 https://nodemcu.readthedocs.io/en/master/en/upload/

    简书喜爱nodemcu朋友的学习笔记
    http://www.jianshu.com/c/822b99541ef5

    不升级导致nodemcu版本过旧, tmr.create()这样动态创建计时器的功能在早期版本并没有
    问题 https://stackoverflow.com/questions/44037327/tmr-create-fails-in-dirt-simple-code
    升级方式: http://www.jianshu.com/p/78b1400aa56e
    官方固件下载: https://nodemcu-build.com/
    各固件对比: https://www.douban.com/note/618121135/
    一些学习资料总结: http://blog.csdn.net/qq_32543253/article/details/53240071
    刷固件: https://nodemcu.readthedocs.io/en/master/en/flash/

    刷固件工具都不好用, 而且要win系统运行, 把nodemcu刷废了, 于是用官方的esptool.py刷法:

    1. nodemcu-build.com选择模块过多是无法编译的
      模块太多无法编译


      image.png

      成功编译提醒, 接下来等待邮件两封, 第一封提示开始编译, 第二封提供float和integer两个版本固件


      image.png
    2. 下载esptool.py
    3. 修改权限 chmod 777 ./esptool.py
    4. 获取mac上的设备端口: ls /dev/tty.*
      3.1 记住这个"/dev/tty.SLAB_USBtoUART" 每个设备上可能不同, 自己去找, 这个和软件打开com里面列出来名字是一样的

    win下获取端口dos下使用chgport

    /dev/tty.Bluetooth-Incoming-Port    /dev/tty.SLAB_USBtoUART
    /dev/tty.SBH70-CSRGAIA
    
    1. 擦除flash, 官方说很多人在升级时忽略了芯片初始化, 发生问题后可以擦除flash, 格式为

    esptool.py --port <serial-port-of-ESP8266> erase_flash
    运行效果
    ./esptool.py --port /dev/tty.SLAB_USBtoUART erase_flash

    image.png

    官方提示升级错误导致sdk无法识别, 会导致无尽重启, 或者死循环, 或者led疯狂闪烁
    Symptoms include messages like rf_cal[0] !=0x05,is 0xFF, or endless reboot loops and/or fast blinking module LEDs.

    1. 获取芯片的容量

    esptool.py --port <serial-port> flash_id
    运行效果, 有4mb哦 很满足
    esptool.py --port /dev/tty.SLAB_USBtoUART flash_id

    image.png
    1. 升级固件

    esptool.py --port <serial-port-of-ESP8266> write_flash -fm <mode> 0x00000 <nodemcu-firmware>.bin
    运行效果
    esptool.py --port /dev/tty.SLAB_USBtoUART write_flash -fm dio 0x00000 下载的固件.bin

    image.png
    1. 然后软件还是找不到sdk版本, 之后就又下载了新的fireware刷, 后来把频率改为115200能成功连接开发工具了, 看来频率不仅仅是影响乱码, 也影响和芯片连接.
    2. -fm dio这个指令不要换成-fm qio, 我刚作死试了几次, 发现又无法成功刷固件, 然后以为是bin包太大导致的, 但是不应该, 反复试无论大小还是float, int都无法成功再刷写固件, 后发现了这个指令, 本身我是试试的去改这个参数, 这个参数是说qio支持512kb以下的刷写, dio支持4mb以上的刷鞋, 应该是对应硬件存储, 而不是固件大小的, 大家谨记
      9.成功和失败刷写后开发工具链接的效果, 可反复练习, 感觉这个芯片只要不用锤子, 理论刷不坏

    刷写失败


    image.png

    刷写成功


    image.png

    ps:虽然工具软件界面人性化, 但是还是通过py方式刷固件更直观
    ps2: 我把我生成的固件放到百度云里面方便大家下载:

    链接: https://pan.baidu.com/s/1slnYLyt 密码: bi75

    关于连接esplorer时出现的乱码

    http://blog.csdn.net/dustintime/article/details/54914054
    这里有解释, 启动时如果能调试成功, 记住这个波特率, 然后改成74880启动, 你会看到第一行的乱码变成了很多行的数据, 而之前你看到的部分变成了乱码, 他连接的时候动态调整波特率, 先用74880输出内部信息, 再通过9600 (我这里是115200)进行调试, 不管哪个频道, 永远有一行是乱码

    相关文章

      网友评论

      • Trevor_DeWitt:nodemcu的驱动不一定是ch340,我买的就是silicon labs CP210x的。
        具体可以先找台win系统的电脑usb连接nodemcu,然后查看设备管理器中对应的设备,会给出是哪家的usb接口,下载对应的驱动就可以了。
        题主给的驱动连接基本包含了常用几家的驱动。
        Trevor_DeWitt:@Zszen 嗯嗯,是的,供电做好了稳定性是没问题的。
        Zszen:我的也是CP2102, 没有太大问题, 最稳定的是ft232, 低成本没有错, 玩这么久了还没有什么出错的迹象

      本文标题:mac开发nodemcu, 通过terminal刷固件

      本文链接:https://www.haomeiwen.com/subject/iqxyhxtx.html