# 安装Betaflight

## 如何在飞控上安装Betaflight固件

使用Betaflight配置程序，选择“固件烧写工具”选项卡，然后选择以两种不同方式（在线或本地固件）中的一种进行刷新。

1. 加载在线固件。 选择左上角的飞控目标和版本。按屏幕右下方的“从网络加载固件”。
2. 加载本地固件。 按下“从本地电脑加载固件”按钮，您现在可以浏览含有Betaflight固件文件的文件夹。选择与您的飞行控制器匹配的正确固件。\
   &#x20; ![](https://2819451313-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4XZa_Xo8uuKqMMASip%2F-M4akNQiAc9vE7XC0UbS%2F-M4apvclsGho9tRtxVxw%2Fflash-firmware.png?alt=media\&token=f19f5fd8-1d9c-474b-8c43-92c9ad16b2cc)  \
   不点选任何选项（默认）并按下“烧写固件”。配置程序工具将擦除飞控芯片，并会将所选固件刷写到您的飞控中。以上操作都假定您已安装了正确的驱动程序，请继续阅读以获取详细信息。

所有的飞控基本上都使用两种USB设备：

1. 使用Silabs CP2103 USB芯片。 需要安装Silabs CP210x驱动程序。用于Bootloader模式下刷写固件和普通配置模式。在BF配置程序中显示为“COMx”设备。 <http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>
2. 使用MCU集成的STM32 VCP USB接口。 2.1.在Bootloader模式下需要使用WinUSB驱动进行固件烧录。可以由Zadig或ImpulseRC DFU工具进行安装。在BF配置程序中将显示为“DFU”设备。 2.2.需要STM VCP驱动程序来与BF配置程序进行连接预配置，在BF配置程序中显示为“COMx”设备。
3. CC3D是一个特例。 它是使用第二种USB设备的飞控，但由于其是基于STM32F1芯片的飞控，因此缺少2.1的DFU接口。所有基于F1的飞控仅具有基于串行UART的Bootloader接口。CC3D需要在UART1上使用外部USB串行适配器来进入Bootloader模式刷写固件和连接配置程序。（或烧录辅助Bootloader，比如OP自己的Bootloader。）

基于原生USB接口的飞控

请注意，此章节仅针对那些不使用硬件串行适配器的飞控 - 例如FTDI或Silabs CP210x。

可以使用这个方便的工具修复驱动程序问题： [https](https://impulserc.blob.core.windows.net/utilities/ImpulseRC_Driver_Fixer.exe) : [//impulserc.blob.core.windows.net/utilities/ImpulseRC\_Driver\_Fixer.exe](https://impulserc.blob.core.windows.net/utilities/ImpulseRC_Driver_Fixer.exe)

它需要使用.NET框架V4.5。可以在这里下载： [https](https://www.microsoft.com/en-au/download/details.aspx?id=30653) : [//www.microsoft.com/zh-cn/download/details.aspx?id=30653](https://www.microsoft.com/en-au/download/details.aspx?id=30653)

如果您在连接至飞控时出现问题：\
[![](https://img.youtube.com/vi/m4ygG6Y5zXI/0.jpg)](https://www.youtube.com/watch?v=m4ygG6Y5zXI)

### Windows下使用DFU模式进行固件烧录 - USB DFU

如果您使用Windows系统，并需要使用DFU来启动Bootloader模式，请确保您有Zadig工具。说明如下：

1. 下载Zadig：[ http://zadig.akeo.ie/](https://pitronic.gitbook.io/betaflight/master)
2. 将设备置于DFU模式。如果这是第一次烧写Betaflight，则需要在插入USB之前短路BL或Boot（或按住BOOT按钮）。
3. 打开Zadig。
4. 选项 -> 列出所有设备。
5. 单击下拉框，然后单击列出的设备STM32 BOOTLOADER\
   &#x20; ![](https://2819451313-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4XZa_Xo8uuKqMMASip%2F-M4akNQiAc9vE7XC0UbS%2F-M4avoUU1mJuynvMV9Hx%2Fzadig-dfu.png?alt=media\&token=29d6e736-6a6b-49f2-b53e-a846459d9eec)&#x20;
6. 在绿色箭头右侧的框中，选择WinUSB（v6.1.7600.16385）
7. 单击安装驱动程序。
8. 安装完成后，重新启动计算机（在重启这一点上，您可以作弊，只需要确保浏览器重启，但这样并不能保证其仍能正常工作）。如果重启期间USB电源仍然有输出，飞控应保持在DFU模式下。如果重启导致USB断电，请再次执行步骤2。
9. 打开Betaflight配置程序。
10. 转到“固件烧录工具”页面，选择“无重启序列”。
11. 在F4飞控上，禁用“全盘擦除”。烧录完成后可以在配置器中使用“重置为默认值”。
12. 点击“从本地电脑加载固件”。
13. 浏览并选择适当的固件。
14. 单击“烧录固件”。
15. 飞控板指示灯应该开始闪烁。配置程序底部进度条首先指示擦除，然后是烧录，最后是验证。
16. 烧录完成后，您的飞控将重新启动，但是您可能需要安装STM VCP驱动程序（请参见下文）以使Betaflight配置程序与飞控通信。

### 在Windows下安装STMicro虚拟串口（VCP）驱动程序

许多F7，F4（REVO，ALIENFLIGHTF4，BLUEJAYF4等）和某些F3飞控（SPRacingFEVO，STM32DISCOVERY）都是用STM32虚拟串口（VCP） - CDC 串行方式。这样可以在连接USB的同时，使用飞控板上的UART。这要求安装STM VCP驱动程序，以便电脑将VCP识别为飞控板上的附加通讯端口。**注意**：这与安装USB串行驱动程序，例如FTDI或Silabs CP210x，相类似。

可以在这里下载STM32 VCP驱动程序：<http://www.st.com/web/zh/catalog/tools/PF257938>

**注意**：下载并安装之后，它并没有安装驱动程序，只是解压缩了所选择的驱动程序。请找到安装目录，然后运行与您系统位数相符的EXE文件。

例如`C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win8\`这里会显示两个文件。一个用于64位系统`dpinst_amd64.exe`，一个用于32位系统`dpinst_x86.exe`。

### Windows 10

许多情况下，上述操作可能无效。从Silabs安装虚拟COM端口驱动程序将解决这些问题： <https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>

### 特定平台：Linux

Linux并没有特定于某个产品的“设备驱动程序”的概念，因此不需要安装驱动程序。但是若要使Betaflight配置程序在Linux上工作，需要执行下面几个步骤：

Linux需要udev规则，以允许用于对USB设备进行写入访问。如果您不熟悉udev规则，请放心，我们将使用命令行（CLI）界面逐步知道您完成该过程。

**第一步**：

由于我们将使用CLI，因此只需将此命令复制并粘贴到您的中断中，它将为您创建所需的文件：

`(echo '# DFU (Internal bootloader for STM32 MCUs)'`  \
`echo 'ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"') | sudo tee /etc/udev/rules.d/45-stdfu-permissions.rules > /dev/null`

创建的文件是`/etc/udev/rules.d/45-stdfu-permissions.rules`，当飞控处于DFU模式时使用。

**第二步**：

确保您有可以以飞DFU模式访问飞控的权限（请参考：<https://github.com/GoldenCheetah/GoldenCheetah/wiki/Allowing-your-linux-userid-permission-to-use-your-usb-device>）

注意：此示例假定您已经知道USB设备的设备名称，且您的用户ID具有sudo权限。

在此示例中，我们的Linux用户ID是user，我们在名为machine的服务器上。

我们的USB设备叫做/dev/ttyUSB0

检查设备的当前权限和所有者/组。

`[user@machine ~]$ ls -la /dev/ttyUSB0`  \
`crw-rw----. 1 root dialout 188, 0 Apr 3 21:16 /dev/ttyUSB0`

对于此配置，所有者为root，组为dialout，并且所有者/组都具有读取/写入权限。

您需要做的是是您的登录用户ID称为与USB设备相关联的组的一部分。

对于这种情况，我们使用usermod命令将我们的用户ID：user添加到dialout组中。此命令需要root权限才能运行。

\[user\@machine \~]$ sudo usermod -a -G dialout user

您将需要注销，然后重新登录。现在您应该可以访问该设备了。

**解决安装问题**：

如果您在连接开发板后看到ttyUSB设备立刻消失，则有可能是ModemManager服务（它为您处理网络连接）认为它是GSM调制解调器。如果发生这种情况，可以使用一下命令来禁用该服务：

`sudo systemctl stop ModemManager.service`

如果您的系统缺少systemctl命令，请使用在您的系统上可用的任何灯效命令来禁用该服务。如果需要进行蜂窝网络连接，则可以将设备ID添加到黑名单配置文件中，以阻止ModemManager接触设备，但这不在Betaflight文档的范围之内。

有时，在其他程序（配置脚本，ESC固件上传器）使用了您的飞控端口（和/dev/ttyUSB0或/dev/ttyACM0）之后，更改了端口的模式而不重置它们。即使重新插拔USB线缆，也无法使配置程序连接到飞控。在这种情况下，一下命令会将端口设置重置为默认值：

`stty sane -F /dev/<your port>`

## 诊断您的CPU是否已经报废或仅仅是缺少正确的固件（蓝色LED熄灭）

CPU已烧毁与缺少正确固件的CPU两者之间表现症状几乎相同，不同之处在于无法将固件烧录至已烧毁的CPU上。CPU可能会出厂即烧毁，或者在首次上电时因制造缺陷而烧毁，或者由于因不正确的连接电路板（例如，将5V电源连接至UART端口）而烧毁。当CPU烧毁时，您可能会看到MCU升起魔术般的烟雾，也可能不会。

STM32芯片需要3.3V的电源才能正常运行，因此需要使用板载专用稳压器，才能在飞行期间为CPU提供稳定的电源。通常来说，由于这是板上唯一一个需要3.3V电压的元件，因此可以使用一下两种方法确定CPU是否已烧毁：

* 使用万用表测量飞控上的3.3V焊盘与任何接地引脚之间的电阻。如果CPU正常共偶作，则电阻应在数千欧姆范围内。如果CPU挂了，电阻将接近0（1-3Ω）。
* 如果没有万用表，请在飞控上找到3.3V稳压器，然后将其连接到电源（即USB）。如果温度仍然很低（约30℃），则CPU可能只是缺少正确的固件。如果温度迅速升高（80 - 150℃），则CPU可能已烧毁。

视频教程：

[![](https://i.ytimg.com/vi/qQ86-GsXVQE/hqdefault.jpg)](https://www.youtube.com/watch?v=qQ86-GsXVQE)

## 其他教程链接

下面的视频链接提供了有关Betaflight的非常全面的使用指南以及有关配置的最佳实践指导：

<http://www.youtube.com/watch?v=xSzO6HP6yzs>

Joshua Bardwell有关Betaflight配置程序的新视频：

<https://www.youtube.com/watch?v=VAHUZZXIn9o>

此处提供有关如何使用Betaflight刷写飞控的分步指南： <http://quadquestions.com/blog/2015/12/25/betaflight_flashing/>

如何在CC3D上刷写Betaflight： <http://www.rcgroups.com/forums/showpost.php?p=34196999&postcount=21477>

在常见问题页面上有一个名为“我该下载哪个HEX文件并刷到我的飞控里”的主题，该主题旨在帮助人们正确选择在飞控板上使用的固件。

本站还可以从赞助商列表内查看部分飞控设备制造商及其相关信息。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pitronic.gitbook.io/betaflight/getting-started/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
