适用于618/7xx芯片平台 AT开发 远程FOTA升级指南教程

news/2024/8/30 22:59:13 标签: github, android, 合宙

简介

AT版本的远程升级主要是对AT固件版本进行升级,实际方式为通过合宙官方IOT平台升级或者使用自己搭建的服务器进行升级服务。

该文档教程流程适用于 618/716S/718P 芯片平台的Cat.1模块

合宙IOT平台配置

升级日志 —— 如何查看

在这里插入图片描述

升级日志 —— 响应码列表

响应码响应信息问题以及解决办法云平台日志结果
3无效的设备检查请求键名(imei小写)正确性
17无权限设备会上报imei、固件名、项目key。 服务器会以此查出设备、固件、项目三 条记录, 如果 这三者不在同一个用户名下,就会认为无权限。 设备不在项目key对应的账户下, 可寻找合宙技术支持查询该设备在哪个账户下, 核实情况后可修改设备归属无权限
2121不允许从1.0.2升到1.0.321
25无效的项目productkey不一致,检查是否存在拼写错误, 检查模块是否在本人账户下,若不在本人账户下,请联系合宙工作人员处理未找到项目
26无效的固件固件名称错误,项目中没有对应的固件。用户自己修改了固件名称,可对照升级日志中设备当前固件名与升级配置中固件名是否相同(固件名称,固件功能要完全一致,只是版本号不同)。找不到固件
27已是最新版本1、设备固件版本高于云平台 2、固件版本设备脚本版本高于云平台版本 3、用户项目升级配置中未添加该设备 4、云平台升级配置中,是否升级配置为否已是最新版本 设备不在配置的升级设备列表中
40循环升级云平台进入设备列表搜索被禁止的imei,解除禁止升级就好了。 云平台防止模块在升级失败后,反复请求升级导致流量耗尽, 在模块一天请求升级六次后会禁止模块升级。可在平台解除。检测到循环升级 (已禁止升级,请到设备列表解除)
43请等待云平台生成差分升级包需要等待, 一到三分钟后云平台生成完成差分包便可以请求成功。正在生成版本,请等待
44基础版本缺失平台未收录设备固件(多为定制固件, 可寻找合宙技术支持人员添加,需提供定制固件邮件)基础CORE版本缺失

使用默认项目名配置

此为合宙IOT平台对应链接。

客户在向合宙采购4G模块时,如果采购人员没有告知这批模块应该放在IOT平台的哪个产品下,合宙则会以采购人的手机号为账号,默认密码888888

618 芯片平台的模块,需要创建一个"Air7XXE标准模块"的项目。

716s/718p 芯片平台的模块,需要创建一个"Air7XXF标准模块"的项目

注意:以上方命名创建的项目为对应芯片平台模块 默认OTA请求升级的项目。并将此次所采购的所有模块都放在这个项目下,如果模块没在该项目下或者需要更换项目请联系合宙工作人员。
在这里插入图片描述

在这里插入图片描述

配置流程

以780ET为例,获取[AT固件版本](AirM2M_EC718-EC716_AT 发行版 - Gitee.com),下载到本地后解压并将dfota.bin文件上传到dfota中。

  1. 在IOT平台-我的项目页面点击固件列表
    在这里插入图片描述

  2. 创建固件,上传对应文件

在这里插入图片描述

在这里插入图片描述

  1. 上传好文件之后会自动生成固件名称,不需要修改

在这里插入图片描述

  1. 如果配置“升级全部设备”选项为“是”,则无需配置IMEI,按照上述内容配置即可。如果选择“否”,还需添加IMEI,如下图所示。

在这里插入图片描述

AT指令触发升级

手动触发升级

如下模块从V1015升级到V1016的流程

在这里插入图片描述

自动升级(默认24小时内自动触发)

自动升级是模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下

在这里插入图片描述

可以通过AT+UPGRADE=“PERIOD”,60设置自动升级时间,这里设置为60s来作为演示

在这里插入图片描述

使用自建项目名配置

客户从合宙采购完模块之后,注册登录合宙IOT平台,在IOT平台我的项目页面新建一个项目,并要求合宙工作人员将这批模块放入新建的项目中(客户本身无权限进行操作)。本示例就以“远程升级模块”为项目名进行远程升级。

在这里插入图片描述

该项目下的模块可通过设备列表查看
在这里插入图片描述

在这里插入图片描述

配置流程

以780ET为例,获取[AT固件版本](AirM2M_EC718-EC716_AT 发行版 - Gitee.com),下载到本地后解压并将dfota.bin文件上传到dfota中。

  1. 在IOT平台-我的项目页面点击固件列表

在这里插入图片描述

  1. 创建固件,上传对应文件

在这里插入图片描述
在这里插入图片描述

  1. 上传好文件之后会自动生成固件名称,不需要修改

在这里插入图片描述

  1. 如果配置“升级全部设备”选项为“是”,则无需配置IMEI,按照上述内容配置即可。如果选择“否”,还需添加IMEI,如下图所示。

在这里插入图片描述

AT指令触发升级

手动触发升级
  1. 通过下方图示操作,找到对应项目的项目Key。

在这里插入图片描述

  1. 复制项目Key,用AT+UPGRADE=“KEY”,ProductKey进行配置,该命令会参数会写入nv,掉电保存,其中ProductKey为对应项目Key。
    然后再用AT+UPGRADE进行远程升级。

在这里插入图片描述

自动升级(默认24小时内自动触发)

自动升级是模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下

在这里插入图片描述

可以通过AT+UPGRADE=“PERIOD”,60设置自动升级时间,这里设置为60s来作为演示

在这里插入图片描述

自定义服务器升级

  • 使用自己的服务器来升级模块和使用iot平台升级最重要的区别是下载固件的来源不同。
  • 其实FOTA的过程是新老版本生成差分包再进行升级的过程,那么这个差分的过程在哪里呢?使用合宙iot平台升级,差分的过程在iot服务器后台,那使用自己的服务器该怎么办呢?答案当然是自己来完成差分的过程,放在服务器等待模块来下载。

差分包生成工具

​ 手动生成差分包的过程使用doc平台工具中的差分工具 差分工具

blog.csdnimg.cn/direct/64404bdf900f4b20874e15aace9c4fea.png#pic_center
在这里插入图片描述

下载生成的差分文件

在这里插入图片描述

  • 本次我们从V1015升级到V1016需要准备各自的bin远程升级文件,上传完成后等待差分完成,下载得到的差分文件,这里将名字改为dfota_final_AirM2M_AirM2M_V1016.bin

配置流程

  • 把生成的固件放到服务器上,然后通过**AT+UPGRADE=“URL”,“”**指令设置对应的URL链接。
  • 配置完差分包URL地址成功后,AT+UPGRADE 主动触发升级。
  • 升级流程如下,这里选择了USB的另外一个端口,可以上报模块的升级过程:

服务器上,然后通过**AT+UPGRADE=“URL”,“”**指令设置对应的URL链接。

  • 配置完差分包URL地址成功后,AT+UPGRADE 主动触发升级。
  • 升级流程如下,这里选择了USB的另外一个端口,可以上报模块的升级过程:

在这里插入图片描述

恭喜你成功从V1015版本通过自己服务器搭建FOTA服务的方式升级到了更新的V1016版本!

咨询电话合宙市场部葛理想1372324537

企业微信

在这里插入图片描述


http://www.niftyadmin.cn/n/5561061.html

相关文章

Linux【文件权限的理解】

1. linux的发展史 首先在学习linux之间,我们要问自己几个问题,linux从哪里来,为什么会出现,它的出现代表着什么。 linux的前身unix Multics 和 UNIX 的起源: Multics 是一个由通用电器公司、贝尔实验室和麻省理工学院…

Bash 学习摘录

文章目录 1、变量和参数的介绍(1)变量替换$(...) (2)特殊的变量类型export位置参数shift 2、引用(1)引用变量(2)转义 3、条件判断(1)条件测试结构&#xff08…

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 四、运行测试1、打开软件 安装完成!!! 效果 一…

沙尘传输模拟教程(基于wrf-chem)

沙尘传输模拟教程(基于wrf-chem) 文章目录 沙尘传输模拟教程(基于wrf-chem)简介实验目的wrf-chem简介 软件准备wps、wrf-chem安装conda安装ncl安装ncap安装 数据准备气象数据准备下垫面数据准备 WPS数据预处理namelist.wps的设置geogrid.exe下垫面处理ungrib.exe气象数据预处理…

战起来!做自己!不冲突——早读(逆天打工人爬取热门微信文章解读)

如果有个乞丐指着你说,你穿的真难看,你会理他吗? 引言Python 代码第一篇 洞见 如何洗掉身上的穷味?第二篇结尾 引言 昨天晚上下围棋 发现一个很好玩的事情 战斗是很爽的 有两个假设 假如对面也是喜欢战斗的 那么就是一起比拼计算…

如何把一个antdesign组件的在react中的class类写法新的函数式组件写法?

当我们使用react的比较新的18.x版本&#xff0c;我们还用的typescript,我们可能会比较习惯使用(const test: React.FC<PropsWithChildren<FormProps >>) interface MenuProps{ modalVisible: boolean; onCancel: () > void; onConfirm: (form: any) > void;…

免费图床之选:高速 CDN 护航,稳定可靠,卓越体验,加载如风,长期使用佳选

免费图床之选&#xff1a;高速 CDN 护航&#xff0c;稳定可靠&#xff0c;卓越体验&#xff0c;加载如风&#xff0c;长期使用佳选 在如今的互联网时代&#xff0c;图片的存储和加载速度对于网站运营者、博主以及各类需要频繁使用图片的用户来说至关重要。今天&#xff0c;就为…

设计模式使用场景实现示例及优缺点(行为型模式——责任链模式)

在一个遥远的森林深处&#xff0c;有一个和谐的动物王国。这个王国里的动物们都有各自的职责&#xff0c;大家相互合作&#xff0c;共同维护着森林的和平与繁荣。 一天&#xff0c;森林里来了一只迷路的小兔子&#xff0c;她焦急地四处张望&#xff0c;不知道该怎么办。于是&am…