Betaflight | Режимы отладки (Debug Modes)
Четверг, 24 июля 2025Команды CLI (интерфейс командной строки)
- VERSION — Показывает текущую прошивку и последний коммит в GitHub (например: (9f67a584b)), соответствующий данной сборке.
- STATUS — Отображает различную информацию о настройке квадрокоптера: свободное место в ПЗУ, тип гироскопа, обнаруженное напряжение и т.д.
- TASKS — Показывает активные задачи и их использование ЦП. Убедитесь, что задачи gyro/PID работают с указанной частотой (Гц).
- DSHOT_TELEMETRY_INFO — Показывает успешность получения пакетов обратной телеметрии DShot RPM от каждого ESC (начиная с версии 4.1+).
- RC_SMOOTHING_INFO — Показывает обнаруженную частоту кадров RX. Работает только если выбран тип сглаживания сигнала Filter во вкладке Receiver, и оба параметра Input Cutoff Type и Derivative Cutoff Type установлены в auto. Для корректной работы радио и приёмник должны быть подключены и включены.
- get DEBUG_MODE — Показывает текущий режим отладки и все доступные режимы.
Режимы отладки (DEBUG MODES)
Сигнал гироскопа (GYRO SIGNAL)
- GYRO_RAW (необработанные данные гироскопа, без масштабирования и фильтрации) — используется для анализа необработанного сигнала гироскопа в прошивке, особенно при диагностике переполнения стека (для гироскопов ICM).
- [0] = roll: входной сигнал гироскопа (без масштабирования)
- [1] = pitch: входной сигнал гироскопа (без масштабирования)
- [2] = yaw: входной сигнал гироскопа (без масштабирования)
- [3] = [пусто]
- GYRO_SCALED (данные гироскопа, переведённые в град/с, до применения фильтрации в полётном контроллере)
- [0] = roll: сигнал гироскопа (в град/с)
- [1] = pitch: сигнал гироскопа (в град/с)
- [2] = yaw: сигнал гироскопа (в град/с)
- [3] = [пусто]
- GYRO_FILTERED (ТО ЖЕ САМОЕ, ЧТО И ГРАФИКИ ГИРОСКОПА, ЗАПИСЫВАЕМЫЕ ПО УМОЛЧАНИЮ)
- [0] = roll: отфильтрованный сигнал гироскопа
- [1] = pitch: отфильтрованный сигнал гироскопа
- [2] = yaw: отфильтрованный сигнал гироскопа
- [3] = [пусто]
- GYRO_SAMPLE
- [0] = данные гироскопа до понижения частоты дискретизации до частоты цикла PID
- [1] = данные гироскопа на частоте цикла PID
- [2] = данные гироскопа на частоте PID после фильтрации по RPM
- [3] = данные гироскопа на частоте PID после RPM- и всех статических фильтров, но до динамических режекторных фильтров
Фильтры (FILTERS)
- D_LPF
- [0] = roll: нефильтрованный D-член
- [1] = pitch: нефильтрованный D-член
- [2] = roll: отфильтрованный, после коррекции DMin/Dmax, до применения TPA
- [3] = pitch: отфильтрованный, после коррекции DMin/Dmax, до применения TPA
- DYN_LPF
- [0] = roll: необработанные данные гироскопа (в град/с)
- [1] = roll: центральная частота режекторного фильтра
- [2] = roll: частота среза НЧ-фильтра
- [3] = roll: данные гироскопа до динамического режекторного фильтра (после НЧ-фильтров)
- FFT_FREQ
- [0] = ось gyroDebugAxis: центральная частота 1-го режекторного фильтра
- [1] = ось gyroDebugAxis: центральная частота 2-го режекторного фильтра
- [2] = ось gyroDebugAxis: центральная частота 3-го режекторного фильтра
- [3] = ось gyroDebugAxis: данные гироскопа до динамического режекторного фильтра (после НЧ- и RPM-фильтров)
- FFT
- [0] = ось gyroDebugAxis: данные до динамического режекторного фильтра
- [1] = ось gyroDebugAxis: данные после динамического режекторного фильтра
- [2] = ось gyroDebugAxis: данные после понижения частоты дискретизации, используемые для FFT
- [3] = [пусто]
- FFT_TIME
- [0] = текущий выполняемый шаг расчёта
- [1] = длительность этого шага
- [2] = [пусто]
- [3] = [пусто]
- RPM_FILTER
- [0] = частота центра режекторного фильтра для мотора №1 (где ожидается пик шума от мотора)
- [1] = частота центра режекторного фильтра для мотора №2
- [2] = частота центра режекторного фильтра для мотора №3
- [3] = частота центра режекторного фильтра для мотора №4
ПИД-регуляторы (PIDs)
- D_MIN
- [0] = коэффициент от сигнала гироскопа (в %, умноженный на d_min_gain)
- [1] = коэффициент от заданного значения (в %, умноженный на d_min_advance). Применяется больший из двух.
- [2] = roll: активный коэффициент D-члена
- [3] = pitch: активный коэффициент D-члена
- ITERM_RELAX
- [0] = ВЧ-фильтр для обнаружения резких изменений заданного значения
- [1] = коэффициент расслабления (в %, используется только в режиме SETPOINT)
- [2] = ослабленная интегральная ошибка
- [3] = абсолютная ошибка по оси (roll)
- ANTI_GRAVITY — Усиление I и P при резких изменениях газа
- [0] = коэффициент I-усиления от ВЧ-фильтра газа (×1000)
- [1] = итоговый коэффициент I-усиления (включая сглаженный НЧ-элемент) (×1000)
- [2] = коэффициент P-усиления (×1000) [roll]
- [3] = коэффициент P-усиления (×1000) [pitch]
- FEEDFORWARD_LIMIT (FF_LIMIT) — Ограничение Feedforward при быстром приближении стиков к максимальной скорости
- [0] = коэффициент ограничения [roll]
- [1] = коэффициент ограничения [pitch]
- [2] = ограниченный feedforward [roll]
- [3] = не используется
- FEEDFORWARD (4.3)
- [0] = интерполированное заданное значение [roll]
- [1] = изменение заданного значения, сглаженное [roll]
- [2] = коэффициент усиления, сглаженный [roll]
- [3] = изменение команды RC [roll] (в мкс)
- FF_INTERPOLATED (4.2)
- [0] = изменение заданного значения [roll]
- [1] = ускорение заданного значения [roll]
- [2] = ускорение заданного значения, с ограничением [roll]
- [3] = счётчик дублирования
- FF_INTERPOLATED (4.0)
- [0] = изменение заданного значения (реализация) [roll]
- [1] = величина усиления [roll]
- [2] = величина усиления с ограничением [roll]
- [3] = величина ограничения
ESC и моторы (ESC and MOTORS)
- DSHOT_RPM_TELEMETRY — RPM в Configurator 10.8, eRPM для версий до 10.8 (RPM = eRPM × количество магнитов мотора)
- [0] = RPM мотора №1
- [1] = RPM мотора №2
- [2] = RPM мотора №3
- [3] = RPM мотора №4
- DSHOT_RPM_ERRORS
- [0] = Мотор №1: процент невалидных пакетов (в сотых процента — например, 123 = 1,23%)
- [1] = Мотор №2: аналогично
- [2] = Мотор №3: аналогично
- [3] = Мотор №4: аналогично
- DYN_IDLE (4.3)
- [0] = Dyn Idle P [roll]
- [1] = Dyn Idle I [roll]
- [2] = Dyn Idle D [roll]
- [3] = минимальные RPM (наименьшие текущие обороты мотора)
- DYN_IDLE (до 4.3)
- [0] = motorRangeMinIncrease × 1000
- [1] = targetRpsChangeRate (простая ошибка RPM × idle_adjustment_speed)
- [2] = ошибка (величина, которую нужно исправить)
- [3] = minRps (наименьшие текущие обороты мотора, в об/с × 10). Например, значение 500 = 50,0 × 60 = 3000 об/мин
Стабильность цикла (LOOPTIME STABILITY)
- CYCLETIME
- [0] = время в микросекундах с момента последнего запуска задачи PID
- [1] = текущая загрузка ЦП в процентах
- [2] = время с момента последнего обновления моторов (мкс)
- [3] = отклонение интервала обновления моторов от целевого времени цикла PID (мкс). Примечание: начиная с версии 4.2.x, [2] и [3] бесполезны, так как обновление моторов теперь входит в задачу PID.
- PIDLOOP
- [0] = время выполнения задачи гироскопа (неактуально после BF 4.2.x)
- [1] = время расчётов PID (в мкс)
- [2] = время обработки микшера, сервоприводов, обновления моторов, статистики DShot
- [3] = время обработки удержания магнитного поля и логики Blackbox
- SCHEDULER_DETERMINISM
- [0] = время начала задачи гироскопа (в десятых долях мкс)
- [1] = ID запоздавшей задачи
- [2] = величина задержки задачи (в десятых долях мкс)
- [3] = разница в синхронизации блокировки гироскопа (в тактах)
- TIMING_ACCURACY
- [0] = % времени, когда ЦП был занят
- [1] = количество запоздавших задач за последнюю секунду
- [2] = общая задержка за последнюю секунду (в десятых долях мкс)
- [3] = общее количество выполненных задач за последнюю секунду
Сглаживание RC-сигнала (RC SMOOTHING)
- RC_INTERPOLATION
- [0] = необработанные данные канала RC [roll]
- [1] = текущая частота кадров RX
- [2] = количество шагов интерполяции
- [3] = заданное значение RC [roll]
- RC_SMOOTHING
- [0] = необработанные данные канала RC
- [1] = необработанная производная заданного значения
- [2] = отфильтрованная производная до применения веса заданного значения
- [3] = текущее рассчитанное среднее (показывает заблокированную частоту, используемую для настройки фильтров)
- RC_SMOOTHING_RATE
- [0] = интервал каждого кадра RX (задержка от предыдущего кадра в мкс)
- [1] = счётчик шагов обучения
- [2] = текущее рассчитанное среднее (частота, используемая для фильтров)
- [3] = указывает, активно ли охранное время (guard time)
Динамика полёта (FLIGHT DYNAMICS)
- AC_ERROR (Absolute Control Error)
- [0] = roll: ошибка по оси × 10
- [1] = pitch: ошибка по оси × 10
- [2] = yaw: ошибка по оси × 10
- [3] = [нет]
- AC_CORRECTION (AC = Absolute Control)
- [0] = roll: коррекция AC × 10
- [1] = pitch: коррекция AC × 10
- [2] = yaw: коррекция AC × 10
- [3] = [нет]
- FF_THUMB (Absolute Control Correction)
- [0] = нормальный FF для roll
- [1] = FF для roll после ограничения стика
- [2] = FF после максимального отклонения
- [3] = прогнозируемая максимальная скорость из-за экстраполяции стика
Фьюзинг датчиков (SENSOR FUSION) для плат с двумя гироскопами
- DUAL_GYRO_RAW
- [0] = roll: необработанные данные гироскопа №1 (не в град/с)
- [1] = pitch: необработанные данные гироскопа №1 (не в град/с)
- [2] = roll: необработанные данные гироскопа №2 (не в град/с)
- [3] = pitch: необработанные данные гироскопа №2 (не в град/с)
- DUAL_GYRO_SCALED
- [0] = roll: масштабированные данные гироскопа №1 (в град/с)
- [1] = pitch: масштабированные данные гироскопа №1 (в град/с)
- [2] = roll: масштабированные данные гироскопа №2 (в град/с)
- [3] = pitch: масштабированные данные гироскопа №2 (в град/с)
- DUAL_GYRO_DIFF
- [0] = roll: фильтрованные данные гироскопа №1 – фильтрованные данные гироскопа №2
- [1] = pitch: фильтрованные данные гироскопа №1 – фильтрованные данные гироскопа №2
- [2] = yaw: фильтрованные данные гироскопа №1 – фильтрованные данные гироскопа №2
- [3] = [пусто]
- DUAL_GYRO_COMBINED (только для разработчиков)
- [0] = [пусто]
- [1] = roll: отфильтрованный гироскоп (совпадает с графиком gyro)
- [2] = pitch: отфильтрованный гироскоп (совпадает с графиком gyro)
- [3] = [пусто]
- DUAL_GYRO_COMBINED (только для разработчиков)
- [0] = [пусто]
- [1] = roll: отфильтрованный гироскоп (совпадает с графиком gyro)
- [2] = pitch: отфильтрованный гироскоп (совпадает с графиком gyro)
- [3] = [пусто]
VTX (Передатчик видео)
- SMARTAUDIO
- [0] = Версия SmartAudio × 100 + режим устройства
- [1] = канал устройства
- [2] = частота устройства
- [3] = мощность устройства
- TRAMP
- [0] = статус
- [1] = код ответа
- [2] = режим Pit Mode
- [3] = количество попыток
RX (Приёмник)
- SBUS (FrSky SBUS)
- [0] = флаги кадра
- [1] = флаги состояния
- [2] = время кадра
- [3] = не используется
- FPORT (FrSky FPORT)
- [0] = интервал кадров
- [1] = ошибки кадров
- [2] = последняя ошибка
- [3] = интервал телеметрии
- GHST (Ghost)
- [0] = счётчик ошибок CRC
- [1] = RSSI
- [2] = качество связи (Link Quality)
- [3] = счётчик неизвестных кадров
- CRSF_LINK_STATISTICS_UPLINK
- [0] = Uplink RSSI 1
- [1] = Uplink RSSI 2
- [2] = Uplink Link Quality
- [3] = RF Mode
- CRSF_LINK_STATISTICS_UPLINK
- [0] = Uplink RSSI 1
- [1] = Uplink RSSI 2
- [2] = Uplink Link Quality
- [3] = RF Mode
- CRSF_LINK_STATISTICS_PWR
- [0] = антенна
- [1] = SNR
- [2] = мощность передатчика
- [3] = не используется
- CRSF_LINK_STATISTICS_DOWN
- [0] = Downlink RSSI
- [1] = Downlink LQ
- [2] = Downlink SNR
- [3] = не используется
- RX_SFHSS_SPI (FrSky SPI, программный приёмник)
- [0] = состояние данных
- [1] = пропущенные кадры
- [2] = максимальное смещение
- [3] = минимальное смещение
- RX_EXPRESSLRS_PHASELOCK (ExpressLRS, программный PLL)
- [0] = rawOffsetUs: мгновенное фазовое смещение, измеренное по последнему таймерному тику
- [1] = offsetUs: отфильтрованное значение смещения, используемое в программном PLL
- [2] = frequencyOffsetTicks: разница частоты (в таймерных тиках) между передатчиком ELRS и приёмником
- [3] = phaseShiftUs: текущее мгновенное фазовое смещение, применяемое на следующем таймерном тике
- RX_EXPRESSLRS_SPI (ExpressLRS SPI RX)
- [0] = lostConnectionCounter: количество разрывов соединения с момента запуска
- [1] = rssiFiltered: текущее сглаженное значение RSSI от sx1280/sx127x
- [2] = snr: текущее значение SNR от sx1280/sx127x
- [3] = uplinkLQ: процент качества uplink-связи
Список режимов отладки (Debug List)
Не все режимы отладки доступны в некоторых сборках прошивки.
Тип отладки |
---|
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_MIN |
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 |
