3、飞控固件与地面站的关系:什么是固件?固件版本与地面站版本的匹配。如何查看当前固件版本。

很多刚接触飞控的朋友,上来就问:「我该刷哪个固件?」「为什么地面站连不上飞控?」

说白了,这些问题都绕不开一个核心概念——固件。

今天我们就把它彻底讲清楚。

3.1 什么是固件?

固件,你可以理解为飞控板的「操作系统」。它是一段烧录在飞控芯片里的程序代码,负责解读传感器数据、执行控制算法、输出PWM信号给电机。

我习惯这么比喻:飞控硬件是身体,固件是灵魂。没有固件的飞控,就是一块会发光的电路板,什么都干不了。

固件的本质:

  • 一段固化在硬件中的软件代码
  • 负责飞控的所有核心逻辑(姿态解算、位置控制、导航)
  • 用户可以通过地面站进行参数调整,但无法直接修改固件源码(除非你重新编译)

目前主流的开源飞控固件有:

  • ArduPilot(APM固件):功能最全,支持固定翼、多旋翼、无人车、无人船
  • PX4:代码结构清晰,学术圈和商业项目用得比较多
  • Betaflight / iNav:穿越机领域的主流选择

嗯,这里要注意:不同固件对硬件平台有要求。比如ArduPilot主要跑在Pixhawk系列硬件上,Betaflight则主要针对F4/F7飞控。

3.2 固件版本与地面站版本的匹配

这是新手最容易踩坑的地方。

你想想看,地面站是「遥控器界面」,固件是「底层大脑」。两者之间通过MAVLink协议通信。如果版本不匹配,就像你用Windows 11的遥控器去控制一台Windows 98的电脑——能连上才怪。

我曾经遇到过:一个学员拿着Mission Planner 1.3.70去连一个刷了ArduCopter 3.2.1的老Pixhawk,结果参数列表全是乱码,校准页面直接崩溃。折腾了两天,最后发现是地面站版本太新,旧固件不兼容新协议。

所以,版本匹配是硬道理。我一般遵循这个原则:

地面站 推荐固件版本范围 备注
Mission Planner 1.3.70+ ArduPilot 4.0.x ~ 4.5.x 最新版兼容性最好
Mission Planner 1.3.50 ~ 1.3.69 ArduPilot 3.6.x ~ 4.3.x 中间版本,注意协议差异
QGroundControl 4.0+ PX4 1.11.x ~ 1.14.x QGC对PX4支持最完善
Betaflight Configurator 10.8+ Betaflight 4.2.x ~ 4.4.x 穿越机专用

我的个人习惯:每次拿到新飞控,先不急着刷固件。先连上地面站,看看当前固件版本,再去官网查对应的地面站版本。如果地面站提示「固件版本过旧,建议升级」,我会先备份参数,再升级。

为什么会这样?因为固件升级往往伴随着参数结构的变化。旧参数在新固件下可能被重置或报错。我见过有人升级后没备份参数,结果整机PID全部归零,试飞时直接翻车。

3.3 如何查看当前固件版本

这个操作其实很简单,但不同地面站入口不一样。我分别说一下:

3.3.1 Mission Planner(APM固件)

  1. 用USB线连接飞控和电脑
  2. 打开Mission Planner,选择正确的COM口和波特率(通常115200)
  3. 点击右上角「Connect」按钮
  4. 连接成功后,看左上角标题栏——会直接显示固件类型和版本号
示例显示:
ArduCopter V4.3.2 (f103e7a3)
—— 这就是固件版本

另外,你也可以在「初始设置」→「安装固件」页面,看到当前已安装的固件版本。

3.3.2 QGroundControl(PX4固件)

  1. 连接飞控,打开QGC
  2. 点击左上角「Q」图标 → 选择「车辆设置」
  3. 在左侧菜单找到「固件」选项
  4. 页面顶部会显示当前固件版本和构建时间
示例显示:
PX4 Autopilot v1.13.3 stable
—— 版本号一目了然

3.3.3 Betaflight Configurator

  1. 连接飞控,打开Betaflight Configurator
  2. 选择端口,点击「Connect」
  3. 连接后,主界面右上角直接显示固件版本
示例显示:
Betaflight / STM32F405 (S4) 4.3.1 Nov 19 2022 / 22:47:12 (e7a3f1c)
—— 包含芯片型号和编译时间

注意:如果连接后地面站没有任何版本信息显示,或者显示「Unknown」,大概率是以下原因:

  • 波特率设置错误(试试57600或921600)
  • USB驱动没装好(Windows上常见的是CP210x或CH340驱动)
  • 飞控处于bootloader模式(需要重新上电)

3.4 固件与地面站的「握手」过程

为了让你更直观地理解,我画了一张流程图:

固件与地面站握手流程 固件与地面站握手流程 飞控上电 固件初始化(加载参数) 等待地面站连接 地面站发送MAVLink请求 固件返回版本号 → 匹配校验 匹配成功 地面站正常显示参数 可进行调参和飞行 匹配失败 地面站提示版本不兼容 需要升级固件或地面站

你看,整个流程其实就五步。最关键的就是最后一步——版本校验。如果固件版本和地面站版本不匹配,地面站要么拒绝连接,要么功能异常。

避坑指南:我建议你每次拿到新飞控,第一件事就是查看固件版本,然后去官网下载对应版本的地面站。不要盲目追求最新版。最新版地面站可能已经放弃了对旧固件的支持。

举个例子:Mission Planner 1.3.80之后,不再支持ArduPilot 3.5.x以下的固件。如果你手里有个2018年的老Pixhawk,刷的是3.4.6,那就只能用1.3.70左右的老版本地面站。

3.5 小结

今天的内容其实就三个核心点:

  • 固件是什么——飞控的操作系统,硬件和地面站之间的桥梁
  • 版本匹配——固件和地面站版本必须对应,否则无法正常工作
  • 查看版本——不同地面站入口不同,但都很简单

嗯,这些基础概念搞清楚了,后面配置飞行模式的时候,你才知道自己到底在调什么。不然出了问题,连是固件的问题还是地面站的问题都分不清。