Air720系列空中采用全固件升级的方式,即将完整固件(.bin文件)包放到服务器中,模块通过查询方式得到空中升级的指令,然后下载整个固件包(大约5MB),下载到本地flash内部后,再重启进行更新。如果中途失败会重新进行更新动作,如果下载固件过程不完整,则不会进行更新。所以不需要担心空中升级失败导致的模块变砖问题。
Air720(AT固件)空中升级分为模块端AT指令触发升级和自动升级2种方式。
Air720(Lua固件)空中升级一般是模块开机后,自动连接服务器,请求升级。(本文以720H模块,合宙服务器为例)
AT固件:
1:模块端AT指令触发升级:
1.1 合宙IoT平台配置(点击此处进入)
1.1.1登录平台,查询模块是否在自己账户项目下:
客户向合宙采购4G模块时,如果采购人员没有告知合宙这批模块放在iot.openluat.com上的哪个产品下,则合宙会以采购人的手机号为账号,默认密码888888,创建一个“Air720X标准模块”的产品,此次采购的所有模块都会放在这个产品下。
1.1.2配置流程
1.1.2.1依次点击进入产品->固件升级->升级配置,页面如下
1.1.2.2以720H模块为例,登录官网下载最新固件
1.1.2.3固件解压后,将bin文件上传至IOT平台
1.1.2.4当全项目升级为否时,需要添加待升级模块IMEI号,步骤如下图所示
成功添加后:
1.2模块端AT指令触发(若确认模块在IoT平台账号项目下,可省略AT+UPGRADE=”KEY”,”XXXX”指令)
1.2.1模块端通过USB端口,依次发送以下AT指令,在前一条指令返回正常的情况下,发送下一条,完整流程如下图所示
1.2.2模块端通过串口2,依次发送以下AT指令,在前一条指令返回正常的情况下,发送下一条,完整流程如下
指令触发->下载固件->刷机重启等全部过程如下:
注:1.2.1和1.2.2可根据实际情况选择合适的方式,触发指令相同,仅输出有部分区别
1.3升级常见问题和处理办法
1.3.1获取produckey,登录IOT平台->进入项目->产品信息
1.3.2升级异常时,可通过URC上报+UPGRADENID ERROR CODE,或者AT+UPGRADE?指令查询固件下载结果,进一步处理
AT+UPGRADE? 返回+UPGRADE: state, [error code, http respone, fota error cause] OK
2:自动升级
2.1自动FOTA是模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下:
3:备注
- 客户可以通过IOT平台查看升级成功数量,失败日志等信息
- 客户若是使用自己的服务器来进行空中升级,用户在自己服务器放好bin文件,模块端执行
AT+UPGRADE=”URL”,”http://xxxx.bin"
AT+UPGRADE
模块只支持通过该URL执行http get获取固件bin - 升级过程中若模块断电、重启导致升级失败,可重新升级
- 模块手动触发升级时,若频繁从同一个版本请求(目前默认一小时内6次,24小时内10次),IOT平台设备状态会自动更改为禁止升级,需要在平台设备列表手动解除
Lua固件:(以720H模块,合宙服务器为例)
1.登录IOT平台点此进入,创建产品,查询模块是否在本人IOT账户下
1.1若账户下没有产品,可新建产品,并进入产品,获取ProductKey
1.2
2.设备端代码修改
例如:
设备端本地烧录的旧固件版本信息为:
core:Luat_V0019_ASR1802
main.lua中PROJECT:LUAT_IOT_SERVER_UPDATE
main.lua中VERSION:1.0.0
模块型号:Air720H
远程升级的新固件版本信息为:
core:Luat_V0026_ASR1802
main.lua中PROJECT:LUAT_IOT_SERVER_UPDATE
main.lua中VERSION:2.0.0
模块型号:Air720H
2.1修改main.lua,配置新固件版本信息,支持升级功能
打开脚本main.lua文件,按照注释,根据自己的需要修改PROJECT、VERSION、PRODUCT_KEY,并加载远程升级功能
注:设备每次开机,执行update.request()之后,网络准备就绪之后,模块会自动连接服务器,执行升级功能。
3.通过Luatools生成升级包
生成的升级包文件默认存放在:Luatools工具目录下的 “量产文件生成默认文件夹\4G远程升级文件”
4.IOT平台配置
4.1
4.2添加IMEI(IMEI由模块包装获取,或由trace中获取),配置升级模块
添加成功后
5.运行1.0.0版本软件的模块开机,会自动连接合宙服务器请求升级。
注:升级成功后,模块会自动重启,运行新版本,可在IOT平台查询升级日志,确认模块升级成功
6.备注
- 关于空中升级原理,LUA版本空中升级(2G模块),循环升级等问题,参考http://oldask.openluat.com/article/916
- 空中升级失败,错误码请参照本文AT固件升级介绍中 1.3.2部分
- 目前模块支持同一账号,不同项目间升级,不支持跨账号升级
- 如果需要定时执行升级功能等,请参考https://wiki.openluat.com/doc/luatApi4G/#update
如有错误,欢迎指正!