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

简介

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.mzph.cn/news/873128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全相关竞赛比赛

赛事日历(包含全国所有网络安全竞赛) https://datacon.qianxin.com/competition/competitions https://www.ichunqiu.com/competition/all 全国网络安全竞赛 名称链接全国大学生信息安全竞赛http://www.ciscn.cn/信息安全与对抗技术竞赛(In…

PCB(印制电路板)制造涉及的常规设备

印制电路板(PCB)的制造涉及多种设备和工艺。从设计、制作原型到批量生产,每个阶段都需要不同的专业设备。以下是一些在PCB制造过程中常见的设备: 1. 计算机辅助设计(CAD)软件: - 用于设计PC…

深度解析 containerd 中的 CNI 插件

CNI(Container Network Interface)插件是独立的可执行文件,遵循 CNI 规范。Kubernetes 通过 kubelet 调用这些插件来创建和管理容器的网络接口。CNI 插件的主要职责包括网络接口的创建和删除、IP 地址的分配和回收、以及相关网络资源的配置和…

C语言 分割链表

题目来源: 代码部分,参考官方题解的写法: // 思路: 就是把原始链表,拆分为2部分,最后再拼接一下。struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* small malloc(sizeof(struct ListNode));struct ListNode*…

Memcached介绍与使用

引言 本文是笔者对Memcached这个高性能分布式缓存组件的实践案例,Memcached是一种高性能的分布式内存对象缓存系统,用于减轻数据库负载,加速动态Web应用,提高网站访问速度。它通过在内存中缓存数据和对象来减少读取数据库的次数&…

IAR嵌入式开发解决方案已全面支持芯科集成CX3288系列车规RISC-V MCU,共同推动汽车高品质应用的安全开发

中国上海,2024年7月16日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与芯科集成电路(以下简称“芯科集成”)联合宣布,最新版本IAR Embedded Workbench for RISC-V 3.30.2功能安全版已全面支持芯科集成CX3288系列车规RISC-V…

解决vue多层弹框时存在遮挡问题

本文给大家介绍vue多层弹框时存在遮挡问题,解决思路首先想到的是找到对应的遮挡层的css标签,然后修改z-index值,但是本思路只能解决首次问题,再次打开还会存在相同的问题,故该思路错误,下面给大家带来一种正…

Vue3 快速入门 (四) : 使用路由实现页面跳转

1. 本文环境 Vue版本 : 3.4.29Node.js版本 : v20.15.0系统 : Windows11 64位IDE : VsCode 2. vue 路由 Vue Router 是 Vue 官方的客户端路由解决方案。 客户端路由的作用是在单页应用 (SPA) 中将浏览器的 URL 和用户看到的内容绑定起来。当用户在应用中浏览不同页面时&#…

中间件的理解

内容来源于学习网站整理。【一看就会】什么是前端开发的中间件?_哔哩哔哩_bilibili 每日八股文~白话说mq,消息中间件_哔哩哔哩_bilibili 例如: 1)两个人打电话,中间的通信网络就是中间件。 2)菜鸟驿站&…

npm、pnpm、yarn使用淘宝镜像

文章目录 npmpnpm安装方法Windows其它 设置镜像 yarn npm # 查询当前使用的镜像源 npm get registry# 设置为淘宝镜像源 npm config set registry https://registry.npmmirror.com/# 还原为官方镜像源 npm config set registry https://registry.npmjs.org/pnpm 安装方法 Wi…

MyBatis中的优点和缺点?

优点: 管 1.基于 SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL单独写,解除 sq!与程序代码的耦合,便于统一。 2.与JDBC 相比,减少了 50%以上的代码量,消除了 JDB…

流式数据库 |RisingWave 的架构、容错、数据持久化

在上一篇文章中,已经为大家分享了 RisingWave 相关核心概念和术语。本文将在此基础上为大家介绍 RisingWave 的架构、容错以及数据持久化。 1. 架构 RisingWave 的架构如下图所示。它由三个主要部分组成:Meta 节点、Compute 节点和 Compactor 节点。 …

【代码随想录算法训练营第42期 第一天 | LeetCode704. 二分查找、27. 移除元素】

代码随想录算法训练营第42期 第一天 | LeetCode704. 二分查找、27. 移除元素 一、704. 二分查找 解题代码C&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int l 0, r nums.size() - 1;while(l < r){int mid l r 1 >…

linux环境安装mongoDB

一、安装单体mogodb 目标&#xff1a;在Linux中部署一个单机的MongoDB&#xff0c;作为生产环境下使用。 提示&#xff1a;和Windows下操作差不多。 步骤如下&#xff1a; &#xff08;1&#xff09;先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。 &#xff08;2&…

SpringBoot Bean管理

我们知道可以通过Spring当中提供的注解Component以及它的三个衍生注解&#xff08;Controller、Service、Repository&#xff09;来声明IOC容器中的bean对象&#xff0c;同时我们也学习了如何为应用程序注入运行时所需要依赖的bean对象&#xff0c;也就是依赖注入DI。 本篇主要…

c++初阶知识——内存管理与c语言内存管理对比

目录 前言&#xff1a; 1.c&#xff0b;&#xff0b;内存管理方式 1.1 new和delete操作自定义类型 2.operator new与operator delete函数 2.1 operator new与operator delete函数 3.new和delete的实现原理 3.1 内置类型 3.2 自定义类型 new的原理 delete的原理 new…

Oracle12c及更高版本中引入的新特性CDB数据库容器和PDB可插拔数据库

Oracle的CDB&#xff08;Container Database&#xff0c;数据库容器&#xff09;和PDB&#xff08;Pluggable Database&#xff0c;可插拔数据库&#xff09;是Oracle 12c及更高版本中引入的新特性&#xff0c;旨在支持多租户环境&#xff08;Multitenant Environment&#xff…

python取色器

本文使用创作助手。 要在Python中识别图片的颜色&#xff0c;你可以使用PIL&#xff08;Python Imaging Library&#xff09;库。以下是一种基本的方法来识别图片中的颜色&#xff1a; from PIL import Imagedef get_image_colors(image_path):# 打开图片image Image.open(i…

gite+picgo+typora打造个人免费笔记软件

文章目录 1️⃣个人笔记软件2️⃣ 配置教程2.1 使用软件2.2 node 环境配置2.3 软件安装2.4 gite仓库设置2.5 配置picgo2.6 测试检验2.7 github教程 &#x1f3a1; 完结撒花 1️⃣个人笔记软件 最近换了环境&#xff0c;没有之前的生产环境舒适&#xff0c;写笔记也没有劲头&…

图——图的遍历(DFS与BFS算法详解)

前面的文章中我们学习了图的基本概念和存储结构&#xff0c;大家可以通过下面的链接学习&#xff1a; 图的定义和基本术语 图的类型定义和存储结构 这篇文章就来学习一下图的重要章节——图的遍历。 目录 一&#xff0c;图的遍历定义&#xff1a; 二&#xff0c;深度优先…