Коротко: DShot, RPM и телеметрия ESC решают разные задачи. DShot передаёт команду мотору в цифровом виде и не требует классической калибровки диапазона PWM. RPM-телеметрия сообщает автопилоту скорость вращения, а ArduPilot может использовать её для динамического harmonic notch. Если в системе нет подтверждённых RPM, включать фильтр «по оборотам» вслепую нельзя.

Сначала разделите три понятия
| Что настраивается | Что это делает | Чего это не делает |
|---|---|---|
| DShot | Передаёт автопилоту цифровую команду ESC с контрольной суммой. | Не создаёт RPM-телеметрию автоматически на любом ESC. |
| ESC telemetry | Может передавать от ESC RPM, напряжение, ток, температуру и другие доступные для конкретной модели поля. | Не заменяет правильное питание, проводку и проверку мотора. |
| Bidirectional DShot | Возвращает RPM по тому же сигнальному проводу DShot, если это поддерживают FC, DMA-раскладка и прошивка ESC. | Не работает на любом DShot-совместимом ESC и не является синонимом обычного DShot. |
| Harmonic notch | Вырезает узкие полосы шума вокруг частоты вращения и её гармоник. | Не исправляет кривой пропеллер, подшипник, люфт или ошибочную распиновку. |
Сноска 1. В разговоре часто говорят «RPM-фильтр», имея в виду сразу два разных источника частоты: телеметрию ESC и In-Flight FFT. FFT анализирует сигнал гироскопа, а ESC telemetry получает обороты от силовой электроники. Эти методы можно сравнивать, но нельзя проверять один через другой.
Нужна ли калибровка ESC
Классическая ESC calibration нужна для аналоговых протоколов, когда ESC должен запомнить минимальный и максимальный импульс PWM. Для цифрового DShot и CAN ESC ArduPilot прямо указывает, что такая калибровка не требуется. Поэтому пункт «сначала откалибровать ESC» в инструкции для DShot может только запутать.
Если используется PWM, OneShot или OneShot125, порядок другой: сначала калибруют радиоуправление, затем выбирают протокол и выполняют процедуру, подходящую конкретному ESC. Названия звуковых сигналов и поведение при старте отличаются у производителей. Для DShot нужно проверить не калибровку диапазона, а распознавание протокола, карту выходов, направление моторов и RC banner после перезагрузки.
Не переноси значения MOT_PWM_TYPE, маски выходов и настройки телеметрии с другой платы. У автопилотов с IOMCU группы MAIN/AUX и поддержка DShot отличаются. У некоторых плат DShot доступен только на AUX, у других — на всех выходах. Это определяется аппаратным описанием платы и версией прошивки.
Выбор скорости DShot
| Режим | Практический ориентир | Главный риск |
|---|---|---|
DShot150 |
Большой аппарат и длинные сигнальные провода, когда важнее устойчивость к шуму. | Более длинный импульс и меньшая скорость обновления. |
DShot300 |
Универсальный вариант и один из предпочтительных режимов для bidirectional DShot. | Нужно подтвердить поддержку возврата телеметрии на конкретном FC и ESC. |
DShot600 |
Часто применяется на небольших аппаратах; также предпочтителен для bidirectional DShot. | Более высокая чувствительность длинной линии к шуму. |
DShot1200 |
Только когда это оправдано платой, ESC и разводкой. | Выше требования к сигналу; высокая скорость не гарантирует лучший фильтр. |
Официальная документация ArduPilot рекомендует DShot150 для крупных аппаратов с длинными линиями, а DShot600 — как распространённый вариант для малых. Если нужен именно bidirectional DShot, ориентиром служат DShot300 или DShot600: обратный ответ ESC увеличивает требования к длительности обмена. Финальный выбор всё равно проверяется по RC banner, отсутствию ошибок и фактическим RPM.
Как получить RPM
Вариант A: отдельный провод ESC telemetry
Телеметрийные провода ESC объединяют на RX одного UART автопилота, если это разрешено схемой конкретной платы. Для BLHeli32/AM32 telemetry обычно задают SERIALx_PROTOCOL = 16, где x — номер физического UART. Частота опроса задаётся SERVO_BLH_TRATE: официальное значение по умолчанию — 10 Гц, а для работы harmonic notch документация допускает повышение до 100 Гц, если система это выдерживает.
Проверь три условия до первого полёта:
- ESC действительно передаёт телеметрию, а провод подключён к RX правильного UART.
- В прошивке ESC включены нужные поля и выбран поддерживаемый тип telemetry.
- В Mission Planner появляются
esc1_rpmи другие поля либо в DataFlash-логе есть сообщенияESCn.
Если через тот же аппарат нужно передавать данные в наземную станцию по отдельному телеметрийному порту, этот порт должен работать с MAVLink2. Не путай SERIALx_PROTOCOL = 16 для входа от ESC с SERIALx_PROTOCOL = 2 для MAVLink2: это разные физические подключения и разные задачи.
Вариант B: bidirectional DShot
Здесь отдельный телеметрийный провод не нужен: ESC возвращает RPM по сигнальной линии. Но требуется совместимость сразу трёх элементов: автопилота, DMA/выходов и прошивки ESC. В актуальной документации ArduPilot указана поддержка, например, BLHeli32 начиная с 32.7, BLHeli_S начиная с 16.73 и соответствующих версий AM32. У BLHeli_S это не означает, что любая заводская прошивка поддерживает bidirectional DShot: могут потребоваться JESC или BlueJay.
Типовая группа параметров выглядит так:
SERVO_BLH_BDMASK— маска выходов, на которых включается возврат DShot. Значение зависит от того, где расположены моторы и есть ли IOMCU.SERVO_BLH_POLES— число магнитных полюсов мотора, используемое для пересчёта e-field RPM в обороты вала. Значение по умолчанию 14 подходит не каждому мотору.SERVO_DSHOT_ESC— тип DShot ESC для поддерживаемых команд и расширенной телеметрии; выбирай его по документации конкретной прошивки ESC.
Сноска 2. Не путай число полюсов и число пар полюсов. В параметре ArduPilot используется обозначение, указанное в его документации; данные из калькулятора производителя нужно сопоставить с этим обозначением. Ошибка здесь не обязательно остановит мотор, но исказит RPM и положение центра notch.
Как включать harmonic notch по RPM
Вариант по ESC telemetry выбирается через INS_HNTCH_MODE = 3. Сам по себе этот параметр не создаёт телеметрию: сначала должны появиться реальные обороты. Затем включают notch через INS_HNTCH_ENABLE = 1, задают INS_HNTCH_FREQ ниже частоты оборотов в висении, но выше INS_GYRO_FILTER, и выбирают ширину INS_HNTCH_BW.
Для обычного single-source режима ArduPilot приводит практический стартовый ориентир INS_HNTCH_BW = INS_HNTCH_FREQ / 2. Если включается multi-source, когда создаётся отдельный первый notch для каждого мотора, ширину нужно уменьшать: несколько notch увеличивают фазовую задержку. В официальном примере начальный ratio для такого режима — примерно 4:1 вместо 2:1. Это не готовый пресет для любой рамы, а точка, с которой начинают проверку.
Число гармоник задаётся INS_HNTCH_HMNCS. Каждая дополнительная гармоника повышает нагрузку CPU, а multi-source добавляет фильтр для каждого мотора. Для первого теста разумнее оставить небольшой набор и посмотреть на загрузку, задержку и реакцию аппарата. Красивый график не оправдывает пропуски логов или осцилляции.
Диагностика по симптому
| Симптом | Что проверить сначала | Чего не делать |
|---|---|---|
| Моторы не запускаются после перехода на DShot | Поддержку DShot, выходную группу, RC banner, SERVOx_FUNCTION, питание и направление. |
Не повышать сразу скорость DShot и не включать bidirectional DShot. |
| DShot работает, RPM в Mission Planner отсутствует | Прошивку ESC, BDMASK/выходы, телеметрийный провод, SERIALx_PROTOCOL и наличие ESCn в логе. |
Не ставить INS_HNTCH_MODE = 3 в надежде, что RPM появится. |
| RPM есть, но число явно неверное | SERVO_BLH_POLES, выбранный тип ESC и соответствие номера ESC мотору. |
Не подбирать INS_HNTCH_FREQ по неверному RPM. |
| После notch стало хуже | Центральную частоту, ширину, число гармоник, multi-source, CPU load и фазовую задержку. | Не лечить осцилляции отключением failsafe или копированием чужого набора INS_HNTCH_*. |
| Один ESC показывает нулевой RPM | Провод, разъём, нумерацию ESC, прошивку и фактический запуск этого мотора без винта. | Не считать среднее RPM подтверждением исправности всех четырёх каналов. |
Проверка без гадания
- Сохрани полный параметр-файл и версии FC/ESC. Зафиксируй выходы, протокол и число полюсов моторов.
- Сними пропеллеры. Проверь питание, землю, RX телеметрии и отсутствие короткого замыкания.
- Включи только базовый DShot и перезагрузи автопилот. Проверь RC banner и тест каждого мотора в Mission Planner.
- Подключи один источник RPM: отдельный провод telemetry или bidirectional DShot. Не меняй сразу оба метода.
- Убедись, что RPM меняется при кратком тесте газа, а в логе появляются соответствующие
ESCnиRCOU. - Только после этого включай harmonic notch и меняй один параметр за раз.
- Сделай короткий контрольный полёт, сохрани лог и сравни шум, температуру моторов, реакцию и нагрузку CPU с исходным состоянием.
Практические кейсы из сообщества
В экспортированном чате FPV Club обсуждение BlueJay и записи ESC-телеметрии показывает типичную ошибку: наличие прошивки ESC ещё не означает, что телеметрия физически приходит в автопилот (messages2.html#message147587). Отдельная ветка про Dynamic FFT без bidirectional DShot полезна для другой границы: FFT может анализировать гироскоп, но это не заменяет RPM-источник для режима ESC telemetry (messages3.html#message233564).
Для неофициальной части полезны документация и исходники BlueJay, а также расширение Extended DShot Telemetry. Это материалы сообщества, а не гарантия совместимости с конкретной платой. Версию прошивки, поддерживаемые поля и карту выходов нужно сверять с официальной документацией ArduPilot и производителя ESC.
Короткий чек-лист
- Для DShot/CAN не выполнялась лишняя классическая калибровка PWM.
- Выходы и протокол подтверждены после перезагрузки по RC banner.
- RPM реально виден в Mission Planner или сообщениях
ESCn, а не только ожидается по параметрам. - Число полюсов мотора проверено по документации и не перепутано с числом пар.
INS_HNTCH_MODE = 3включён только после проверки ESC telemetry.- После изменения сохранён новый лог; загрузка CPU, задержка и осцилляции не ухудшились.
Источники и связанные материалы
- ArduPilot: DShot ESCs — протокол, скорости, выходы, ограничения IOMCU и отсутствие калибровки.
- ArduPilot: ESC Telemetry — проводная телеметрия, bidirectional DShot, RPM, логирование и параметры.
- ArduPilot: ESC Telemetry Based Harmonic Notch Setup —
INS_HNTCH_MODE, частота, ширина, multi-source и задержка. - ArduPilot: ESC Calibration — когда калибровка нужна для PWM и когда её нужно пропустить.
- Bluejay на GitHub — неофициальная прошивка BLHeli_S и её ограничения.
- Extended DShot Telemetry — описание расширенных событий ESC.
- ArduPilot Discuss — неофициальные обсуждения, которые нужно сверять с версией прошивки и платой.
- FPV Club: Вибрации в ArduPilot — VIBE, clipping, raw IMU и проверка фильтров.
Сноска 3. Названия параметров, доступные выходы, поддержка DMA и версия прошивки ESC меняются между платами и релизами ArduPilot. Перед подключением питания сверяй документацию именно для своей платы, ESC и версии прошивки. Проверено: 31 июля 2026 года.
