BrainFPV RADIX 2 HD 飞控板在 ArduPilot 中的配置与固件烧写完全指南 📅 发布时间:2026/9/14 18:33:54 👁 浏览次数: BrainFPV RADIX 2 HD 飞控板在 ArduPilot 中的配置与固件烧写完全指南【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot导读本文以 ArduPilot 仓库中 RADIX2HD 板级定义 文档为主线系统讲解 BrainFPV RADIX 2 HD 高清数字 FPV 飞控板的硬件特性、串口与 PWM 引脚映射、电池监测、RC 输入配置以及通过 BrainFPV 专有 Bootloader 加载 ArduPilot 固件的三种途径。读完本文你将掌握如何在 ArduCopter 等机型上正确接线、通过BRD_ALT_CONFIG切换引脚复用并使用./waf构建工具链配合 BrainFPV Firmware Packer 生成可在 RADIX 2 HD 上运行的固件文件。一、硬件概览专为 HD FPV 打造的飞控RADIX 2 HD 是 BrainFPV 推出的飞控定位是配合高清数字FPV 图传系统的 First Person ViewFPV应用场景。从 hwdef.dat 的板级定义可以确认其核心硬件配置部件规格仓库依据主控 MCUSTM32H750xxH7 系列480 MHz 主频MCU STM32H7xx STM32H750xx、MCU_CLOCKRATE_MHZ 480晶振16 MHz 外部晶振OSCILLATOR_HZ 16000000IMUBosch Sensortec BMI270SPI1 接口ROTATION_ROLL_180IMU BMI270 SPI:bmi270 ROTATION_ROLL_180气压计Infineon DPS310I2C1地址 0x76BARO DPS310 I2C:0:0x76板载 Flash16 MBQUADSPI 接口120 MHzEXT_FLASH_SIZE_MB 16、QUADSPI1 SPEED_HIGH存储microSD 卡槽SDMMC1SDMMC1_*引脚定义串口6 路 UART USBBRD_ALT_CONFIG1 时可获得 7 路 UARTSERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 UART5 USART6 UART7PWM 输出10 路前 8 路支持 BDSHOT分布在两个 4-in-1 ESC 接口上TIM1/TIM2/TIM3/TIM4与TIM8输出定义总线1 路 I2CI2C1、1 路 CANCAN1支持 CAN FD 2 Mbit/sCANFD_SUPPORTED 2其他板载 RGB LED、外部蜂鸣器、USB Type-CBUZZER、LED_RED/GREEN/BLUE引脚定义供电方面板载 5 V / 1.5 A 稳压器为飞控和外部设备供电另有一路 9 V / 2 A 稳压器专供 HD FPV 图传系统可通过 Relay2 开关控制通断。电池直供范围为 3S–8S最高 35 V尺寸为 37 × 37 mm30.5 mm 孔距重量仅 7 g产地为美国且符合 NDAA 合规要求。从源码结构可以推断hwdef.dat中声明的FLASH_SIZE_KB 128与HAL_FLASH_PROTECTION 1表明内部 Flash 仅供 Bootloader 与保护用途而固件主体存放在 16 MB 外部 QUADSPI Flash起始地址 0x90400000见下文打包脚本这正是其需要使用专用 Bootloader 与定制固件格式的原因。二、引脚与串口映射Pinout UART Mapping官方引脚图存放在板级目录下板底图中可见 PWR:VBAT 跳线焊盘用于将电池电压监测与板载供电合二为一详见第五节电池监测的警告。2.1 串口分配RADIX 2 HD 的串口顺序在 hwdef.dat 中定义为OTG1 USART1 USART2 USART3 UART4 UART5 USART6 UART7与 ArduPilot 的SERIALn编号一一对应串口外设默认用途说明SERIAL0USBUSB 连接OTG1SERIAL1UART1MSP DisplayPort OSDDMA 使能接 HD 图传 OSDSERIAL2UART2GPSDMA 使能SERIAL3UART3RC 输入DMA 使能SERIAL4UART4ESC 遥测NODMASERIAL5UART5备用NODMASERIAL6UART6备用默认作为 PWM 9/10BRD_ALT_CONFIG1时切换为 UARTSERIAL7UART7备用RX 位于 HD 连接器上用于 RC 输入TX 未引出焊盘2.2 BRD_ALT_CONFIG 引脚复用机制SERIAL6 的引脚默认是 PWM 9/10 输出TX6/RX6 焊盘。在 hwdef.dat 中USART6 的 RX/TX 都标记了ALT(1)PC7 USART6_RX USART6 NODMA ALT(1) PC6 USART6_TX USART6 NODMA ALT(1)而 GPIO.cpp 中实现了setup_alt_config()当BRD_ALT_CONFIG 1时会依据 hwdef 中ALT(n)声明的备用配置表重新切换引脚功能。因此BRD_ALT_CONFIG 0默认PC6/PC7 作为 TIM8 的 PWM 9/10 输出BRD_ALT_CONFIG 1PC6/PC7 切换为 USART6 的 TX/RX使 SERIAL6 成为可用的第 7 路 UART。注意启用 UART6 后 PWM 9/10 将不可用二者属于互斥关系。2.3 I2C 与 CANI2C仅 I2C1PB6 SCL / PB7 SDA均带 PULLUP板载 DPS310 气压计挂在该总线上0x76。HAL_I2C_INTERNAL_MASK 0与AP_COMPASS_PROBING_ENABLED 1表明支持在此总线上探测外部罗盘。CAN单路 CAN1PD0 RX / PD1 TX且CANFD_SUPPORTED 2表明该板支持最高 2 Mbit/s 的 CAN FD 速率。三、PWM 输出与 BDSHOTRADIX 2 HD 共 10 路 PWM 输出前 8 路位于两个 4-in-1 ESC 接口上全部标记为BIDIR见 hwdef.dat支持双向 DShotBDSHOT遥测。构建脚本 chibios_hwdef.py 会为含BIDIR标记的板型生成HAL_WITH_BIDIR_DSHOT宏ArduPilot 据此启用 DShot 双向遥测能力实现位于 RCOutput_bdshot.cpp。PWM 通道按每 2 路一组同一组内的通道必须使用相同的配置与刷新率分组通道定时器/通道备注Group 1PWM 1–2TIM1 CH2/CH34-in-1 接口 AGroup 2PWM 3–4TIM2 CH1/CH34-in-1 接口 AGroup 3PWM 5–6TIM3 CH2/CH34-in-1 接口 BGroup 4PWM 7–8TIM4 CH2/CH34-in-1 接口 BGroup 5PWM 9–10TIM8 CH1/CH2TX6/RX6 焊盘与 SERIAL6 复用Group 5 的两路输出位于 TX6/RX6 焊盘上与 UART6 共用引脚对应上文 BRD_ALT_CONFIG 的互斥关系且这两路为NODMA模式。四、RC 输入默认情况下SERIAL3UART3用于 RC 输入。与 RC 接收机相连的 5 V 供电焊盘RX3 旁的 同样由 USB 供电这意味着在未接主电池的情况下也能安全、方便地进行接收机与飞控的配置调试。配合 defaults.parm 的出厂默认参数RADIX 2 HD 开箱即用的串口协议配置为# CRSF receiver on UART3 SERIAL3_PROTOCOL 23 RSSI_TYPE 3 # MSP DisplayPort OSD on UART1 OSD_TYPE 5 SERIAL1_PROTOCOL 42 # GPS on UART2 SERIAL2_PROTOCOL 5 # ESC Telemetry on UART4 SERIAL4_PROTOCOL 16 # 9V regulator switch, ON on boot RELAY2_DEFAULT 1这些协议编号与 AP_SerialManager.h 中的枚举一致5 GPS、16 ESC Telemetry、23 RCIN、42 MSP DisplayPort。在 AP_SerialManager.cpp 的初始化逻辑中SerialProtocol_RCIN会将 UART 注册给 RC 协议解析器AP::RC().add_uart()而 MSP DisplayPort 协议由 AP_MSP 模块接管 OSD 数据流。因此SERIAL323/RCIN默认对接 CRSF 协议接收机RSSI_TYPE 3表示从 CRSF 链路读取 RSSISERIAL142/MSP DisplayPort驱动 HD 图传的 OSD 显示OSD_TYPE 5启用 MSP OSDSERIAL416/ESC Telemetry读取 4-in-1 ESC 的遥测数据RELAY2_DEFAULT 1保证上电即开启 9 V 稳压器为 HD FPV 图传系统供电。如需使用其他 RC 协议如 SBUS、ELRS将对应串口的SERIALn_PROTOCOL设置为 23 即可ArduPilot 的 RC 协议栈会自动探测所支持的协议。五、模拟输入与电池监测RADIX 2 HD 提供 3 路模拟输入见 hwdef.datADC 引脚功能参数定义ADC Pin 10PC0电池电压VBATHAL_BATT_VOLT_PIN 10分压比HAL_BATT_VOLT_SCALE 17.6ADC Pin 3PA6电池电流CURHAL_BATT_CURR_PIN 3电流标度HAL_BATT_CURR_SCALE 28.5ADC Pin 11PC1RSSI 电压监测BOARD_RSSI_ANA_PIN 11内置 1:17.6 分压电路使得该板最高可监测 12S 电池电压。而板载供电本身最高支持 8S35 V板上 PWR:VBAT 跳线可将 VBAT 引脚同时用于电池电压监测与板载供电。⚠️ 重要警告如果焊接了 PWR:VBAT 跳线并使用超过 8S35 V的电池给板子供电将造成硬件损坏。务必参考 BrainFPV 官方文档确认跳线使用方式。电池监测的默认后端类型由HAL_BATT_MONITOR_DEFAULT 4定义配合电流传感输入即可在 Mission Planner 等地面站中直接配置电压/电流标定。六、固件烧写Loading FirmwareRADIX 2 HD 使用 BrainFPV 专有 Bootloader需要特定格式的固件文件。烧写流程为获取固件文件见下方三种途径按住 BOOT 按钮并连接 USB使板子进入 Bootloader 模式电脑上会弹出一个 U 盘将固件文件复制到该 U 盘安全弹出 U 盘RADIX 2 HD 将自动重启并运行 ArduPilot 固件。注意使用 ArduPilot 固件时必须插入 microSD 卡否则固件无法运行ArduPilot 需要 SD 卡存放参数与日志对应HAL_OS_FATFS_IO 1与HAL_STORAGE_SIZE 16384的配置。方式一从 BrainFPV 官网直接下载固件这是最简单的途径直接访问 BrainFPV 官网的固件下载页面获取已打包好的.bin固件文件按上述流程复制进 U 盘即可。方式二从 ArduPilot 构建服务器下载 ELF 并转换从 ArduPilot Build Server 下载目标为 RADIX2HD 的 ELF 文件例如 ArduCopter 对应arducopter.elf再使用 BrainFPV Firmware Packer 工具转换为 RADIX 2 HD 可识别的格式。安装 Python 3Linux 用包管理器Windows 从官网安装并务必勾选 Add Python to PATH然后安装 Firmware Packerpython3 -m pip install https://github.com/BrainFPV/brainfpv_fw_packer/archive/main.zip转换 ELF 为.binbrainfpv_fw_packer.py --name arducopter --in arducopter.elf --out arducopter.bin ^ --dev radix2hd -t firmware -b 0x90400000 -z --noheader其中-b 0x90400000对应外部 QUADSPI Flash 的起始地址与 hwdef 中 16 MB 外部 Flash 的定义一致-z --noheader用于生成符合该 Bootloader 预期的固件头格式。方式三自行编译固件如果你已具备可用的 ArduPilot 构建环境可以直接编译出对应机型的固件再用 Firmware Packer 打包。以 ArduCopter 为例./waf configure --board RADIX2HD ./waf copter编译完成后直接调用板级目录中自带的打包脚本./libraries/AP_HAL_ChibiOS/hwdef/RADIX2HD/pack_firmware.sh copter查看 pack_firmware.sh 的实现该脚本的核心逻辑是读取当前 Git 版本信息git describe/git rev-parse作为固件版本号用arm-none-eabi-objcopy将arducopterELF 转换为 HEX调用brainfpv_fw_packer.py将 HEX 打包为arducopter_{VERSION}_brainfpv.bin输出到build/RADIX2HD/bin/目录。arm-none-eabi-objcopy -O ihex ${FW_ELF} ${FW_HEX} brainfpv_fw_packer.py \ --name ardu$1 \ --version ${GIT_VER} \ --sha1 ${GIT_SHA1} \ --in ${FW_HEX} --out ${FW_PACKED} \ --dev radix2hd -t firmware -b 0x90400000 -z --noheader将生成好的arducopter_{VERSION}_brainfpv.bin复制到 Bootloader 模式下的 U 盘即可完成烧写。RADIX 2 HD 虽然可以编译其他机型的固件但主要面向多旋翼Copter应用场景。板卡 ID 定义于 board_types.txtAP_HW_RADIX2HD 1118另外由于该板采用 BrainFPV 专有 Bootloaderhwdef 中AP_BOOTLOADER_FLASHING_ENABLED 0表明无法像普通 ArduPilot 板那样通过地面站在线刷新 Bootloader。七、参数速查与常见配置以下为 RADIX 2 HD 开箱即用的关键参数来自 defaults.parm参数默认值含义SERIAL3_PROTOCOL23RCINUART3 作为 RC 输入对接 CRSF 等协议接收机RSSI_TYPE3RSSI 来源为 CRSF 遥控链路OSD_TYPE5启用 MSP OSDSERIAL1_PROTOCOL42DisplayPortUART1 输出 MSP DisplayPort OSD 到 HD 图传SERIAL2_PROTOCOL5GPSUART2 接 GPS 模块SERIAL4_PROTOCOL16ESC TelemetryUART4 读取 ESC 遥测RELAY2_DEFAULT1上电默认开启 9 V 稳压器HD FPV 图传供电BRD_ALT_CONFIG0置 1 时将 PWM 9/10 引脚切换为 SERIAL6 UART从 AP_SerialManager.cpp 的参数文档可以看出SERIALn_PROTOCOL支持 -1禁用到 50IOMCU的完整协议集用户可根据实际外设自由调整各串口的用途例如把 SERIAL5 改为 5GPS或 23RCIN。八、小结BrainFPV RADIX 2 HD 在 ArduPilot 中的支持由 hwdef/RADIX2HD 目录完整承载STM32H750 BMI270 DPS310 的高性能核心、支持 BDSHOT 的 10 路 PWM、丰富的 7 路 UART 与 CAN/I2C 扩展以及专为 HD FPV 设计的 9 V 图传供电开关使其成为高端 FPV 多旋翼的理想选择。烧写固件时只需记住三条路径官网直接下载、构建服务器 ELF 转换、本地./waf编译打包配合板级目录自带的pack_firmware.sh脚本即可快速完成从源码到可飞固件的全流程。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考