调试模式
CLI 信息命令
-
VERSION:显示当前加载的固件,以及该固件构建对应的最后一个 GitHub 代码提交,例如(9f67a584b)。 -
STATUS:显示四轴飞行器配置的多项信息,例如可用于固件的 ROM 空间、陀螺仪类型和检测到的电压等。 -
TASKS:显示正在运行的任务及其 CPU 占用率。确认陀螺仪/PID 任务的速率(Hz)是否按设定频率运行。 -
DSHOT_TELEMETRY_INFO:显示各 ESC 的 DShot 双向 RPM 遥测数据包成功情况。(4.1+) -
RC_SMOOTHING_INFO:显示检测到的接收机帧率。仅当接收机页面的 RC 信号平滑类型选择Filter,且Input Cutoff Type与Derivative Cutoff Type均设为auto时可用。要使检测到的帧率数据有效,遥控器和接收机均须已连接并通电。 -
get DEBUG_MODE:显示当前调试模式及所有可用调试模式。
调试模式
陀螺仪信号 (https://youtu.be/A09sprstYqI)
GYRO_RAW:(未经缩放或滤波的原始陀螺仪数据)
用于查看输入固件、未经缩放的陀螺仪信号,以检测堆栈溢出(ICM 陀螺仪)。
- [0] = 横滚:输入固件的陀螺仪信号,未缩放
- [1] = 俯仰:输入固件的陀螺仪信号,未缩放
- [2] = 偏航:输入固件的陀螺仪信号,未缩放
- [3] = [空]
GYRO_SCALED:(已转换为 deg/s、尚未经过任何飞控滤波的陀螺仪数据)
- [0] = 横滚:输入固件的陀螺仪信号,已缩放为 deg/s
- [1] = 俯仰:输入固件的陀螺仪信号,已缩放为 deg/s
- [2] = 偏航:输入固件的陀螺仪信号,已缩放为 deg/s
- [3] = [空]
GYRO_FILTERED:(与默认记录的陀螺仪曲线相同)
- [0] = 横滚:滤波后的陀螺仪曲线
- [1] = 俯仰:滤波后的陀螺仪曲线
- [2] = 偏航:滤波后的陀螺仪曲线
- [3] = [空]
GYRO_SAMPLE:
- [0] = 降采样至 PID 环路频率前的陀螺仪数据
- [1] = PID 环路频率下的陀螺仪数据
- [2] = PID 环路频率下、经 RPM 滤波后的陀螺仪数据
- [3] = PID 环路频率下、经 RPM 和全部静态滤波器后、动态陷波滤波器前的陀螺仪数据
滤波器 (https://youtu.be/__vyp60cU_8)
D_LPF:
- [0] = 横滚:未滤波的 D 项
- [1] = 俯仰:未滤波的 D 项
- [2] = 横滚:经滤波、经过 DMin/Dmax 调整、应用 TPA 前的 D 项
- [3] = 俯仰:经滤波、经过 DMin/Dmax 调整、应用 TPA 前的 D 项
DYN_LPF:
- [0] = 横滚:原始陀螺仪数据(已缩放)
- [1] = 横滚:陷波中心频率
- [2] = 横滚:低通滤波器截止频率
- [3] = 横滚:动态陷波前(低通滤波器后)的陀螺仪数据
FFT_FREQ:
- [0] = gyroDebugAxis:陷波 1 的中心频率
- [1] = gyroDebugAxis:陷波 2 的中心频率
- [2] = gyroDebugAxis:陷波 3 的中心频率
- [3] = gyroDebugAxis:动态陷波前的陀螺仪数据(低通与 RPM 滤波后)
FFT:
- [0] = gyroDebugAxis:动态陷波前的陀螺仪数据(低通与 RPM 滤波后)
- [1] = gyroDebugAxis:动态陷波后的陀螺仪数据
- [2] = gyroDebugAxis:用于 FFT 的降采样数据
- [3] = [空]
FFT_TIME:
- [0] = 当前活动的计算步骤
- [1] = 此步骤的持续时间
- [2] = [空]
- [3] = [空]
RPM_FILTER:
- [0] = 电机 #1 RPM 陷波中心频率(预期电机噪声峰值所在位置)
- [1] = 电机 #2 RPM 陷波中心频率
- [2] = 电机 #3 RPM 陷波中心频率
- [3] = 电机 #4 RPM 陷波中心频率
PID
D_MAX:
- [0] = 陀螺仪因子(百分比,按
d_max_gain缩放) - [1] = 设定点因子(百分比,按
d_max_advance缩放)。gyro 和 setpoint 因子中较大的一个生效。 - [2] = 横滚:当前 D 项增益
- [3] = 俯仰:当前 D 项增益
ITERM_RELAX:(https://youtu.be/QfiGTG5LfCk)
- [0] = 用于检测较大设定点变化的高通滤波器
- [1] = 放松因子(百分比,仅用于
SETPOINT模式) - [2] = 放松后的 I 项误差
- [3] = 绝对控制轴误差 [横滚]
ANTI_GRAVITY:油门快速变化期间的 I、P 增益提升
- [0] = 由高通油门计算的基础 I 增益因子(* 1000)
- [1] = 最终 I 增益因子(包含延迟且经平滑的低通分量)(* 1000)
- [2] = P 增益因子(* 1000)[横滚]
- [3] = P 增益因子(* 1000)[俯仰]
FEEDFORWARD_LIMIT (FF_LIMIT):当摇杆快速接近最大速率时降低前馈
- [0] = 限制因子 [横滚]
- [1] = 限制因子 [俯仰]
- [2] = 受限后的前馈 [横滚]
- [3] = 未使用
FEEDFORWARD(4.3):
- [0] = 插值后的设定点 [横滚]
- [1] = 经平滑的设定点增量 [横滚]
- [2] = 经平滑的 Boost 因子 [横滚]
- [3] = RC 指令增量 [横滚] (us)
FF_INTERPOLATED(4.2):
- [0] = 设定点增量 [横滚]
- [1] = 设定点加速度 [横滚]
- [2] = 限幅后的设定点加速度 [横滚]
- [3] = 重复计数器
FF_INTERPOLATED(4.0):
- [0] = 设定点增量 Impl [横滚]
- [1] = Boost 量 [横滚]
- [2] = 限幅后的 Boost 量 [横滚]
- [3] = 限幅量
ESC 和电机
DSHOT_RPM_TELEMETRY:在 Configurator 10.8 中显示 RPM;在低于 10.8 的版本中显示 eRPM(其中 RPM = eRPM * motor_magnet_count)。
- [0] = 电机 #1 RPM
- [1] = 电机 #2 RPM
- [2] = 电机 #3 RPM
- [3] = 电机 #4 RPM
DSHOT_RPM_ERRORS:
- [0] = 电机 #1:各电机无效数据包的百分比,以百分之一百分点计,因此 123 表示 1.23%
- [1] = 电机 #2:同上
- [2] = 电机 #3:同上
- [3] = 电机 #4:同上
DYN_IDLE(4.3):
- [0] = 动态怠速 P [横滚]
- [1] = 动态怠速 I [横滚]
- [2] = 动态怠速 D [横滚]
- [3] = min RPM(当前最低电机转速)
DYN_IDLE(<4.3):
- [0] =
motorRangeMinIncrease * 1000 - [1] =
targetRpsChangeRate(简单 RPM 误差 *idle_adjustment_speed) - [2] = error(需要修正的误差量)
- [3] = minRps(当前最低电机转速,单位为每秒转数 * 10)
例如,minRps 为 500 对应
50.0 * 60 = 3000rpm。
环路时间稳定性
CYCLETIME:
- [0] = 自 PID 任务上次运行起经过的时间,单位为微秒
- [1] = 当前 CPU 负载百分比
- [2] = 距上一次电机更新的时间(uS)
- [3] = 电机更新间隔相对目标 PID 环路时间的偏差(uS) 注:4.2.x 重构陀螺仪/PID 环路后,[2] 和 [3] 已无实际意义,因为电机更新现在属于 PID 任务。
PIDLOOP:
- [0] = 陀螺仪任务的运行时间(BF 4.2.x 后无用)
- [1] = PID 计算耗时,单位为微秒
- [2] = 混控器、舵机、电机更新和 DShot 遥测统计耗时,单位为微秒
- [3] = 磁力计定向保持与 Blackbox 处理逻辑耗时,单位为微秒
SCHEDULER_DETERMINISM:
- [0] = 陀螺仪任务启动周期时间,单位为 0.1 us
- [1] = 延迟任务的 ID
- [2] = 任务延迟量,单位为 0.1 us
- [3] = 陀螺仪锁定偏差,单位为时钟周期
TIMING_ACCURACY:
- [0] = CPU 忙碌百分比
- [1] = 上一秒发生延迟的任务数
- [2] = 上一秒的总延迟量,单位为 0.1 us
- [3] = 上一秒运行的任务总数
RC 平滑 (https://youtu.be/M50fKpvFjT8)
RC_INTERPOLATION:
- [0] = 原始、未经平滑的 RC 通道数据 [横滚]
- [1] = 当前接收机帧率
- [2] = 插值步数
- [3] = RC 设定点 [横滚]
RC_SMOOTHING:
- [0] = 原始、未经平滑的 RC 通道数据
- [1] = 原始、未经平滑的设定点导数
- [2] = 应用于设定点权重前、经滤波的设定点导数
- [3] = 当前计算出的平均值(显示当前用于设置滤波器的“锁定”速率)
RC_SMOOTHING_RATE:
- [0] = 记录每个接收机帧间隔(显示与前一帧的时间间隔,单位为微秒)
- [1] = 记录训练步骤计数
- [2] = 当前计算出的平均值(显示当前用于设置滤波器的“锁定”速率)
- [3] = 指示保护时间是否处于活动状态
飞行动力学
AC_ERROR(绝对控制误差):
- [0] = 横滚:轴误差 * 10
- [1] = 俯仰:轴误差 * 10
- [2] = 偏航:轴误差 * 10
- [3] = [无]
AC_CORRECTION(AC = 绝对控制):
- [0] = 横滚:轴 AC 修正 * 10
- [1] = 俯仰:轴 AC 修正 * 10
- [2] = 偏航:轴 AC 修正 * 10
- [3] = [无]
FF_THUMB(绝对控制修正):
- [0] = 横滚的常规 FF
- [1] = 摇杆限幅后的横滚 FF
- [2] = 最大偏转后的 FF
- [3] = 由摇杆外推得到的预测最大速率
传感器融合陀螺仪板
DUAL_GYRO_RAW:
- [0] = 横滚:原始陀螺仪 #1 数据(未缩放为 deg/s)
- [1] = 俯仰:原始陀螺仪 #1 数据(未缩放为 deg/s)
- [2] = 横滚:原始陀螺仪 #2 数据(未缩放为 deg/s)
- [3] = 俯仰:原始陀螺仪 #2 数据(未缩放为 deg/s)
DUAL_GYRO_SCALED:
- [0] = 横滚:已缩放的原始陀螺仪 #1 数据(已缩放为 deg/s)
- [1] = 俯仰:已缩放的原始陀螺仪 #1 数据(已缩放为 deg/s)
- [2] = 横滚:已缩放的原始陀螺仪 #2 数据(已缩放为 deg/s)
- [3] = 俯仰:已缩放的原始陀螺仪 #2 数据(已缩放为 deg/s)
DUAL_GYRO_DIFF:
- [0] = 横滚:陀螺仪 #1 的滤波数据 - 陀螺仪 #2 的滤波数据
- [1] = 俯仰:陀螺仪 #1 的滤波数据 - 陀螺仪 #2 的滤波数据
- [2] = 偏航:陀螺仪 #1 的滤波数据 - 陀螺仪 #2 的滤波数据
- [3] = [空]
DUAL_GYRO_COMBINED:(仅对开发者有用)
- [0] = [空]
- [1] = 横滚:滤波后的陀螺仪数据(与“gyro”曲线相同)
- [2] = 俯仰:滤波后的陀螺仪数据(与“gyro”曲线相同)
- [3] = [空]
DUAL_GYRO_COMBINED:(仅对开发者有用)
- [0] = [空]
- [1] = 横滚:滤波后的陀螺仪数据(与“gyro”曲线相同)
- [2] = 俯仰:滤波后的陀螺仪数据(与“gyro”曲线相同)
- [3] = [空]
VTX
SMARTAUDIO:
- [0] = SmartAudio 版本 * 100 + 设备模式
- [1] = 设备通道
- [2] = 设备频率
- [3] = 设备功率
TRAMP
- [0] = 状态
- [1] = 应答代码
- [2] = Pit 模式
- [3] = 重试计数
接收机
SBUS(FrSky SBUS)
- [0] = 帧标志
- [1] = 状态标志
- [2] = 帧时间
- [3] = 未使用
FPORT(FrSky FPORT)
- [0] = 帧间隔
- [1] = 帧错误
- [2] = 最后一次错误
- [3] = 遥测间隔
GHST(Ghost)
- [0] = CRC 错误计数
- [1] = RSSI
- [2] = 链路质量
- [3] = 未知帧计数
CRSF_LINK_STATISTICS_UPLINK
- [0] = 上行 RSSI 1
- [1] = 上行 RSSI 2
- [2] = 上行链路质量
- [3] = RF 模式
CRSF_LINK_STATISTICS_UPLINK
- [0] = 上行 RSSI 1
- [1] = 上行 RSSI 2
- [2] = 上行链路质量
- [3] = RF 模式
CRSF_LINK_STATISTICS_PWR
- [0] = 天线
- [1] = SNR
- [2] = 发射功率
- [3] = 未使用
CRSF_LINK_STATISTICS_DOWN
- [0] = 下行 RSSI
- [1] = 下行 LQ
- [2] = 下行 SNR
- [3] = 未使用
RX_SFHSS_SPI(基于 FrSky SPI 软件的接收机)
- [0] = 数据状态
- [1] = 缺失帧
- [2] = 最大偏移量
- [3] = 最小偏移量
RX_EXPRESSLRS_PHASELOCK(基于 ExpressLRS 软件的 PPL)
- [0] = rawOffsetUs:上一次定时器 tick 测得的瞬时相位偏移
- [1] = offsetUs:软件 PLL 使用的滤波后偏移值
- [2] = frequencyOffsetTicks:ELRS 发射机与接收机之间的频率偏移(单位为定时器 tick)
- [3] = phaseShiftUs:将在下一次定时器 tick 应用的当前瞬时相位偏移值
RX_EXPRESSLRS_SPI(ExpressLRS SPI 接收机)
- [0] = lostConnectionCounter:自启动以来连接丢失的次数
- [1] = rssiFiltered:由 sx1280/sx127x 上报的当前低通滤波 RSSI 值
- [2] = snr:由 sx1280/sx127s 上报的当前 SNR
- [3] = uplinkLQ:上行链路质量百分比
调试列表
部分固件构建中并非所有调试选项都可用。
| DEBUG TYPE |
|---|
| DEBUG_CYCLETIME |
| DEBUG_BATTERY |
| DEBUG_GYRO |
| DEBUG_GYRO_FILTERED |
| DEBUG_ACCELEROMETER |
| DEBUG_PIDLOOP |
| DEBUG_GYRO_SCALED |
| DEBUG_RC_INTERPOLATION |
| DEBUG_ANGLERATE |
| DEBUG_ESC_SENSOR |
| DEBUG_SCHEDULER |
| DEBUG_STACK |
| DEBUG_ESC_SENSOR_RPM |
| DEBUG_ESC_SENSOR_TMP |
| DEBUG_ALTITUDE |
| DEBUG_FFT |
| DEBUG_FFT_TIME |
| DEBUG_FFT_FREQ |
| DEBUG_RX_FRSKY_SPI |
| DEBUG_RX_SFHSS_SPI |
| DEBUG_GYRO_RAW |
| DEBUG_DUAL_GYRO_RAW |
| DEBUG_DUAL_GYRO_COMBINED |
| DEBUG_DUAL_GYRO_DIFF |
| DEBUG_MAX7456_SIGNAL |
| DEBUG_MAX7456_SPICLOCK |
| DEBUG_SBUS |
| DEBUG_FPORT |
| DEBUG_RANGEFINDER |
| DEBUG_RANGEFINDER_QUALITY |
| DEBUG_LIDAR_TF |
| DEBUG_ADC_INTERNAL |
| DEBUG_RUNAWAY_TAKEOFF |
| DEBUG_SDIO |
| DEBUG_CURRENT_SENSOR |
| DEBUG_USB |
| DEBUG_SMARTAUDIO |
| DEBUG_RTH |
| DEBUG_ITERM_RELAX |
| DEBUG_ACRO_TRAINER |
| DEBUG_RC_SMOOTHING |
| DEBUG_RX_SIGNAL_LOSS |
| DEBUG_RC_SMOOTHING_RATE |
| DEBUG_ANTI_GRAVITY |
| DEBUG_DYN_LPF |
| DEBUG_RX_SPEKTRUM_SPI |
| DEBUG_DSHOT_RPM_TELEMETRY |
| DEBUG_RPM_FILTER |
| DEBUG_D_MAX |
| DEBUG_AC_CORRECTION |
| DEBUG_AC_ERROR |
| DEBUG_DUAL_GYRO_SCALED |
| DEBUG_DSHOT_RPM_ERRORS |
| DEBUG_CRSF_LINK_STATISTICS_UPLINK |
| DEBUG_CRSF_LINK_STATISTICS_PWR |
| DEBUG_CRSF_LINK_STATISTICS_DOWN |
| DEBUG_BARO |
| DEBUG_GPS_RESCUE_THROTTLE_PID |
| DEBUG_DYN_IDLE |
| DEBUG_FF_LIMIT |
| DEBUG_FF_INTERPOLATED |
| DEBUG_BLACKBOX_OUTPUT |
| DEBUG_GYRO_SAMPLE |
| DEBUG_RX_TIMING |
| DEBUG_D_LPF |
| DEBUG_VTX_TRAMP |
| DEBUG_GHST |
| SCHEDULER_DETERMINISM |
| TIMING_ACCURACY |
| DEBUG_RX_EXPRESSLRS_SPI |
| DEBUG_RX_EXPRESSLRS_PHASELOCK |