Перейти к содержимому
Прошивка через USB (DFU)

Прошивка через USB (DFU)

Технику БПЛА
05 октября 2025

Современные платы с полноценной поддержкой USB необходимо прошивать в режиме USB DFU. Это простой процесс в Betaflight Configurator версии 0.67 и новее.

Стандартная процедура прошивки должна работать корректно, за исключением некоторых особенностей, зависящих от операционной системы (см. ниже).

  • Флажок «No reboot sequence» не оказывает влияния — устройство автоматически определяется, если уже находится в режиме загрузчика (bootloader). Если DFU-устройство появляется в выпадающем списке подключения, это означает, что оно уже в нужном режиме.
  • Флажок «Full chip erase» работает как обычно.
  • Поле выбора скорости передачи (baudrate) игнорируется, так как для USB оно не имеет значения.

Кабели «только для зарядки»

Если при подключении платы к компьютеру вы не видите никакой реакции (устройство не определяется), проверьте кабель с помощью мобильного телефона или другого USB-устройства. Некоторые кабели предназначены только для зарядки и имеют подключены лишь силовые провода. Такие кабели могут включить светодиоды на плате, но компьютер не сможет «увидеть» устройство.

Для подключения к Betaflight Configurator требуется полноценный USB-кабель с поддержкой передачи данных.

Вход в режим DFU

Чтобы принудительно перевести плату в режим DFU:

  1. Зажмите кнопку BOOT (иногда называется BOOT0).
  2. Подключите USB-кабель к компьютеру.
  3. Отпустите кнопку после подключения.

Если устройство не распознаётся (например, в Windows отображается как «Неизвестное USB-устройство (сбой дескриптора устройства)»), возможно, мешают линии данных UART1. В некоторых случаях их нужно временно отпаять, чтобы плата корректно вошла в режим DFU. Подробнее см. в видео от Joshua Bardwell.

Особенности по платформам

Linux

Чтобы Betaflight Configurator мог получить доступ к последовательным портам, ваша учётная запись должна входить в группу dialout. Добавить себя в эту группу можно командой:

sudo usermod -a -G dialout <ваше_имя_пользователя>

Если в логах появляется ошибка unable to open serial port, скорее всего, вы пропустили этот шаг.

Ubuntu

В Linux для записи в USB-устройства требуется настроить правила udev. Пример команды для Ubuntu:

(echo '# DFU (Internal bootloader for STM32 and AT32 MCUs)'
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"'
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"') | sudo tee /etc/udev/rules.d/45-stdfu-permissions.rules > /dev/null

Это назначает устройство группе plugdev (стандартная группа в Ubuntu). Проверить, входит ли ваша учётная запись в эту группу:

groups

Если plugdev отсутствует в списке, добавьте себя:

sudo usermod -a -G plugdev <ваше_имя_пользователя>

Fedora

В Fedora не нужно добавлять пользователя в группу plugdev. Вместо этого используйте тег uaccess в правилах udev:

(echo '# DFU (Internal bootloader for STM32 and AT32 MCUs)'
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", TAG+="uaccess"'
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", TAG+="uaccess"') | sudo tee /etc/udev/rules.d/45-stdfu-permissions.rules > /dev/null

Проблемы с ModemManager

Если устройство ttyUSB появляется и сразу исчезает после подключения платы, возможно, служба ModemManager ошибочно принимает ваш контроллер за GSM-модем.

Чтобы решить проблему, остановите службу:

sudo systemctl stop ModemManager.service

Если в вашей системе нет команды systemctl, используйте эквивалентную команду для управления службами.

Альтернативно, можно добавить идентификатор вашего устройства в чёрный список ModemManager, но это выходит за рамки документации Betaflight.

Windows

Браузер Chrome на Windows иногда не может получить доступ к USB-устройствам. Хотя Windows обычно автоматически устанавливает драйвер для устройства ST в режиме DFU, этого может быть недостаточно для корректной работы с Chrome.

Решение: замените стандартный драйвер ST на драйвер libusb с помощью утилиты Zadig.

Инструкция:

zadig-dfu-56bc2985fbe36faee90692563b47d30f.png

  1. Подключите плату в режиме загрузчика (bootloader). Это можно сделать, отправив символ R через последовательный порт или просто попытавшись прошить плату через Configurator с выбранным правильным портом.
  2. Запустите Zadig.
  3. Выберите Options → List All Devices.
  4. В списке устройств выберите STM32 BOOTLOADER.
  5. В правом поле выберите WinUSB (v6.x.x.x).
  6. Нажмите Replace Driver.
  7. Полностью закройте и перезапустите Chrome (при необходимости — выйдите из системы и войдите снова).

После этого DFU-устройство должно появиться в Betaflight Configurator.

Прошивка через USB (DFU)
7

Похожее в категории "СОФТ"

  • Прошивка контроллера полетов в Windows через DFU — USB DFU [Zadig]

    Zadig — это бесплатная утилита с открытым исходным кодом, которая используется в операционной системе Windows для установки или замены драйверов устройств, особенно часто — для работы с USB-устройствами в режиме DFU (Device Firmware Upgrade) .

  • EdgeTX | Как войти в режим Bootloader и DFU (режим прошивки) для аппаратуры управления с EdgeTX

    Не все модели радио входят в режим Bootloader или DFU (Device Firmware Upgrade) одинаково. В конспекте приведены подробные инструкции по входу в эти режимы для большинства популярных моделей радио, используемых в системах управления дронами. Эти инструкции особенно важны для техников БПЛА, которые занимаются обновлением прошивки, восстановлением радио или установкой EdgeTX.