Logo do FlySpark
FlySpark logoFlySparkHardware e conexões

Correção do driver STM32 DFU e doctor USB para controladoras de voo

Quando a controladora de voo não é detectada, a causa quase sempre é uma destas quatro: cabo só de carga, placa no modo errado, driver ausente ou incorreto (como o driver STM32 DFU no Windows) ou permissão que o sistema operacional ainda não concedeu. Esta página passa por cada uma, com as correções no Windows que os pilotos usam (ImpulseRC Driver Fixer e Zadig) e o que verificar no macOS, Linux e Android.

No Android, o app FlySpark inclui um doctor USB e DFU. Ele lista cada dispositivo USB que o telefone enxerga, diz o que é (controladora de voo, placa em modo bootloader DFU, adaptador USB-serial, rádio) e o que fazer em seguida. O Android não precisa de drivers; o doctor foca no que falha: cabos, OTG, permissão e modo da placa.

Esta ferramenta funciona no app FlySpark para Android. A demo roda no navegador.

  • Grátis
  • Demo sem hardware
FlySpark logo

Em resumo

O driver STM32 DFU permite que um computador flasheie a controladora em modo bootloader (ID USB 0483:DF11). No Windows corrige-se com Zadig ou ImpulseRC Driver Fixer. No Android não há driver; o doctor USB e DFU do FlySpark mostra o que o telefone detecta e os próximos passos.

Factos-chave

  • Placa em modo DFU aparece como STM32 BOOTLOADER (0483:DF11); firmware em execução aparece como porta COM virtual (0483:5740).
  • No Windows, flash DFU exige o driver WinUSB no STM32 BOOTLOADER, instalado com Zadig ou ImpulseRC Driver Fixer (documentação Betaflight).
  • No Linux, acesso serial exige o grupo dialout e flash DFU exige regra udev para 0483:df11 e 2e3c:df11 (documentação Betaflight).
  • O doctor USB e DFU do FlySpark reconhece 16 IDs vendor:product, incluindo bootloaders DFU STM32, AT32 e GD32, adaptadores CP210x, CH340, CH9102 e FTDI, ESP32-S3/C3 e rádios EdgeTX.
  • Qualquer dispositivo com interface DFU aparece como bootloader, mesmo se o ID não estiver na lista.
  • Correções sugeridas: cabo de dados, adaptador OTG, alimentar a placa só pelo USB, segurar BOOT ao conectar ou digitar bl no CLI.
  • O doctor roda no app FlySpark para Android; uma demo com dispositivos simulados roda no navegador.
  • Betaflight logoBetaflight
  • INAV logoINAV
  • ArduPilot logoArduPilot
  • PX4 logoPX4
  • BLHeli_S
  • Bluejay logoBluejay
  • AM32 logoAM32
  • ExpressLRS logoExpressLRS
  • EdgeTX logoEdgeTX
  • DroneCAN logoDroneCAN
  • MAVLink logoMAVLink

FlySpark

Recursos

  • 01

    Tudo no USB, identificado

    Cada dispositivo aparece com vendor e product ID, fabricante e nome do produto, família do chip e o que é para o FlySpark.

  • 02

    Detecção de bootloader

    Bootloaders ROM DFU STM32, AT32 e GD32 são reconhecidos pelo ID; qualquer dispositivo com interface DFU aparece como Bootloader (DFU).

  • 03

    Permissão em um toque

    Dispositivos que o FlySpark ainda não pode usar mostram o botão ALLOW ACCESS, que abre o pedido de permissão do Android.

  • 04

    Ao vivo ao conectar

    A lista atualiza quando um dispositivo é conectado ou removido, para ver a placa alternar entre firmware em execução e DFU.

  • 05

    Não vê seu dispositivo?

    Duas checklists, Para configurar e Para flashear, cobrem cabos de dados, OTG, alimentação, botão BOOT e o comando bl.

  • 06

    Direto à ferramenta certa

    Placa em DFU ganha o botão Abrir o flasher de firmware; rádio ou cartão SD ganha Abrir a ferramenta de rádio EdgeTX.

  • 07

    Rádios e adaptadores também

    Reconhece rádios EdgeTX em modos serial, armazenamento e joystick, adaptadores CP210x, CH340, CH9102 e FTDI, ESP32 USB e sondas ST-Link.

  • 08

    Demo no navegador

    Veja como explica uma placa em execução, uma placa no bootloader e um rádio de telemetria, sem nada conectado.

Por que a controladora de voo não é detectada

Comece pelo cabo. Muitos cabos USB vendidos com carregadores só levam energia. Os LEDs da placa acendem, parece conexão, mas o computador ou telefone não vê dispositivo. Se a placa liga e nada aparece na lista, use um cabo que você sabe que transfere dados.

Depois o modo. Uma controladora STM32 tem duas identidades USB. Com Betaflight, INAV ou ArduPilot em execução aparece como porta COM virtual (em placas STM32, vendor 0483, product 5740), que os configuradores abrem como serial. No bootloader ROM aparece como outro dispositivo, STM32 BOOTLOADER (0483:DF11), usado só por flashers. Configurador não conecta em bootloader; flasher não grava com firmware rodando até reiniciar a placa.

Por fim driver e permissão. Cada identidade precisa de driver no Windows; uma placa que configura bem pode falhar ao flashear. No Linux e Android o dispositivo precisa de permissão antes de um app abri-lo.

Instalar o driver STM32 DFU no Windows

Flashers de desktop da família Betaflight falam com o bootloader via driver WinUSB. Se o Windows não tem driver para STM32 BOOTLOADER, ou outro driver reivindicou o dispositivo, o flasher diz que não achou DFU ou trava ao reiniciar para bootloader.

A correção mais rápida que a maioria usa é o ImpulseRC Driver Fixer, programa Windows que acha a controladora conectada e instala os drivers. Se não resolver, coloque a placa em DFU, abra o Zadig, Options › List All Devices, selecione STM32 BOOTLOADER, escolha WinUSB como driver alvo e Replace Driver ou Install Driver. Se o Gerenciador de Dispositivos mostra o bootloader com outro nome, como Guillemot STM DFU Device, outro software instalou driver: desinstale o dispositivo marcando excluir driver, desconecte e instale WinUSB de novo.

Altere o driver só do bootloader. A porta COM virtual para configurar funciona com o driver serial integrado do Windows atual.

macOS, Linux e ChromeOS

macOS não precisa de driver para portas COM virtuais STM32 nem para DFU. Se a placa não aparece, verifique cabo, hub USB e modo.

No Linux o dispositivo aparece, mas usuário comum pode não poder abrir. Portas seriais em geral exigem dialout (saia e entre de novo na sessão); bootloaders DFU precisam de regra udev para vendor 0483 product DF11. A documentação Betaflight traz a regra.

No computador, a versão web do FlySpark abre a serial da controladora pelo navegador (Chrome ou Edge), valendo as mesmas regras de porta serial. Flash não é feito na versão web.

Android: sem driver, mas OTG e permissão

O Android fala com portas COM virtuais STM32, bootloaders DFU e chips USB-serial comuns sem driver. O que impede é OTG e o pedido de permissão. Use adaptador OTG ou cabo USB-C com dados; alguns telefones têm interruptor USB OTG nas configurações. Ao conectar, o Android pergunta se o FlySpark pode usar o dispositivo. Se você dispensou o aviso, o doctor USB e DFU mostra ALLOW ACCESS para pedir de novo.

Alimentação também confunde. Placa alimentada pela bateria de voo e USB ao mesmo tempo pode não reiniciar limpo ao reconectar; a checklist do doctor sugere desconectar a bateria, alimentar só pelo USB e conectar de novo.

Colocar a placa em modo bootloader DFU

Há duas formas. Com firmware rodando: o comando bl do CLI Betaflight (INAV usa dfu) reinicia para o bootloader, e o flasher de firmware do FlySpark envia isso por você. Com placa desligada: segure BOOT (ou faça ponte nos pads BOOT) ao conectar o USB e solte. No Android o doctor USB e DFU confirma: o cartão muda para Bootloader (DFU) com a família do chip, como STM32 ROM DFU.

Placa parada em bootloader não configura. Se o configurador não conecta após flash, desconecte e conecte de novo sem segurar BOOT.

Num relance

Dispositivos que o doctor USB e DFU reconhece

0483:DF11Bootloader ROM DFU STM32
2E3C:DF11Bootloader ROM DFU AT32
28E9:0189Bootloader ROM DFU GD32
0483:5740Porta COM virtual STM32 (controladora ou rádio em USB Serial)
2E3C:5740Porta COM virtual AT32
10C4:EA60, 1A86:7523, 1A86:55D4Adaptadores USB-serial CP210x, CH340 e CH9102
0403:6001, 0403:6015Adaptadores FTDI FT232 e FT230X
303A:1001ESP32-S3 / C3 USB (hardware ExpressLRS)
1209:4F54, 0483:5720, 0483:5710Rádio EdgeTX / OpenTX, armazenamento SD do rádio, modo joystick
0483:3748, 0483:374BSondas ST-Link V2 e V2-1 (não usadas pelo FlySpark)
Qualquer outro dispositivo com interface DFUMostrado como Bootloader (DFU)
PlataformaApp FlySpark Android; demo com dispositivos simulados no navegador e no app

Comparar

O que cada sistema precisa para a controladora

FunçãoWindowsmacOSLinuxAndroid com FlySpark
Porta COM virtual (configurar)Driver serial integrado no Windows atualSem drivergrupo dialoutSem driver, permitir acesso
STM32 BOOTLOADER (flash)WinUSB via ImpulseRC Driver Fixer ou ZadigSem driverregra udevSem driver, permitir acesso
Cabo de dados necessárioSimSimSimSimmais OTG

FlySpark

Como descobrir por que a controladora não é detectada

  1. Troque o cabo

    Use cabo que você sabe que leva dados; muitos de carga não levam.

  2. Verifique o modo

    Firmware em execução aparece como serial; modo DFU como STM32 BOOTLOADER. Configure em um, flasheie no outro.

  3. Corrija driver ou permissão

    No Windows instale WinUSB no bootloader; no Linux adicione permissões; no Android permita acesso ao FlySpark.

  4. Use o doctor USB

    No Android, abra o doctor USB e DFU para ver exatamente o que o telefone detecta.

Guia 01

Testar a controladora com o doctor USB e DFU

No app FlySpark no Android.

  1. Abra Ferramentas e escolha USB and DFU doctor.

  2. Conecte a controladora ao telefone com cabo ou adaptador OTG.

  3. Leia o cartão: Flight controller significa firmware em execução; Bootloader (DFU) significa pronta para flash.

  4. Se aparecer ALLOW ACCESS, toque e aceite o pedido do Android.

  5. Se nada aparecer, escolha To configure ou To flash em Not seeing your device? e siga os passos.

  6. Para placa em DFU, toque Open the firmware flasher.

Guia 02

Corrigir STM32 BOOTLOADER com Zadig no Windows

Para flashers de desktop que não acham DFU.

  1. Segure BOOT e conecte a controladora ao computador para iniciar em DFU.

  2. Abra o Gerenciador de Dispositivos e confirme STM32 BOOTLOADER (ou dispositivo desconhecido).

  3. Execute o Zadig, Options › List All Devices e selecione STM32 BOOTLOADER.

  4. Defina o driver alvo como WinUSB e Replace Driver ou Install Driver.

  5. Desconecte, entre em DFU de novo e tente o flash.

Guia 03

Descartar cabo só de carga

Teste rápido antes de mais nada.

  1. Conecte o cabo ao telefone ou PC e a um dispositivo que funciona no USB, como outro telefone, e veja se aparece.

  2. Se não, o cabo é só carga ou está danificado. Use cabo de dados.

  3. Com o app FlySpark no Android e o doctor USB e DFU aberto, conecte a controladora: nenhum cartão com LEDs acesos aponta para cabo ou OTG.

Resolução de problemas

Problemas comuns e correções

  • Problema

    Placa acende mas nenhum dispositivo aparece

    Correção

    Cabo só de carga ou danificado, ou porta USB frouxa na placa. Teste cabo de dados conhecido e outra porta.

  • Problema

    Betaflight mostra no connection found ou nenhuma porta

    Correção

    A placa não apresenta serial: verifique cabo, confirme que não está presa em bootloader e no Windows veja STM32 Virtual ComPort no Gerenciador de Dispositivos.

  • Problema

    Flasher diz que não achou DFU no Windows

    Correção

    Instale WinUSB no STM32 BOOTLOADER com ImpulseRC Driver Fixer ou Zadig.

  • Problema

    STM32 BOOTLOADER vira Guillemot STM DFU Device de novo

    Correção

    Desinstale o dispositivo Guillemot excluindo o driver e instale WinUSB de novo com Zadig.

  • Problema

    Doctor mostra ALLOW ACCESS

    Correção

    O FlySpark ainda não tem permissão. Toque ALLOW ACCESS e aceite o pedido do Android.

  • Problema

    Doctor mostra Bootloader (DFU) mas configurador não conecta

    Correção

    A placa está no bootloader. Flasheie ou reconecte sem segurar BOOT.

  • Problema

    Doctor mostra Game controller

    Correção

    É rádio em modo joystick. Desconecte e escolha USB Serial (VCP) ou USB Storage no rádio.

  • Problema

    Doctor mostra Unknown device com Hidden na página Connect

    Correção

    O FlySpark não reconhece o ID. Pode funcionar como serial: ative Show all devices na página Connect e teste.

  • Problema

    Could not list USB devices

    Correção

    O Android recusou a consulta USB. Desconecte, feche e reabra o doctor e conecte de novo.

Glossário

Glossário de termos

DFU
Device Firmware Upgrade, modo USB que o bootloader interno do STM32 usa para receber firmware.
VCP
Porta COM virtual: como a controladora com firmware em execução aparece no USB, como porta serial.
VID:PID
Par vendor e product ID que todo dispositivo USB reporta, por exemplo 0483:DF11.
WinUSB
Driver USB genérico do Windows que permite apps falarem direto com o dispositivo; o que flashers DFU de desktop precisam.
Zadig
Utilitário Windows para instalar drivers WinUSB ou libusb em um dispositivo USB escolhido.
ImpulseRC Driver Fixer
Utilitário Windows que instala os drivers que uma controladora conectada precisa.
USB OTG
On-The-Go: faz o telefone atuar como host USB para conectar a controladora.
Bootloader ROM
Código de fábrica no chip STM32. Não pode ser apagado, por isso a placa quase sempre pode ser reflasheada.

FAQ

Perguntas frequentes

O que é o driver STM32 DFU?

O driver que o Windows usa para placa STM32 em modo bootloader. Flashers desktop da família Betaflight precisam de WinUSB no STM32 BOOTLOADER; ImpulseRC Driver Fixer ou Zadig instala.

Preciso de Zadig ou ImpulseRC Driver Fixer no Android?

Não. O Android não precisa de drivers USB. Permita o FlySpark usar o dispositivo quando perguntado.

O FlySpark corrige drivers no Windows?

Não. O doctor USB e DFU do FlySpark roda no Android. No Windows use ImpulseRC Driver Fixer ou Zadig como acima.

Por que a controladora liga mas não conecta?

Na maioria das vezes cabo só de carga. Senão a placa pode estar em bootloader ou falta driver ou permissão.

Por que o Betaflight não conecta depois do flash?

A placa pode ainda estar no bootloader. Desconecte e conecte de novo sem segurar BOOT.

Como coloco a controladora em modo DFU?

Segure BOOT ao conectar USB ou digite bl no CLI Betaflight (dfu no INAV). O flasher de firmware do FlySpark envia o comando por você.

Adaptadores serial como CP2102 ou CH340 precisam de driver?

No Android com FlySpark, não. No computador alguns sistemas precisam do driver do fabricante do chip.

O doctor USB e DFU funciona no iPhone?

Não. Apps iPhone não veem dispositivos USB como controladoras de voo. É ferramenta Android; o navegador mostra uma demo.

O que significa Hidden na página Connect?

O FlySpark não reconhece o ID do dispositivo e a página Connect o oculta. Ative Show all devices lá para testar mesmo assim.

Meu rádio aparece como game controller. Por quê?

Está em modo joystick. Desconecte e escolha USB Serial (VCP) ou USB Storage na tela do rádio.

Uma placa em DFU pode ser brick permanente?

Raramente. O bootloader ROM STM32 não pode ser apagado; segurar BOOT quase sempre devolve ao DFU para reflashear. Placas com proteção de leitura precisam de ferramenta no PC para limpar antes.

Referências

Fontes

A documentação oficial por trás dos factos desta página.

  1. USB FlashingBetaflight · betaflight.com
  2. Firmware InstallationBetaflight · betaflight.com
  3. Zadig - USB driver installation made easyAkeo Consulting · zadig.akeo.ie
  4. Firmware Flasher TabBetaflight · betaflight.com
  5. USB host overviewAndroid Developers · developer.android.com

Ferramentas

Ver todas as ferramentas FlySpark

Baixar o FlySpark

Esta ferramenta funciona no app FlySpark para Android. A demo roda no navegador.