01 / 核心硬件
把主控、传感器和基础电源集中在核心板上,可以减少从零设计飞控电路的工作。使用者可把精力放在外围接线、机型配置和自己的控制应用上。
ECF 核心板集成处理器、传感器、日志存储与基础电源,尺寸约 51 × 21mm。全部元件在顶面,板边提供两条长边各 20 个、一个短边 5 个接口位置,另一短边放置 USB-C。长边接口采用 2.54mm 间距排针,可直插面包板并通过普通跳线进行基础验证;邮票孔用于连接自定义底板。接口按 ECF 定义,与 Pico 引脚不具备电气兼容性。
| 部分 | 器件与连接 | 作用 |
|---|---|---|
| 主控 | STM32H743VIH6 · TFBGA100 | 运算、外设与控制输出 |
| IMU | ICM-45686 · SPI1 | 三轴加速度与角速度 |
| 气压计 | BMP581 · I²C2 · 0x46 | 气压测量 |
| 磁力计 | MMC5983MA · I²C2 · 0x30 | 三轴磁场测量 |
| 存储 | MKDV4GCL-ABF · SDMMC2 四位 | 板载 SD NAND 日志 |
| 状态灯 | WS2812B-2020-V6 · PB7 | 固件身份与运行状态 |
| 主时钟 | 8MHz HSE | 处理器参考时钟 |
板边 45 个位置包括电源、地与调试信号,不等于 45 个自由 GPIO。另有两个内部 USB 数据接点,制造尺寸、网络与开窗以正式硬件设计文件为准。
主控与传感器性能
以下为器件规格与板级连接。实际主频、量程、采样率和滤波设置由所用固件决定。
主控 STM32H743VIH6:Arm Cortex-M7,最高 480MHz,2MB Flash、约 1MB RAM,支持双精度 FPU 与 DSP 指令;TFBGA100 封装。
六轴 IMU ICM-45686:三轴陀螺仪与三轴加速度计,最大量程分别为 ±4000°/s、±32g;原厂典型噪声密度分别为 3.8mdps/√Hz、70µg/√Hz。板上通过 SPI1 接入,用于角速度与加速度采集。
气压计 BMP581:压力测量范围 300~1250hPa;典型相对精度 ±6Pa(700~1100hPa、15~55°C、10kPa 步进),典型绝对精度 ±30Pa(300~1100hPa、−5~65°C);最低带宽、最高分辨率设置下压力噪声为 0.08Pa。板上通过 I²C2 接入,用于气压与相对高度估计。
磁力计 MMC5983MA:三轴磁场量程 ±8G(±0.8mT),支持 18-bit 输出,18-bit 模式分辨率为 0.0625mG/LSB;典型总 RMS 噪声 0.4mG(BW=00、25°C、VDD=3.0V)。内置 SET/RESET,板上通过 I²C2 接入,用于磁场与航向估计。
日志存储与状态指示:MKDV4GCL-ABF SD NAND 通过 SDMMC2 四位总线连接,用于日志与运行数据;WS2812B-2020-V6 RGB 灯显示启动及运行状态。
主电源 TPS62903:同步降压芯片,器件输出电流能力为 3A;板上配置为 3.3V、2.5MHz、强制 PWM,供处理器、存储与数字接口使用。
传感器电源 TPS7A2030:300mA 低噪声 LDO,由系统 3.3V 产生传感器 VDD 3.0V;传感器 VDDIO、I²C 上拉仍使用系统 3.3V。
精度、噪声和分辨率为原厂规定条件下的器件参数;整板测量表现受滤波、安装、振动、温度和磁环境影响。3.3V 对外可用电流需扣除板内负载,并按输入能力及散热条件核定。
参数资料:STM32H743VIH6、ICM-45686、BMP581、MMC5983MA、TPS62903、TPS7A2030。
供电结构
外部稳压 5V VIN 与 USB 5V VUSB 进入 TPS2117,优先选择 VIN。切换后的系统 5V 经 TPS62903 产生 VSYS 3.3V;TPS7A2030 再产生 VSEN 3.0V,为三颗传感器 VDD 供电。传感器 VDDIO、I²C 上拉及模式选择脚使用 VSYS 3.3V,各电源共地。
02 / 简易底板接入示例
简易底板用 GH1.25 连接器、排针与 PCB 走线把核心板接口引出,便于直接接入常用线束,也便于按机架调整安装孔和连接器位置。底板不进行电池降压。核心 VIN 所需稳压 5V 可由示例电源监测模块经底板送入,也可使用匹配的外部稳压电源。

模块分工
- 核心板:运算、感知、日志、基础稳压和逻辑接口。
- 简易底板:把核心板接口引到接收机、GPS、控制输出及电源连接器。
- 示例电源监测模块:提供 5V 输出,并把电池电压、电流转换为 ADC 可读取的模拟信号。
- 平台外围:核心 VIN 所需 5V 可来自示例电源监测模块或匹配的 BEC;电调、电机与舵机电源按平台设计。
使用 CAN 需另加收发器,并按总线位置配置终端。核心板 CAN TX / RX 为逻辑接口,不能直接连接 CANH / CANL。此示例底板不含 CAN 收发器或 BEC。
03 / 模拟电源监测示例
供电和电池采样可以从同一个参考模块开始搭建。两路模拟信号接入核心板已有 ADC 电池监测功能,便于使用四款固件相同的接线与标定方式。
此参考模块以普通 6S LiPo、持续 60A 为设计目标,提供模拟电压、电流采样与供电。电流前端采用 0.2mΩ 四端分流器和 INA241A4,电压经 100kΩ / 10kΩ 分压,TLV9062 双跟随器调理采样信号;LMR51635YFDDCR 降压提供 5V 输出,TPS7A2033 提供模块局部 3.3V。参考电压倍率为 11,电流灵敏度为 20mV/A,参考零偏为 0。

5V 输出经参考底板连接核心板 4 / VIN,电压与电流信号分别连接 15 / AI1 与 16 / AI2,并连接公共地。参考模块输出连接器 U6 的 1 / 2 为 5V,3 为 I_OUT,4 为 V_OUT,5 / 6 为 GND。接线以实际连接器定义为准,确认输出范围后再连接 ADC。INA241 REF 接地,近零电流区域需考虑输出摆幅引起的非线性,并通过实测标定。电流统计范围还需核对分流器和 5V 支路的取电位置。
可选 INA238 数字监测的参考配置为:0x45、0.5mΩ、120A 换算量程。该方案与本节的 0.2mΩ 模拟模块参数不同,须分别配置。
04 / 四款固件与适配范围
同一块 ECF 核心板可选择 Betaflight、INAV、ArduCopter 或 PX4,便于使用熟悉的配置工具、比较不同固件,或在源码上继续开发。各工程包含完整源码、所需依赖、编译脚本和测试说明;刷写包提供固件与安装步骤。发布源码已经重新编译检查。
| 固件 | ECF 版本 | 构建环境 / 入口 |
|---|---|---|
| Betaflight | 2026.6.2 / r4 | Windows · PowerShell 7 · ARM GCC 13.3.1 GNU Make、Git Bash、Python / build.ps1 |
| INAV | 9.1.0 / r5 | Windows · PowerShell 7 · ARM GCC 13.3.1 CMake 3.31.10、Ruby 3.3.7、Ninja、Python / build.ps1 |
| ArduCopter | 4.7.2 / r4 | Linux / WSL x86_64 · ARM GCC 10.2.1 Python 3.12.3、GNU Make、宿主 GCC / build.sh |
| PX4 | v1.17.0 / r3 | Ubuntu 24.04 / WSL · ARM GCC 13.2.1 Python 3.12、CMake 3.28.3、Ninja 1.11.1 / build.sh |
三颗板载传感器、SDMMC2 存储、USB、八路 PWM / 普通 DShot 与板载 RGB 灯已进行板级适配。Betaflight / INAV 补充 MMC5983MA 驱动适配,INAV 补充 BMP581 驱动;ArduPilot / PX4 使用已有驱动接入当前传感器。
适配限制
- ArduPilot 当前提供的是 ArduCopter 构建,其他载具固件未提供。
- INAV 当前没有双向 DShot 接收,也不解析 NMEA GPS;GPS 默认使用 UBX。
- PX4 双向 DShot 仅支持 CH1~CH4;八路输出均支持普通 DShot。
- Betaflight / INAV 不提供原生 INA238 / INA226 电池监测后端;PX4 当前镜像包含 INA238、不含 INA226。
- 外设协议须按实际设备验证互通。
Betaflight、INAV、ArduPilot 保留 GPLv3,PX4 保留 BSD 3-Clause;第三方代码遵循随附许可。编译步骤、依赖版本和下载文件的完整性检查方法见对应源码包说明。
05 / 安装与首次使用
- 确认硬件和接线。核对处理器、传感器与引脚定义,确认 VIN 为稳压 5V。调试阶段卸除螺旋桨,避免执行器意外动作。
- 备份现有设备。保存参数、日志和存储文件;更换固件前确认参数兼容性,跨文件系统切换按对应固件说明操作,不直接格式化。
- 选择对应的 ECF 刷写包。核对版本、适用硬件和下载文件是否完整,按包内说明使用 STM32CubeProgrammer、ST-Link 或 ROM USB DFU 烧录。
- 核对出厂接口。确认 ADC+UART3 组合,读回电源比例和串口用途。配置器与地面站端口按系统当前枚举结果选择。
- 完成装机校准。确认整板朝向,完成加速度计、罗盘等原生校准;标定电压、电流,检查接收机、GPS 和输出顺序。
- 按目标机型配置控制。出厂为 Quad X、CH1~CH4 DShot300。INAV 需在 Outputs 页面启用输出;其他机型按对应固件重新配置混控、失控保护及控制参数。
不同固件的刷写规则
| 固件 | 首次安装 / 恢复 | 参数注意事项 |
|---|---|---|
| Betaflight / INAV | 出厂 HEX,自带 0x08000000 起始地址 无独立引导程序 | 出厂镜像清除 Flash 参数区 SD 日志不在 Flash 擦除范围 |
| ArduCopter | 出厂 HEX 含匹配引导程序 引导 0x08000000 / 应用 0x08020000 | 完整出厂 HEX 清除参数 匹配引导程序下用 APJ 升级可保留参数 |
| PX4 | 完整 2MiB 出厂 HEX 0x08000000,无独立引导程序 | 刷写 Flash 不清除 SD 中参数 原生恢复默认须单独执行 |
HEX 自带地址,按对应工具的 HEX 下载流程操作;不能把 ArduCopter APJ 当成 BIN 写入 0x08000000。需要恢复 PX4 出厂值时,先备份,再依次执行 param reset_all、param save、reboot,重启后核对配置。
跨 AFatFS / FatFS 固件切换时,备份并校验 SD 文件,按目标固件说明处理 FREESPAC.E 存储文件,保留历史日志。通用镜像不包含单台设备的传感器校准、无线绑定和个人设置。
06 / 功能复用与电源监测
15 / AI1 / PC5 与 UART8 TX / PE1 并接,16 / AI2 / PC4 与 UART8 RX / PE0 并接;25 / PD8、26 / PD9 的 UART3 与 I²C4 的 PD12、PD13 共用焊盘。23 / 24 为独立的 I²C3 外置罗盘接口。
| 组合 | 15 / 16 | 25 / 26 | 模式值 |
|---|---|---|---|
| ADC + I²C4 | 模拟采样 | I²C4 | 0 |
| ADC + UART3 · 出厂 | 模拟采样 | UART3 | 1 |
| UART8 + I²C4 | UART8 | I²C4 | 2 |
| UART8 + UART3 | UART8 | UART3 | 3 |
模式参数分别是 INAV ecf_io_mode、ArduCopter BRD_ALT_CONFIG、PX4 ECF_IO_MODE。Betaflight 通过对应的资源映射预设切换,不使用上述数字模式参数。出厂值为 INAV ecf_io_mode=1、ArduCopter BRD_ALT_CONFIG=1、PX4 ECF_IO_MODE=1。
- 按所需组合连接外部电路,先排除同组设备同时连接。
- 应用对应固件
presets/shared-*预设;接口路由与串口外设协议分别配置。 - 保存并正常重启,使接口路由生效。
- 读回模式、端口协议与采样来源,核对未选 MCU 引脚为高阻、无内部上下拉。
可选 INA238 数字监测
参考配置为 7 位地址 0x45、0.5mΩ 分流器与 120A 换算量程,须与实际模块一致。选择模式 0 或 2 以启用 I²C4,停用 UART3。
- ArduCopter:设置
BATT_MONITOR=21并重启,然后应用presets/power-ina238.parm;BATT_I2C_BUS=2对应物理 I²C4。切回模拟设置BATT_MONITOR=4并重启,再应用模拟标定参数。 - PX4:设置
SENS_EN_INA238=1并应用对应数字监测预设,保存重启;切回模拟需关闭 INA238 驱动并恢复 ADC 参数。 - Betaflight / INAV:共享模式可切换,但当前没有原生 INA238 / INA226 电池后端,仅启用总线无法使用该电池监测功能。
07 / 模拟参数与标定
统一参考为 11∶1 电压分压、20mV/A 电流灵敏度(50A/V)、零偏 0。以下为出厂采样参数,装机后仍须标定。
Betaflight
vbat_scale = 110
vbat_divider = 10
vbat_multiplier = 1
ibata_scale = 200
ibata_offset = 0INAV
vbat_scale = 1100
current_meter_scale = 200
current_meter_offset = 0ArduCopter
BATT_MONITOR = 4
BATT_VOLT_PIN = 8
BATT_CURR_PIN = 4
BATT_VOLT_MULT = 11
BATT_AMP_PERVLT = 50
BATT_AMP_OFFSET = 0PX4
BAT1_SOURCE = 0
SENS_EN_INA238 = 0
BAT1_V_CHANNEL = 8
BAT1_I_CHANNEL = 4
BAT1_V_DIV = 11
BAT1_A_PER_V = 50
BAT_V_OFFS_CURR = 0更换底板后的标定
- 确认实际分压电阻、分流器与放大器增益,预先核算最大采样电压不超过 3.3V。
- 使用万用表测量实际输入电压,对照地面站读数调整电压比例,并在第二个电压点复核。
- 记录零电流偏移,再使用已知负载与可靠电流参考进行至少两点校准。
- 保存、重启并重新读取;验证电流方向、累计耗电量和报警阈值。
11∶1 在理想 3.3V ADC 条件下对应 36.3V 名义满量程,实际输出摆幅、器件误差与瞬态裕量须另外考虑。该满量程不适用于核心板 VIN 耐压或电源模块额定值。
08 / 外设与控制输出
| 物理串口 | 板边编号 | 出厂用途 |
|---|---|---|
| UART1 | 29 / 30 | ELRS / CRSF,双线、非反相 |
| UART3 | 25 / 26 | 预留串口,协议空闲 |
| UART4 | 27 / 28 | AP / PX4:GPS2;BF / INAV:未分配 |
| UART5 | 33 / 34 | BF / INAV:MSP;AP / PX4:MAVLink2,115200 bit/s |
| UART6 | 31 / 32 | GPS1,BF / INAV 默认 UBX;AP / PX4 自动探测 |
| UART7 | 35 / 36 | 串口 ESC 遥测,115200 bit/s |
| UART8 | 15 / 16 | 出厂关闭,与 ADC 共享 |
INAV 的 ESC 遥测驱动按原生条件在启用电机输出后启动。串口 ESC 遥测与双向 DShot 使用不同信号线,须分别配置。
PX4 地面站标签为 UART1=TEL1、UART3=TEL2、UART4=TEL3、UART5=TEL4、UART6=GPS1、UART7=GPS2、UART8=RC。默认 GPS2 接收机应连接物理 UART4;标签 GPS2 所在的 UART7 已用于 ESC 遥测。
CAN、罗盘与 SPI
DroneCAN 默认节点 10、1Mbit/s。Betaflight / INAV 默认 CAN1,可切到 CAN2,一次使用一路;ArduCopter 两路使用独立驱动;PX4 两路接口属于同一节点。CAN 收发器、终端及保护按底板和总线布置配置。
I²C3(23 / 24)保留给外置罗盘。Betaflight / INAV 优先探测外置罗盘,未发现时回退板载 MMC5983MA;ArduCopter / PX4 按原生驱动探测。SPI4 默认没有激活的外部传感器;AP / PX4 可通过对应参数启用第二颗受支持的 IMU,需另行校验型号与安装旋转。
八路输出
CH1~CH8 对应 PA0、PA1、PA2、PA3、PB1、PB0、PD14、PD15。CH1~4、CH5~6、CH7~8 分别属于 TIM2、TIM3、TIM4,同组频率和协议需要兼容。出厂仅 CH1~4 分配电机功能,DShot300、Quad X;后四路未分配电机用途。电机编号与旋向应按所选固件混控核对。
09 / 版本、验证与资料
本指南对应 2026 年 10 月 28 日固件版本:Betaflight 2026.6.2 r4、INAV 9.1.0 r5、ArduCopter 4.7.2 r4、PX4 v1.17.0 r3。各版本的编译与安装方法见对应源码包说明。
已完成四款固件逐一烧录与板载传感器基础调试。已检查源码编译、日志与接口配置,以及 CH1 / 3 / 5 / 7 的 PWM400、DShot300 波形检查。详细测试结果见对应版本的测试说明。
这些测试不代表整机已具备飞行条件。装机后仍需检查外设连接、传感器校准、供电负载与失控保护。
设计资料许可
ECF 原创硬件设计资料采用 CC BY-NC-SA 4.0(署名—非商业性使用—相同方式共享),包括核心板、极简底板及模拟电压电流计的原理图、PCB、BOM 和配套设计资料。允许非商业性复制、分享和修改;分享时须保留署名与协议链接、注明修改,修改后的资料按相同或兼容协议分享。
商业使用须事先取得作者单独授权。作者另行允许为非商业用途按实际成本代购元件、打板和组装,不得计入利润或以成本价代制名义开展营利销售。
上述许可与额外授权仅适用于 ECF 原创设计资料。第三方器件资料与库遵循各自许可。Betaflight、INAV、ArduPilot 保留 GPLv3,PX4 保留 BSD 3-Clause;第三方代码遵循各自许可。
固件标识与上游项目
标识用于识别对应固件项目:Betaflight、INAV、ArduPilot、PX4。本页介绍 ECF 板级适配,不代表上游官方认证或背书。
软件入口:GitHub / albert17github / ECF
硬件入口:立创 ECF 硬件项目。原理图、PCB、BOM 与附件可在项目页查看,复刻或修改前请核对对应工程与接线说明。