Настройка blackbox: лог, по которому видно всё
Blackbox пишет гироскоп до и после фильтров, стики и setpoint, P, I, D и feedforward, команды моторам, обороты, напряжение и ток. Проблема в том, что лог «на настройках из коробки» часто почти ничего не показывает. Вот что попадалось нам в реальных логах: 3,5-дюймовик на Betaflight 4.5.2 пишет 1 кГц, а моторы у него крутятся до 644 Гц; лог Betaflight 2026.6 записан с частотой 247 Гц, без сырого гироскопа и без оборотов; 7-дюймовик на 4.6 пишет 2 кГц на SD-карту, но в записи 182 разрыва; лог INAV 7.1 записан с частотой 58 Гц, и по нему вибрации не оценить вообще.
Ниже — от требований каждой проверки bbdoctor к командам для твоей прошивки и к тестовому полёту.
Что нужно каждой проверке
Пороги в таблице взяты прямо из кода анализатора. Ниже порога проверка либо молчит, либо выдаёт вывод с пометкой «мало данных».
| Проверка | Поля в логе | Частота записи | Что слетать |
|---|---|---|---|
| Вибрация по моторам: какой мотор или проп трясёт | сырой гироскоп + eRPM | от ~250 Гц; работает и выше частоты Найквиста | полминуты ровного полёта на разном газе |
| Шум, фильтры, резонансы рамы | сырой и фильтрованный гироскоп | от 500 Гц; точная частота резонанса — при записи 1/1 (или от 2 кГц, если резонанс ниже 500 Гц) | висение и плавный проход газа до 100% |
| ВЧ-шум на моторах и через какой член PID он идёт | motor, axisP, axisD, axisF | от 500 Гц | любой полёт |
| Отклик PID (step response) и задержка | setpoint + гироскоп | от 200 Гц | Acro; хотя бы 10 пригодных секундных окон со стиком от 20 °/с, для вывода «критично» — 50 |
| Пропвош | setpoint, газ | от 200 Гц | от 3 чистых сбросов газа, для уверенного вывода — 5 |
| Отскок после флипов | setpoint, axisP/I/D/F | от 200 Гц | от 6 резких остановок стика по каждой оси |
| Клевок на панчах (anti-gravity) | setpoint, газ, axisI | от 100 Гц | от 6 панчей со стиками в центре |
| Просадка и сопротивление батареи | vbat; для сопротивления ещё датчик тока | любая | для сопротивления — от 5 секундных окон с размахом тока от 8 А |
| Разбор падения | акселерометр, гироскоп, RSSI/failsafe, eRPM, vbat | любая | — |
Общие условия: если в воздухе меньше 10 секунд, выводы по настройке понижаются до «инфо» и выходят без команд CLI, а отскок и панчи не считаются совсем. Если больше половины полёта прошло в ANGLE или HORIZON, отклик PID и отскок не оцениваются: стик там задаёт угол, а не скорость вращения.
Частота записи и алиасинг
Почему 1 кГц врёт на маленьких квадах
Лог, записанный с частотой N Гц, видит колебания только до N/2 (частота Найквиста). Всё, что выше, не пропадает, а отражается от этой границы, как от зеркала. Мотор на 644 Гц в логе 1000 Гц виден как 1000 − 644 = 356 Гц. В спектре появляется аккуратный пик там, где ничего нет, и по нему легко поставить нотч или занизить фильтр не на той частоте.
В трёх логах 3,5-дюймовика VX3.5 на Betaflight 4.5.2 (PID-цикл 4 кГц, запись 1/4 = 1 кГц) моторы раскручивались до 583, 605 и 644 Гц, то есть выше 500 Гц каждый раз. На рисунке тот же эффект на другом квадрике. Мы взяли лог, записанный на 2 кГц, и оставили в нём каждый четвёртый кадр. Ровно так работает blackbox_sample_rate: он просто пропускает кадры и ничего перед этим не фильтрует.

Вибрацию по каждому мотору bbdoctor считает по фазе вращения из eRPM: истинная частота известна, отражённая копия ищется там, где должна быть, и эта проверка работает и на 1 кГц. Спектр шума и частоты резонансов так не спасти. Если в логе Betaflight максимальные обороты выше 95% частоты Найквиста, отчёт выдаёт находку «Частота записи ниже частоты моторов» и команду с нужным делителем.
Как выбрать blackbox_sample_rate
С 4.3 частота записи задаётся делителем PID-цикла: 1/1, 1/2, 1/4, 1/8 или 1/16. По умолчанию стоит 1/4. bbdoctor берёт самый большой делитель, при котором остаётся не меньше 2 кГц:
| PID-цикл | По умолчанию (1/4) | Ставь | Получится |
|---|---|---|---|
| 8 кГц | 2 кГц | 1/4 | 2 кГц |
| 4 кГц | 1 кГц | 1/2 | 2 кГц |
| 3,2 кГц (BMI270) | 800 Гц | 1/1 | 3,2 кГц |
Частоту цикла смотри на вкладке Configuration. 2 кГц нужны не всякому аппарату: bbdoctor подсказывает делитель, только когда моторы обогнали частоту записи. У 7-дюймовика на 6S в нашем наборе моторы не поднимались выше 315 Гц, и ему хватило бы 1 кГц. А 3–3,5 дюйма на 4S при 1 кГц, как правило, выходят за границу, и не только они: в четырёх логах 6S-квадрика на 4.5.1 при 1 кГц моторы доходили до 529–554 Гц. На BMI270 запись 1/1 расходует флешку быстрее всего; если места мало, 1/2 (1,6 кГц) видит моторы до ~760 Гц. Делители 1/8 и 1/16 для разбора не годятся. Проверка конфига отдельно ругается на них: при цикле 4 кГц это 500 и 250 Гц.
Флешка: сколько влезет
Размеры файлов в нашем наборе: при 1 кГц со всеми полями — около 34 КБ/с без debug-полей и 41–43 КБ/с с включённым debug-режимом, при 2 кГц — 58–70 КБ/с. Флешки на 8 МБ хватает примерно на 3–4 минуты при 1 кГц и на 2 минуты при 2 кГц. Тот же VX3.5 (с debug_mode = GYRO_SCALED) за 195 секунд при 1 кГц заполнил свои 8 МБ ровно до байта, и лог оборвался посреди полёта. bbdoctor это замечает (обрыв в конце или размер файла ровно 2, 4, 8 или 16 МБ) и к совету поднять частоту добавляет: время записи сократится вдвое.
Отсюда правила: стирай флешку перед тестом (кнопка Erase flash на вкладке Blackbox или команда flash_erase в CLI), летай короткие тестовые паки по 1–2 минуты, выключи ненужные поля. С SD-картой места хватает, но медленная карта теряет кадры: в логе 7-дюймовика на 4.6 (2 кГц, SD) оказалось 182 разрыва. Возьми нормальную, свежеотформатированную карту, а если разрывы остаются, снизь частоту на шаг.
Betaflight: настройки по версиям
4.5 и 2025.12+
Для PID-цикла 4 кГц (при 8 кГц поставь 1/4, при 3,2 кГц — 1/1):
set blackbox_mode = NORMAL
set blackbox_sample_rate = 1/2
set blackbox_disable_gyrounfilt = OFF
set blackbox_disable_rpm = OFF
set blackbox_disable_setpoint = OFF
set blackbox_disable_pids = OFF
set blackbox_disable_motors = OFF
set debug_mode = NONE
save
blackbox_deviceв блок не входит, чтобы вставка не сломала запись на SD-карту. Проверь его сам:SPIFLASH— встроенная флешка,SDCARD— слот microSD, приNONEне пишется ничего.blackbox_mode = NORMALпишет от арма до дизарма. Если на вкладке Modes назначен режим BLACKBOX, запись идёт только при включённом тумблере.- Сырой гироскоп и обороты здесь — отдельные поля, debug-режим не нужен, а при
debug_mode = NONEdebug-поля не пишутся вовсе. - Поле оборотов появляется, только если включён bidirectional DShot (об этом ниже).
Лог на Betaflight 2026.6.1 был записан с делителем 1/16 (247 Гц при цикле 4 кГц), без сырого гироскопа и оборотов, хотя bidirectional DShot работал. Отчёт выдал две команды: blackbox_disable_gyrounfilt = OFF и blackbox_disable_rpm = OFF. В логе на 4.5.1 было выключено поле setpoint: bbdoctor восстанавливает его по стикам и рейтам, но отклик PID оценивает грубее и предупреждает об этом.
4.3–4.4
set blackbox_sample_rate = 1/2
set debug_mode = GYRO_SCALED
save
Делитель — по таблице выше. Отдельных полей для сырого гироскопа и оборотов здесь ещё нет. Гироскоп идёт через debug, а debug-режим работает один: обороты через DSHOT_RPM_TELEMETRY уже не записать, да bbdoctor их из debug и не читает. Поэтому даже с работающим bidirectional DShot он посоветует обновиться до 4.5, иначе не найти мотор с дисбалансом. Настройки blackbox_disable_… есть с 4.3 (rpm и gyrounfilt — с 4.5): проверь, что setpoint не выключен.
4.0–4.2
set blackbox_p_ratio = 64
set debug_mode = GYRO_SCALED
save
Здесь вместо делителя работает blackbox_p_ratio. Частота записи примерно равна p_ratio × 31,25 Гц: 32 дают ~1 кГц, 64 — ~2 кГц, но не больше частоты PID-цикла. В нашем логе на 4.2.11 частота записи была всего 534 Гц, и вдобавок в нём было 36 разрывов.
Какие поля можно выключить
Если не разбираешь навигацию, смело ставь ON для blackbox_disable_gps, blackbox_disable_mag и blackbox_disable_alt (барометр): лог станет меньше. Не трогай:
- gyro и motors: без гироскопа или команд моторам лог не принимается вообще;
- setpoint и pids: без них нет точного отклика PID, а отскок после флипа не разложить по P, I, D и FF;
- rc: по стикам меряется задержка их сглаживания (rcCommand → setpoint), а без поля setpoint он восстанавливается из них;
- acc: по акселерометру ищутся удары при разборе падения;
- bat: просадка, сопротивление батареи и обрыв питания как причина падения;
- rssi, если RSSI у тебя настроен: потеря связи перед падением.
Обороты моторов в логе
Обороты в лог даёт bidirectional DShot: set dshot_bidir = ON, save. Нужны протокол DShot и ESC на Bluejay, AM32 или BLHeli_32. После этого сними пропы, на вкладке Motors раскрути моторы ползунками и проверь, что обороты показываются, а процент ошибок около нуля. Проверь и motor_poles: из eRPM частота мотора считается через число полюсов. У большинства моторов 5" их 14, у некоторых мелких — 12. С неверным значением все частоты моторов в логе съедут. Подробнее — в гайде про RPM-фильтр и bidirectional DShot.
INAV
set blackbox_rate_num = 1
set blackbox_rate_denom = 2
blackbox GYRO_RAW
blackbox MOTORS
save
В INAV частота записи — это доля циклов blackbox_rate_num/blackbox_rate_denom. Цикл по умолчанию в INAV 8 и новее — 2 кГц (looptime = 500), и 1/2 даёт 1 кГц; в INAV 7 и старше — 1 кГц (looptime = 1000), и 1/2 даёт 500 Гц. Для вибраций и фильтров нужно не меньше 500 Гц. В нашем наборе три лога INAV 7.1.2 с двух разных квадов (7" и 5") были записаны с частотой 1/32, то есть 58–60 Гц. По ним можно оценить только баланс и батарею. Лог INAV 8.0 с дробью 1/2 шёл на 995 Гц, и шум с работой фильтров по нему видно хорошо.
blackbox GYRO_RAWдобавляет сырой гироскоп,blackbox MOTORS— команды моторам. Два лога INAV 7 с выключенным MOTORS bbdoctor не принял вообще.- Обороты каждого мотора INAV в blackbox не пишет, поэтому вибрации по конкретному мотору для него недоступны.
- Лог INAV 8.0, где 78% времени прошло в ANGLE/HORIZON, вердикта по PID не получил.
- В логе INAV 6.1 оказалось 27% битых кадров. bbdoctor их отбрасывает и помечает выводы по PID и шуму как ненадёжные; такой лог лучше переснять.
Подробно — в разборе blackbox INAV.
ArduPilot и PX4 коротко
ArduPilot. Без быстрых битов в LOG_BITMASK (их нет и по умолчанию) гироскоп в логе ArduCopter идёт с частотой 25 Гц: так было во всех десяти логах ArduCopter в нашем наборе, от 4.1 до 4.8-dev. Для разбора включи в LOG_BITMASK бит 0 (ATTITUDE_FAST) и бит 19 (IMU_RAW), а с 4.5 ещё INS_RAW_LOG_OPT = 9 (гироскоп до и после фильтров). Обороты дают ESC-телеметрия или bidirectional DShot (SERVO_BLH_BDMASK). Нужен бинарный .bin с SD-карты (APM/LOGS), а не .tlog. Для настройки PID в ArduCopter надёжнее встроенный AUTOTUNE, лог нужен, чтобы понять вибрации и фильтры. Подробно — в разборе логов ArduPilot.
PX4. В SDLOG_PROFILE добавь биты 4 (High rate) и 8 (Raw FIFO gyro): из значения по умолчанию 1 получается 273. В MAVLink Console в QGroundControl это param set SDLOG_PROFILE 273, затем перезагрузи полётник: профиль читается при старте. Лог .ulg скачивается через Analyze Tools → Log Download. Подробно — в гайде про ULog PX4.
Тестовый полёт: сценарий
Обычный фристайл даёт часть событий случайно, а тестовый пак собирает их нарочно, по 6–8 на каждую проверку. Сценарий на 1,5–2 минуты:
- Перед взлётом. Свежие пропы, заряженный аккумулятор, стёртая флешка. Проверь, что тумблер BLACKBOX (если он назначен) включён.
- Режим Acro. В ANGLE и HORIZON отклик PID и отскок не оцениваются.
- 30 секунд висения и плавного полёта, затем, если место позволяет, медленно, секунд за 5, подними газ от висения до 100%: из этого строится карта шума по газу.
- 6–8 флипов или роллов по каждой оси, плюс пируэты по рысканью. Стик резко возвращай в центр (быстрее 0,2 с) и держи там полсекунды. Засчитываются движения от 150 °/с по крену и тангажу и от 120 °/с по рысканью. Плавный возврат стика проверка отбрасывает.
- 6–8 панчей с висения (газ около 30%, обязательно ниже 70%): газ вверх резко, больше чем на четверть хода за 0,2 с. Крен и тангаж в это время не трогай: если setpoint превысит 80 °/с, панч не засчитается.
- 6–8 прямых сбросов газа: разгон вверх, газ в ноль, стики в центре около секунды. Сброс засчитывается, если газ был выше 35% и упал больше чем на 25% за 0,15 с. Никаких флипов сразу после: в одном логе на 2 кГц за 12 из 15 сбросов сразу шёл флип или ролл, и для пропвоша осталось всего 3 сброса.
- Посадка. Сядь мягко, без сброса газа в ноль у самой земли: если сразу после сброса удар о землю, этот сброс в оценку пропвоша не попадёт.
Большому аппарату флипы не нужны: хватит коротких резких наклонов стиком на безопасной высоте. Длинный полёт сам по себе ничего не гарантирует. За 5 минут обычного полёта 7-дюймовика нашлось 5 сбросов газа (чистый из них один), 1 панч и 1 резкая остановка по крену.

Как достать лог
В Betaflight и INAV: вкладка Blackbox → Save flash to file, или режим Mass Storage, когда контроллер определяется как диск. С SD-картой проще: вынул и скопировал. У INAV файлы часто с расширением .TXT, у ArduPilot — .bin, у PX4 — .ulg.
Один файл может содержать много полётов, по одному на каждый арм. В нашем наборе есть файл Betaflight 2026.6 с 66 полётами. bbdoctor по умолчанию берёт самый длинный (там это был №58), а в отчёте можно выбрать любой другой полёт из файла.
Частые ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
| Лог пустой или в нём нет полёта | тумблер BLACKBOX выключен, blackbox_device = NONE, флешка уже полна | проверь Modes и Blackbox, сотри флешку |
| Лог обрывается посреди полёта | заполнилась флешка: файл ровно 8 или 16 МБ | стирай перед вылетом, летай паки по 1–2 мин |
| «Разрывы в записи» | медленная SD-карта или слишком высокая частота | нормальная карта, иначе делитель на шаг ниже |
| «Setpoint не записан в лог» | blackbox_disable_setpoint = ON | set blackbox_disable_setpoint = OFF |
| Нет вердикта по PID | больше половины полёта в ANGLE/HORIZON | тестовый пак в Acro |
| INAV: лог 60 Гц | большой blackbox_rate_denom | 1/2 на время теста |
| INAV: «нет команд моторам» | выключено поле MOTORS | blackbox MOTORS |
| Нет оборотов | bidirectional DShot выключен, Betaflight до 4.5 или blackbox_disable_rpm = ON | включить bidirectional DShot, обновиться, вернуть поле |
| Пики в спектре, которые «не лечатся» фильтрами | моторы быстрее ~475 Гц при записи 1 кГц: отражённые частоты | делитель на ~2 кГц (1/2 при цикле 4 кГц) и новый лог |
Проверь лог автоматически
Загрузи файл на bbdoctor. Это бесплатно и без регистрации. До всякой диагностики сервис проверяет сам лог: время в воздухе, разрывы и потерянные кадры, обрыв записи, сырой гироскоп, обороты и setpoint, частоту записи против оборотов моторов и долю самовыравнивания. Чего не хватает, отчёт называет прямо и даёт команды для твоей прошивки и версии. Как выглядит отчёт, видно в примере.
Настройки можно проверить ещё до полёта: вставь diff all на странице проверки конфига. Она отметит выключенный blackbox, делитель 1/8 или 1/16, выключенные поля, отсутствие GYRO_SCALED на 4.0–4.4, а в INAV — низкую частоту и выключенный GYRO_RAW. Что делать с готовым логом — в гайде как читать blackbox лог.
Частые вопросы
Какую частоту записи blackbox ставить?
Около 2 кГц: при PID-цикле 8 кГц это blackbox_sample_rate = 1/4, при 4 кГц — 1/2, при 3,2 кГц (гироскоп BMI270) — 1/1. Крупным квадам с моторами до ~450 Гц хватает и 1 кГц, а у 3–3,5 дюйма на 4S и многих 6S-сборок при 1 кГц в спектре уже появляются ложные пики.
Почему blackbox лог пустой или не записался?
Чаще всего на тумблер назначен режим BLACKBOX и он был выключен, флешка уже заполнена или blackbox_device = NONE. Проверь вкладку Modes и Blackbox, сотри флешку перед полётом и летай хотя бы 30–60 секунд.
Нужен ли debug_mode в Betaflight 4.5 и 2025.12?
Нет. С 4.5 нефильтрованный гироскоп и обороты моторов пишутся отдельными полями, а при debug_mode = NONE debug-поля в лог вообще не попадают. GYRO_SCALED нужен только в 4.0–4.4.
Сколько минут влезает во флешку при 2 кГц?
По нашим логам 1 кГц со всеми полями — это 34 КБ/с без debug-полей и 41–43 КБ/с с ними, 2 кГц — 58–70 КБ/с. Флешка на 8 МБ заполняется примерно за 3–4 минуты при 1 кГц и за 2 минуты при 2 кГц, на 16 МБ — вдвое дольше.
Обновлено: