专栏/开源飞控固件烧录教程(Ardupilot/PX4/Betaflight/INAV)

开源飞控固件烧录教程(Ardupilot/PX4/Betaflight/INAV)

2024年05月11日 13:54--浏览 · --点赞 · --评论
粉丝:1808文章:13

MicoAir743是由微空科技设计并生产的一款高性能飞控,采用480M主频的STM32H743主控,BMI088&BMI270双IMU,并板载DPS310气压计和IST8310磁力计。

MicoAir743飞控

MicoAir743支持四种开源飞控固件:Ardupilot、PX4、Betaflight、INAV

飞控可以随意更换烧录四种固件,不同固件的烧录方式有些许差别,也有共同之处,下面介绍这四种开源固件在微空MicoAir743飞控上的烧录方式,也同样适用于其它型号的飞控。

注意STM32的DFU模式是固化在ROM里的,不会丢失,所以不管什么情况下都不会刷成砖,可以放心大胆烧录。


相关软件工具

  • zadig-2.8 (用于安装DFU驱动)

    https://micoair.com/tempfile/zadig-2.8.exe

  • STM32CubeProgrammer

    https://www.st.com/en/development-tools/stm32cubeprog.html#get-software

  • betaflight-configurator (10.10.0)

    https://github.com/betaflight/betaflight-configurator/releases

  • Mission Planner

    https://ardupilot.org/planner/docs/mission-planner-installation.html

  • QGroundControl

    http://qgroundcontrol.com/downloads/

  • inav-configurator

    https://github.com/iNavFlight/inav-configurator/releases

飞控固件下载

  • MicoAir743

    https://github.com/micoair/MicoAir743/tree/main/Firmware

  • MicoAir405v2

    https://github.com/micoair/MicoAir405v2/tree/main/Firmware

  • MicoAir405Mini

    https://github.com/micoair/MicoAir405Mini/tree/main/Firmware

Ardupilot从4.6版本以后开始官方支持以上三款飞控,可以在Ardupilot官网直接下载各种机型的固件:https://firmware.ardupilot.org/

Ardupilot官网下载飞控固件

也可以使用自定义固件功能,根据自己的需求在线定义固件功能并下载回本地。

https://custom.ardupilot.org/add_build

自定义生成Ardupilot固件


飞控DFU模式和驱动安装

准备好一个MicoAir743飞控和USB-Type-C数据线。

先按下飞控USB接口旁的BOOT按钮,再插入USB数据线连接电脑。待飞控上电2秒后即可松开按钮。

进入DFU模式

打开zadig-2.8,Options菜单栏里勾选“List All Devices”。

zadig-2.8

点开设备列表,选择“DFU in FS Mode”。如果找不到这一项,请确认飞控插入USB前BOOT按钮处于按下状态,或者检查一下USB数据线是否能正常工作。

DFU设备

点击“Install Driver”,安装WinUSB驱动。

安装驱动

等待几分钟,驱动安装完成。此时打开windows设备管理器,可以找到”DFU in FS Mode”设备,说明成功识别到飞控DFU了。

DFU设备

飞控进入DFU模式后,开始按照下面的说明来烧录各类固件。


Betaflight&INAV固件烧录

打开betaflight-configurator,右上角应该会显示“DFU-DFU in FS Mode“,说明成功识别飞控。

点击右下角的”Load Firmware[Local]”,选择电脑本地的Betaflight固件文件,再点击“Flash Firmware“,开始烧录固件到飞控板,等待数分钟后固件将会烧录完毕。

betaflight-configurator
加载固件并烧录

只要是Hex文件,都可以通过这个方式烧录到飞控。所以可以使用同样的步骤,烧录INAV固件到MicoAir743飞控。


Ardupilot固件烧录

Ardupilot固件烧录分两种情况:

1. 飞控板未烧录过固件或者前面运行的不是Ardupilot固件

需要用inav-configurator或者STM32CubeProgrammer烧录整合了bootloader的xxx_with_bl.hex文件。烧录过程可能会持续数分钟。

 

下载with_bl.hex固件回本地

下载.hex固件

使用inav-configurator烧录.hex固件

inav-configurator


使用STM32CubeProgrammer烧录.hex固件

下载安装STM32CubeProgrammer并打开,先确认飞控已进入DFU模式,然后在软件界面右上方选择“USB”连接方式,再点击右侧的刷新按钮,顺利的话将会识别到“USB1”,再点击“Connect”连接飞控。

STM32CubeProgrammer

左上方点击“Open file”,选择本地的xxx_with_bl.hex文件,然后点击”Download”,等待数分钟后完成烧录。

烧录固件


2. 飞控板已经运行了Ardupilot固件

这个情况下可以直接在Mission Planner上加载.apj文件并烧录到飞控。

飞控先断开与电脑的连接,再打开Mission Planner地面站软件,进入到Install Firmware界面,点击“Load custom firmware”,选择本地的.apj固件文件。

Mission Planner

数秒后MP读取固件完毕,弹出提示框,提示点击OK后再插入飞控板。

点击OK后再插入飞控板

点击OK后,再用usb数据线连接飞控到电脑,Mission Planner将会自动识别飞控并开始写入固件,大约十秒左右可以烧录完成。

开始烧录固件


PX4固件烧录

如果飞控板原先运行的不是PX4固件,那么需要先烧录PX4的Bootloader。

飞控进入DFU模式,打开STM32CubeProgrammer软件连接飞控。

点击“Open file”打开本地的xxx_PX4_bootloader.elf文件,再点击“Download”,Bootloader文件由于体积很小烧录速度会比较快,一般1-2秒可以烧录完成。

用STM32CubeProgrammer烧录PX4 Bootloader

烧录完成后飞控断开USB连接。

打开QGroundControl地面站软件,切换到Firmware页面,按照页面提示,用usb数据线连接飞控(注意这里不需要按boot按钮)。

QGroundControl

接入飞控后QGC自动识别,会弹出设置选项。勾选“高级设置”,下方选择“自定义固件”,再点击OK。

烧录自定义固件

在弹出的文件浏览界面选择下载回来的“xxx.px4”固件文件,点击打开,QGC开始将该固件烧录到飞控,大概会花费10秒左右。烧录完成后飞控自动重启且QGC会自动连接飞控。

开始烧录PX4固件


投诉或建议