DShot 电调配置
DShot 是数字电调协议,用数字帧代替 PWM 脉宽的油门传递方式:帧带校验、不受电调与控制器时钟偏差影响、不需要做油门行程校准。

▲ 两种遥测接法
WARNING
只对明确支持 DShot 的电调启用。给普通 PWM 电调设 DShot 会出现不可预期的转动,装桨前务必空载测试。
前提条件
- 电调固件为支持 DShot 的数字固件。
- 双向 DShot 需要电调固件较新(支持沿信号线回传转速);老固件只能走单线遥测。
- 双向 DShot 需要独占 DMA 通道,并非所有控制器通道都支持。
各机型支持哪些速率和通道
M 表示 MAIN 输出、A 表示 AUX 输出;M1-M4 即 MAIN 1~4,M1-A6 表示从 MAIN1 一直到 AUX6。下表为 APM 固件实测结果。
双向 DShot(BDShot)
| 控制器 | 速率 | 可用通道 |
|---|---|---|
| V5+ | 150 / 300 / 600 / 1200 | A1-A6 |
| V5 nano | 150 / 300 / 600 / 1200 | M1-M4 |
| X7+ | 150 / 300 / 600 / 1200 | M1-M4 |
| Nora+ | 150 / 300 / 600 / 1200 | M1-M8 |
| X7+ Pro | 150 / 300 / 600 / 1200 | M1-M4 |
| V6X | 150 / 300 / 600 | M1-M4、A1-A4 |
| V6X | 1200 | A1-A4 |
| V6X v2 | 150 / 300 / 600 | M1-M4、A1-A6 |
| V6X v2 | 1200 | A1-A4 |
| 7-Nano V1 | 不支持 | — |
| 7-Nano V2 | 150 / 300 / 600 / 1200 | M1-M4 |
| X25 EVO | 150 / 300 / 600 / 1200 | M1-M8 |
| X25 SUPER | 150 / 300 / 600 / 1200 | M1-M8 |
| X25 MEGA | 150 / 300 / 600 / 1200 | M1-M8 |
单向 DShot
| 控制器 | 速率 | 可用通道 |
|---|---|---|
| V5+ | 150 / 300 | M1-A6 |
| V5+ | 600 / 1200 | A1-A6 |
| V5 nano | 150 / 300 / 600 / 1200 | M1-M6 |
| X7+ | 150 / 300 / 600 / 1200 | M1-M12 |
| Nora+ | 150 / 300 / 600 / 1200 | M1-M12 |
| X7+ Pro | 150 / 300 / 600 / 1200 | M1-M12 |
| V6X | 150 / 300 / 600 | M1-A6 |
| V6X | 1200 | A1-A6 |
| V6X v2 | 150 / 300 / 600 | M1-A6 |
| V6X v2 | 1200 | A1-A6 |
| 7-Nano V1 | 150 / 300 / 600 / 1200 | M1-M12 |
| 7-Nano V2 | 150 / 300 / 600 / 1200 | M1-M12 |
| X25 EVO | 150 / 300 / 600 / 1200 | M1-M14 |
| X25 SUPER | 150 / 300 / 600 / 1200 | M1-M14 |
| X25 MEGA | 150 / 300 / 600 / 1200 | M1-M14 |
TIP
双向 DShot 对线材长度更敏感。大型机或信号线较长时,优先降到 DShot150/300,比追高速率更稳。
配置步骤
1. 在全部参数表中配置
打开 Mission Planner,进入 配置 / 调试 → 全部参数表,按下表填好再点 写入参数。
| 参数 | 目标值 | 参数注释 |
|---|---|---|
FRAME_CLASS | 按机型设置 | 机架类型;设好后系统自动分配输出通道,也可以手动改 SERVOx_FUNCTION |
BRD_SAFETY_DEFLT | 1(需要关闭安全开关填 0) | 安全开关使能 |
BRD_IO_DSHOT | 0(带 IO 的板子可设 1) | 开启 IO 芯片的 DShot |
MOT_PWM_TYPE | 按所需 DShot 速率设置 | 指定通道的 DShot 协议 |
SERVO_BLH_BDMASK | 勾选要输出的通道,四旋翼为 15 | 走 DShot 的通道 |
SERVO_DSHOT_ESC | 1 | DShot 电调类型;要用遥测回传必须设置,一般填 1 |
SERVO_DSHOT_RATE | 0(按需配置) | DShot 脉冲的发送频率;0 按循环频率固定 1 kHz,1 等于循环频率(400 Hz 循环即 400 Hz),3 为 1.2 kHz。不建议低于 1 kHz |
注释
所有基于掩码的配置只能在 PWM 组级别 更改。哪些输出属于同一组以控制器分组为准;同组内混用不同协议,改动不会生效。
注意
一旦某输出被配置为 DShot,其对应的 SERVOx_MIN / SERVOx_MAX / SERVOx_TRIM 参数将失效,因为 DShot 不使用这些参数。可逆输出的中位值为 1500,普通输出则为 1000,输出范围始终为 1000–2000。无需进行 ESC 校准。
提示
需要按下安全开关和解锁后才有输出。
2. 检查输出通道是否生效
重启后连接地面站,在消息(Messages) 面板看开机横幅里的 RCOut: 一行,它会列出每个通道当前使用的输出协议:

▲ RCOut: 行显示各通道的协议,DShot 通道会标出速率(如 DShot600)
- 显示
DShot150/300/600/1200说明该通道已切到数字输出。 - 仍显示
PWM说明通道没有切换成功,通常是接在了 MAIN 口,或同一定时器组内混用了协议。
DShot 命令
部分电调支持通过 DShot 下发命令,用来控制电调 LED、让电机发出哔声、设置电机方向。
目前支持的命令:
- DShot LED 开关
- DShot 蜂鸣器开关
- 反向运动方向(见
SERVO_BLH_RVMASK参数) - 可逆 DShot(又称 3D 模式)
启用前先按下表配好:
| 参数 | 目标值 | 说明 |
|---|---|---|
SERVO_DSHOT_ESC | 1(按电调型号选) | 设为所用 DShot 电调类型;用双向 DShot 或扩展遥测时必须设置 |
NTF_LED_TYPES | 勾选 DShot | 允许用 DShot 命令控制电调 LED |
NTF_BUZZ_TYPES | 勾选 DShot | 允许把电机当蜂鸣器用 |
警告
当前 ArduPilot 只支持常用的指令集(SERVO_DSHOT_ESC = 1),其他指令集可能不兼容、出现未定义行为。确认电调属于类型 1 之前,务必拆桨测试。
验证
- 地面站的飞行数据 → 状态页搜索
esc1_rpm,转速随油门变化说明遥测已通(遥测链路需 MAVLink2)。 - 机载日志中查看
ESCn消息:转速、电压、电流、温度、总电流。 - 用电机测试逐个确认转向。
常见问题
1、电机不转?
- 接在 MAIN 口(带 IO 协处理器的机型不支持),或同一定时器组内混用了 PWM 与 DShot
2、没有转速数据?
- 电调固件不支持双向回传、
SERVO_BLH_BDMASK未设置,或SERVO_DSHOT_ESC仍为 0
3、转速数值偏大 / 偏小?
SERVO_BLH_POLES与实际电机极数不符
4、切换协议后电机异常?
- 之前按 PWM 校准过油门,切回模拟输出前需要重新校准
WARNING
输出从 DShot 改回模拟 PWM 时,必须先重新做一次油门行程校准,否则可能一解锁电机就高速转动。
IOMCU DShot 限制
加载支持 DShot 的 IOMCU 固件后,有两条限制:
- RCin 引脚不能再检测 PPM 信号。
- MAIN 输出支持 PWM 和普通 DShot,同一协议组内的输出必须用同一种协议:
| 输出 | 协议组 |
|---|---|
| MAIN 1、2 | 第 1 组 |
| MAIN 3、4 | 第 2 组 |
| MAIN 5~8 | 第 3 组 |
所有 DShot 输出的常规设置步骤依然适用。

